## KilledByAPixel/LittleJS — v1.18.0…v1.18.4

_95 commits._

### Features
- **tween: update top-of-file summary to mention Vector2/Color/lerp-able support** (88a476f)
- **tween: add a tween short to examples/shorts** (bcd4701)
- **shorts: add textureWrapped example** (cc020d3)
- **draw: add drawTextureWrapped for tiled texture rendering** (effd10f)
- **tween: add Vector2 and Color rows to the demo** (52f9353)
- **tween: cleanup pass — drop dead field, hide internals, add helpers** (6da77be)
- **tween: add visual example demonstrating every public feature** (758473c)
- **tween: add example folder with html boilerplate and tiles** (789e62e)
- **tween: drop premature loop-state clearing in then(); add multi-tween + paused tests** (7e2ba87)
- **Add gamepadVibrate function and export** (fc5ab99)
- **add not about exports** (a383728)
- **add testing info** (42ffbc7)
- **add more tests** (408b370)
- **add percentLerp and lineTest to exports** (1fe7a81)
- **add tests** (4161827)
- **Add canvasPixelRatio for pixel perfect canvas rendering** (308c354)
- **add warning message if LittleJS is in debug mode** (2b25739)
- **add check if textre is loaded to tile()** (fe4c960)
- **Add Box2D license to THIRD_PARTY_NOTICES.md** (51121de)
- **Add LittleJS AI Info link to README** (7afb77c)

### Fixes
- **draw: fix drawTextureWrapped drawCount double-count and alpha double-apply** (3ade42e)
- **tween: fix tweenProperty JSDoc + add Tween.getValue()** (b856823)
- **tween: rework example to use world-space text and fix layout** (8b0ed90)
- **tween: revert BOUNCE to easeOutBounce shape (math regression in prior commit)** (46b7678)
- **tween: add Ease modifiers (IN/OUT/IN_OUT/PIECEWISE), fix IN_OUT bug** (6f030fc)
- **fix ui click sound not playing by default** (1037d63)
- **fix docs image** (d0ddc66)
- **fix for box2d angles** (7130c02)
- **fix test action** (c718650)
- **Fix Markdown formatting in README.md** (5789f8f)
- **fix using randVec2 in rare physics** (00fea6b)

### Backend
- **build docs** (75346d6)
- **remove newline** (d4771ba)
- **1.18.4** (a1daec5)
- **draw: hoist isWhite/isBlack helpers, document drawTextureWrapped** (2f480c2)
- **simplify shorts** (1e2751e)
- **examples: extract example browser script into shorts.js module** (00e57c4)
- **shorts: register textureWrapped in the example browser** (e36e0b8)
- **webgl: always wrap textures with REPEAT, drop dead glSetTexture wrap param** (42ce088)
- **use wrap true by default** (1124a78)
- **tween: flip Ease.BOUNCE to ease-in form, demo IN_OUT and BEZIER** (7e4587e)
- **tween: convert Ease from class-with-statics to plain object literal** (3886e46)
- **tween: accept Vector2, Color, or any .lerp-able type as start/end** (5604c73)
- **allow debug time scale to effect timeReal** (d30b9f0)
- **tween: rename option realTime -> useRealTime to match Timer** (db15503)
- **engine: timeReal is no longer affected by timeScale or debug speed** (fbb5036)
- **ignore .claude/** (066ad45)
- **tween: register Tween System Plugin Demo in examples index** (538123a)
- **tween: integration test + JSDoc audit** (9bbd5bf)
- **tween: implement tweenProperty dot-path helper** (df1a2ca)
- **tween: implement Tween.pingPong(n)** (7ed43c2)
- **tween: implement Tween.loop(n) with continuation helper** (39454fb)
- **tween: implement pause/resume/restart/isActive** (a078a3e)
- **tween: implement tweenUpdate + then completion callback** (9e5c7c5)
- **tween: implement Tween constructor, interp, setEase, stop** (e6b999c)
- **tween: implement Ease.BEZIER cubic curve** (485940a)
- **tween: clarify Ease test naming/comments for ELASTIC start-anchor** (f228630)
- **tween: implement Ease basic curves (LINEAR..BOUNCE)** (0190d0e)
- **tween: scaffold plugin file, wire into build and exports** (aa5e41e)
- **Update .gitignore to include docs/superpowers directory** (e328773)
- **1.18.3** (aab85fb)
- **gamepadVibrateStop** (e1e4b87)
- **1.18.3** (3cfa31b)
- **build** (c030bae)
- **build docs** (e57b49d)
- **build** (7fa2ff7)
- **added timeScale setting** (4403531)
- **build** (2d71bdd)
- **1.18.2** (7e52164)
- **added touchGamepadCenterButtonSize** (d443fb5)
- **always update child transforms when attached** (3af16a6)
- **show virtual gamepad debug if enabled** (34c06d7)
- **make github run automated tests** (bf2f729)
- **build** (832ef38)
- **improve tests** (b39eea7)
- **Create CLAUDE.md** (fe98ad4)
- **1.18.1** (2d9adbf)
- **added ragdoll box2d demo** (df34d73)
- **only show debug warning if showEngineVersion enabled** (2d5d186)
- **protect against getGamepads disallowed security error** (465ab9a)
- **get rid of hypot call** (0a147c0)
- **build** (eaca701)
- **Merge branch 'main' of https://github.com/KilledByAPixel/LittleJS** (d0d99bb)
- **Mark wheel listener non-passive and tighten checks** (283fb3d)
- **Update README.md** (69bea19)
- **Revise copyright and license information in COPYRIGHT.txt** (f6c36cb)
- **Update LICENSE to reflect MIT License only** (632794d)
- **Update GitHub Sponsors username in FUNDING.yml** (d941b44)
- **Update README.md** (a6a6301)
- **randomize spawn pos** (52e5370)
- **Merge branch 'main' of https://github.com/KilledByAPixel/LittleJS** (8f17308)
- **build** (5bf79ea)
- **remove emoji from build message** (27665e7)

### Docs
- **docs: add Tween System section to reference.md** (f3f5a57)

### Chore
- **refactor: remove unused variables and simplify error handling in example scripts** (d645aa2)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/KilledByAPixel/LittleJS?utm_source=github-action)._