# LittleJS

A tiny, fast, fully open-source HTML5 game engine with 2D and 3D rendering, physics, particles, sound, and input handling in a small footprint.

LittleJS is a fast, lightweight, and fully open-source HTML5 game engine designed for simplicity and performance, packing a comprehensive feature set into a small footprint. It combines a hybrid WebGL2 and Canvas2D rendering system, post-processing shaders, 2D lights with soft shadows, and a particle effect system with its own design tool, alongside runtime sprite and animation loading and support for TexturePacker and Aseprite atlases.

Its 3D renderer shares the same canvas as the 2D game and gives 3D objects the same physics, children, and timers as 2D ones, with shape builders, OBJ and glTF model loading, height-map terrain with collision and raycasts, and an optional Three.js plugin as an alternative renderer. Audio support includes sound and music playback, a built-in sound generator for asset-free sound effects, and spatial audio; physics support ranges from an arcade collision system and tilemap raycasting to full Box2D integration through WebAssembly and a grid-based pathfinding plugin. Input handling covers mouse, keyboard, gamepad, and touch, including a customizable on-screen gamepad for mobile.

Website: https://killedbyapixel.github.io/LittleJS/examples
