Download Latest Version LittleJS 1.28.0 - Cameras, Screen Shake and Box2D Platforms source code.zip (7.9 MB) Google Add to Preferred Sources
Home / v1.26.0
Name Modified Size InfoDownloads / Week
Parent folder
LittleJS-1.26.0.zip 2026-10-08 2.8 MB
LittleJS 1.26.0 - Environment Maps and 2D Directional Light source code.tar.gz 2026-10-08 7.0 MB
LittleJS 1.26.0 - Environment Maps and 2D Directional Light source code.zip 2026-10-08 7.7 MB
README.md 2026-10-08 4.1 kB
Totals: 4 Items   17.5 MB 4

New Demos

  • 3D Reflections - A chrome ball reflecting the scene around it, captured live, and balls from polished to rough under a sky painted in code
  • Light Shadows - Now with a sun throwing long shadows across the room

New Changes

  • 3D environment maps: render3D.environment is a cube map that reflective surfaces reflect, sharp or blurred by their shininess, and render3D.skyBox draws one as the sky; makeCubeMap paints one in code, loadCubeMap loads six images, and a cube map with no faces captures the scene around a point, like three.js's CubeCamera. An object's roughness sets its shininess the way glTF measures it, and glTF models read theirs
  • DirectionalLight, a sun for the 2D light system: long shadows across open space, a background marked castBackgroundShadow lit only at its edges facing the sun, its sunDirection toward the sun as in 3D; one per scene, nothing changes without one
  • Wavedash plugin: achievements and leaderboards on Wavedash, the same shape as the Newgrounds plugin, doing nothing off Wavedash
  • Object collision with many solids is far faster, through a grid: 2000 movers went from about 1.3 s a frame to 12 ms, every contact resolved exactly as before
  • A failed assert's error says what went wrong, and common mistakes say what to pass: a color where a tile goes, a number where a vec2 goes, arguments out of order, changing a color constant
  • Shader.dispose() frees a shader's programs; skinned glTF models bend about a fifth faster; the level editors autosave a big map once the edits stop for a moment
  • The package exports littlejsengine/plugins/* and littlejsengine/src/*

Breaking Changes

  • The built in video capture is removed (key 8, debugVideoCaptureStart and the rest); the FAQ shows how to save a game frame by frame with engineStep
  • Node 22.12 or later to install the package; a game in the browser needs no Node
  • The Electron example is removed
  • render3d.js is in three files, render3d.js, render3dMesh.js and render3dObject.js; nothing changes for a game on a build in dist

Fixes

  • 3D solids meet as in 2D: a fast object no longer goes through a thin wall, two movers no longer pass through each other, and a pusher stops against a crate held by a wall; the speed cap applies after gravity in 2D and 3D, and setEnablePhysicsSolver(false) stops 3D collision too
  • Tile collision stops an object at a wall or ceiling where it hits, not up to a frame's move short of it
  • Text counts characters as a reader does: an emoji is one, an accent draws on its letter, and Windows line endings break lines
  • A release build goes on past an error in its first frame, and its sounds, Box2D joints and UI shrug off NaN, Infinity and quick taps where they threw, stopped Box2D for good, or lost a click
  • Particle effects: the same count whichever frame they start on, a moving emitter's particles spread along its path, and an option of the wrong kind keeps the effect's own value
  • A glTF model's parts, an attached prefab's and a voxel map's see-through blocks take the settings set on the model
  • Medals: an unlock in one tab is kept by another tab, and one unlocked before medalsInit stays unlocked
  • A sound whose file fails to load calls its callback, a lens flare hidden at the start stays hidden, a tween that throws is ended, and many smaller fixes across the engine, the editors and the examples

Check out the latest on GitHub to see everything we've been working on!

render3dReflections screenshot (3)

Source: README.md, updated 2026-10-08