{"article":{"slug":"littlejs-is-2d-and-3d-now","title":"LittleJS is 2D and 3D now","subtitle":null,"summary":"LittleJS, the small dependency-free HTML5 game engine, gets its biggest update yet: a full 3D renderer that shares the canvas with 2D games, built-in 2D and 3D level editors, ready-made particle effects, a faster core, new tools for making games with AI, and a new demo site, alongside the third LittleJS Game Jam.","content_type":"announcement","language":"en","canonical_url":"https://frankforce.com/littlejs-is-2d-and-3d-now/","author":{"name":"Frank Force","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Killed By A Pixel","url":"https://frankforce.com/","listing_slug":null,"listing":null},"topics":[{"name":"Web Development","slug":"web-development","url":"https://listedarticles.com/topics/web-development"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"},{"name":"Announcements","slug":"announcements","url":"https://listedarticles.com/topics/announcements"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":765,"reading_minutes":3,"published_at":"2026-10-12T00:00:00.000Z","added_at":"2026-10-15T02:12:07.773Z","updated_at":"2026-10-15T02:12:07.773Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/littlejs-is-2d-and-3d-now","markdown_url":"https://listedarticles.com/articles/littlejs-is-2d-and-3d-now.md","example":false,"citation":"Frank Force, Killed By A Pixel. \"LittleJS is 2D and 3D now.\" 12 Oct 2026. https://frankforce.com/littlejs-is-2d-and-3d-now/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://frankforce.com/littlejs-is-2d-and-3d-now/"},"body_markdown":"LittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your 2D game, built-in level editors, a library of ready-made particle effects, a much faster core, and new tools for making games with AI.\n\n## 2D and 3D in the same engine\n\nThis is the big one! Meshes and shape builders, terrain and voxel maps with collision, shadow maps, colored lights and spotlights, fog, reflections, particles, trails, cameras, and custom shaders on any object. 3D objects are regular LittleJS objects with the same physics, children and timers as 2D, so the two mix freely: a 2D UI over a 3D scene, or a 2D game inside a 3D world.\n\nPrefer Three.js for rendering? There is a plugin for that too!\n\n2D got plenty as well: a new dynamic lighting system, one-way platforms, swept bullet collision, parallax layers, and improved object collision performance.\n\n## New Tools\n\n**Level editors**, 2D and 3D, built into the engine. Press Escape in a debug build to pause the game, edit the level in place with undo, autosave and prefabs, then play on. The [editor guide](https://github.com/KilledByAPixel/LittleJS/blob/main/EDITOR.md) shows how to make them an editor for your own game. 2D levels load and save as Tiled JSON.\n\n**Particle effects library.** Fire, smoke, sparks, explosions, rain and more, each one line: `particleEffect('fire', pos)`, in 2D or 3D. Every effect takes scale, hue and saturation, and the [particle designer](https://killedbyapixel.github.io/LittleJS/examples/particles/) tweaks them or builds new ones. Most games will not need anything else.\n\n**The example browser** has over 100 short examples, each a single file that explains what it shows and how it works, with live editing and a Share button that puts your edited code in a link. It is the best place to learn the engine.\n\n## Even Faster\n\nThe rendering core was reworked: batched 2D sprites on WebGL2, instanced 3D drawing, and far less per-draw overhead. To measure it I built a [WebGL Engine Bench](https://github.com/KilledByAPixel/webgl-engine-bench): the same two scenes, moving sprites and lit cubes, through LittleJS, PixiJS, Three.js, PlayCanvas, Phaser and Babylon.js, reporting how many objects each holds at 60 fps.\n\nOn my machine LittleJS matched the fastest paths of the other engines and beat them in several. That is one machine and two workloads, so run it on yours: it works in the browser with nothing to install, and results and scene improvements from other engine maintainers are welcome.\n\n## Made for AI\n\nLittleJS has a small, well documented API, with the whole thing in [one reference file](https://github.com/KilledByAPixel/LittleJS/blob/main/REFERENCE.md). That is exactly what coding AIs are good at, and it is the same thing that makes it readable for people. So it is now a first-class goal:\n\n- The [LittleJS AI toolkit](https://github.com/KilledByAPixel/LittleJS-AI) : starter templates, helper modules and agent instructions for any coding AI, Claude Code, Copilot, Codex or Cursor.\n- The **Claude Code plugin** installs with two commands. Ask for a game and you get a complete, playable project, engine included, that opens from a file with no server and no npm install. Because the engine already does the rendering, input, physics and audio, the AI’s effort goes into your game.\n- The [LittleJS GPT](https://chatgpt.com/g/g-67c7c080b5bc81919736bc8815836be6-littlejs-game-maker) builds games inside ChatGPT with no code at all.\n- The [LittleJS Arcade](https://killedbyapixel.github.io/LittleJSArcade/) : 50+ small games made this way, all open source, all usable as starters.\n\n## Why?\n\nLittleJS was always meant to be a general purpose engine, that I could use for all my games. I started it small on purpose, with js13k as the proving ground, because keeping the core tiny and simple from day one is what makes an engine easy to learn and fast to run.\n\nEverything since has built on that core: people wanted to make more and more ambitious things with it, and what they asked for most was 3D and tools. I wanted the 3D side to feel exactly like the 2D side, same objects, same loop, same small API, not a separate framework bolted on.\n\nThe other reason is the community. LittleJS is not a one-person project any more: engine fixes, plugins, examples and a lot of games have come from other people, and the best way to push an engine forward is for people to make things with it. The [third LittleJS Game Jam](https://itch.io/jam/littlejs-jam) is running right now, October 2 to November 2. Come make something!\n\n## Try it!\n\nThe new website [littlejsengine.com](https://littlejsengine.com/) is a demo of all of this: a train ride through every feature, running on the engine.\n\nThanks for reading! Give us a star oh GitHub if you like the project. 🚂\n","body_html":"<p>LittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your 2D game, built-in level editors, a library of ready-made particle effects, a much faster core, and new tools for making games with AI.</p>\n<h2 id=\"2d-and-3d-in-the-same-engine\">2D and 3D in the same engine</h2>\n<p>This is the big one! Meshes and shape builders, terrain and voxel maps with collision, shadow maps, colored lights and spotlights, fog, reflections, particles, trails, cameras, and custom shaders on any object. 3D objects are regular LittleJS objects with the same physics, children and timers as 2D, so the two mix freely: a 2D UI over a 3D scene, or a 2D game inside a 3D world.</p>\n<p>Prefer Three.js for rendering? There is a plugin for that too!</p>\n<p>2D got plenty as well: a new dynamic lighting system, one-way platforms, swept bullet collision, parallax layers, and improved object collision performance.</p>\n<h2 id=\"new-tools\">New Tools</h2>\n<p><strong>Level editors</strong>, 2D and 3D, built into the engine. Press Escape in a debug build to pause the game, edit the level in place with undo, autosave and prefabs, then play on. The <a href=\"https://github.com/KilledByAPixel/LittleJS/blob/main/EDITOR.md\" rel=\"nofollow ugc noopener\">editor guide</a> shows how to make them an editor for your own game. 2D levels load and save as Tiled JSON.</p>\n<p><strong>Particle effects library.</strong> Fire, smoke, sparks, explosions, rain and more, each one line: <code>particleEffect(&#39;fire&#39;, pos)</code>, in 2D or 3D. Every effect takes scale, hue and saturation, and the <a href=\"https://killedbyapixel.github.io/LittleJS/examples/particles/\" rel=\"nofollow ugc noopener\">particle designer</a> tweaks them or builds new ones. Most games will not need anything else.</p>\n<p><strong>The example browser</strong> has over 100 short examples, each a single file that explains what it shows and how it works, with live editing and a Share button that puts your edited code in a link. It is the best place to learn the engine.</p>\n<h2 id=\"even-faster\">Even Faster</h2>\n<p>The rendering core was reworked: batched 2D sprites on WebGL2, instanced 3D drawing, and far less per-draw overhead. To measure it I built a <a href=\"https://github.com/KilledByAPixel/webgl-engine-bench\" rel=\"nofollow ugc noopener\">WebGL Engine Bench</a>: the same two scenes, moving sprites and lit cubes, through LittleJS, PixiJS, Three.js, PlayCanvas, Phaser and Babylon.js, reporting how many objects each holds at 60 fps.</p>\n<p>On my machine LittleJS matched the fastest paths of the other engines and beat them in several. That is one machine and two workloads, so run it on yours: it works in the browser with nothing to install, and results and scene improvements from other engine maintainers are welcome.</p>\n<h2 id=\"made-for-ai\">Made for AI</h2>\n<p>LittleJS has a small, well documented API, with the whole thing in <a href=\"https://github.com/KilledByAPixel/LittleJS/blob/main/REFERENCE.md\" rel=\"nofollow ugc noopener\">one reference file</a>. That is exactly what coding AIs are good at, and it is the same thing that makes it readable for people. So it is now a first-class goal:</p>\n<ul><li>The <a href=\"https://github.com/KilledByAPixel/LittleJS-AI\" rel=\"nofollow ugc noopener\">LittleJS AI toolkit</a> : starter templates, helper modules and agent instructions for any coding AI, Claude Code, Copilot, Codex or Cursor.</li><li>The <strong>Claude Code plugin</strong> installs with two commands. Ask for a game and you get a complete, playable project, engine included, that opens from a file with no server and no npm install. Because the engine already does the rendering, input, physics and audio, the AI’s effort goes into your game.</li><li>The <a href=\"https://chatgpt.com/g/g-67c7c080b5bc81919736bc8815836be6-littlejs-game-maker\" rel=\"nofollow ugc noopener\">LittleJS GPT</a> builds games inside ChatGPT with no code at all.</li><li>The <a href=\"https://killedbyapixel.github.io/LittleJSArcade/\" rel=\"nofollow ugc noopener\">LittleJS Arcade</a> : 50+ small games made this way, all open source, all usable as starters.</li></ul>\n<h2 id=\"why\">Why?</h2>\n<p>LittleJS was always meant to be a general purpose engine, that I could use for all my games. I started it small on purpose, with js13k as the proving ground, because keeping the core tiny and simple from day one is what makes an engine easy to learn and fast to run.</p>\n<p>Everything since has built on that core: people wanted to make more and more ambitious things with it, and what they asked for most was 3D and tools. I wanted the 3D side to feel exactly like the 2D side, same objects, same loop, same small API, not a separate framework bolted on.</p>\n<p>The other reason is the community. LittleJS is not a one-person project any more: engine fixes, plugins, examples and a lot of games have come from other people, and the best way to push an engine forward is for people to make things with it. The <a href=\"https://itch.io/jam/littlejs-jam\" rel=\"nofollow ugc noopener\">third LittleJS Game Jam</a> is running right now, October 2 to November 2. Come make something!</p>\n<h2 id=\"try-it\">Try it!</h2>\n<p>The new website <a href=\"https://littlejsengine.com/\" rel=\"nofollow ugc noopener\">littlejsengine.com</a> is a demo of all of this: a train ride through every feature, running on the engine.</p>\n<p>Thanks for reading! Give us a star oh GitHub if you like the project. 🚂</p>","headings":[{"level":2,"text":"2D and 3D in the same engine","id":"2d-and-3d-in-the-same-engine"},{"level":2,"text":"New Tools","id":"new-tools"},{"level":2,"text":"Even Faster","id":"even-faster"},{"level":2,"text":"Made for AI","id":"made-for-ai"},{"level":2,"text":"Why?","id":"why"},{"level":2,"text":"Try it!","id":"try-it"}]}}