npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

littlejsengine

v1.19.3

Published

LittleJS - Tiny and Fast HTML5 Game Engine

Readme

LittleJS - The Tiny Fast JavaScript Game Engine

LittleJS Logo

NPM Package Build Size NPM Downloads DeepScan MIT License Discord

🚂 All Aboard!

LittleJS is a fast, lightweight, and fully open source HTML5 game engine designed for simplicity and performance. Its small footprint is packed with a comprehensive feature set including rendering, physics, particles, sound, and input handling. The code is very clean and well documented with many examples to get you started quickly.

🚀 Join the LittleJS Game Jam

The Third Annual LittleJS Game Jam will take place From Oct 2 to Nov 2! Unleash your creativity and develop amazing games using the LittleJS game engine.

😼👍 LittleJS + JS13k - We made a special branch designed for size coding events like JS13k.

Demos | Arcade | Docs | FAQ | Trailer | Discord | AI

LittleJS Screenshot

LittleJS Features

✨ Graphics

  • Blazing fast WebGL2 + Canvas2D hybrid rendering system
  • Apply Shadertoy style shaders for post-processing effects, or on any object or draw
  • Robust particle effect system and effect design tool
  • Load sprites and animations into texture sheets at runtime, or import TexturePacker and Aseprite atlases

🧊 LittleJS 3D

  • Built-in 3D renderer with no dependencies that adds about 21kb gzipped, drawing into the same WebGL canvas as the 2D scene, so 3D can sit behind your sprites, in front of them, or both
  • EngineObject3D is an EngineObject with a mesh, so update, collision, children, timers and sound all work the way they do in 2D
  • Build shapes in code with box, sphere, plane, cylinder, cone, capsule, torus, lathe and loft builders, give any sprite thickness to make a block model, or load an OBJ file
  • Sunlight with real shadow maps, where cut-out art like a leafy tree casts its true outline, plus ambient light, up to 8 colored point or directional lights, specular highlights, emissive glow and distance fog
  • Height map terrain from an array or an image, with height, normal and raycast lookups for driving and walking on it
  • Instanced drawing puts thousands of copies of a mesh into one draw call
  • 3D particles, trails, ribbons, billboards and text extruded from the engine font
  • Orbit, chase and first person cameras, perspective or orthographic, with mouse picking and 3D positional sound
  • Any object can carry its own shader, in 2D or 3D, and post-processing shaders reach the 3D scene too, including a built-in bloom for glowing lights
  • The Three.js plugin is still fully supported as an alternative, rendering a Three.js scene behind the LittleJS canvas with ThreeJSObject letting LittleJS physics drive its meshes

🔊 Audio

  • Sound and music with mp3, ogg, or wave files
  • Use ZzFX sound generator to play sounds without asset files
  • Spatial audio stereo panning
  • Audio effects plugin with filter, reverb, delay, distortion and compressor

🎮 Input

  • Comprehensive input handling for mouse, keyboard, gamepad, and touch
  • Customizable on screen gamepad designed for mobile devices

💥 Physics

  • Robust arcade physics system with collision handling
  • Fast tilemap collision and raycasting
  • Full Box2D integration for realistic physics using Box2D v2.3.1 wasm
  • Grid-based A* pathfinding plugin with optional path smoothing

🚀 Flexibility

  • Compatible with all modern web browsers and mobile devices
  • Full TypeScript and Module support with example projects for both
  • Vite starter template for instant dev server with hot reload
  • Great for size coding competitions like Js13kGames
  • Open Source and MIT licensed

🛠️ Developer Tools

  • Live example browser with code editor
  • Import level editor data from Tiled or other JSON
  • Debug overlay and primitive rendering system
  • Medal tracking system with Newgrounds support
  • Node.js build system

🤖 AI Friendly

  • The entire API is small and well documented so LLMs can produce high quality results
  • LittleJS AI Tools - Templates, examples, and prompts tuned for AI + LittleJS workflows
  • LittleJS GPT - Build LittleJS games right inside ChatGPT

How To Use LittleJS

To get started download the latest LittleJS package from GitHub or install via npm:

npm install littlejsengine

or use degit for an empty Vite template

npx degit KilledByAPixel/LittleJS/examples/vite-starter my-game
cd my-game
npm install
npm run dev

Here is a minimal Hello World example game.

<!DOCTYPE html>
<script src="../dist/littlejs.js"></script>
<script>
function gameInit() {}
function gameUpdate() {}
function gameUpdatePost() {}
function gameRender() {}
function gameRenderPost() { drawTextScreen('Hello World!', mainCanvasSize.scale(.5), 80); }
engineInit(gameInit, gameUpdate, gameUpdatePost, gameRender, gameRenderPost);
</script>

Tutorials

Examples

LittleJS comes with several demos both for learning and using as starter projects to create new games.

  • Example Browser - Live example browser with all examples and editable source
  • LittleJS Arcade - Over 50 example games you can use as starter projects
  • Short Examples - 60+ single-file demos showing off individual engine features
  • Breakout - Block breaking game with post-processing effects
  • Puzzle Game - Match 3 puzzle game with HD rendering and high score tracking
  • Platformer - Platformer/shooter demo that loads level data
  • Box2D Demo - Box2D plugin demonstration and testbed
  • 3D Example - The 3D plugin in one scene: terrain, shadows, lights, sprites, particles and bloom
  • 3D Racing Game - Built-in 3D plugin: terrain, shadows and a chase camera in one short file
  • Three.js Platformer - 3D platformer with LittleJS gameplay and Three.js rendering
  • Stress Test - Sprite rendering benchmark and music system demo
  • Particle System Designer - Particle system editor and visualizer

Builds

| File | Mode | Module | Use case | |------|------|--------|----------| | littlejs.js | Debug | No | Debug mode with asserts | | littlejs.release.js | Release | No | Optimized for release | | littlejs.min.js | Release | No | Optimized for release and minified | | littlejs.esm.js | Debug | ESM | Debug mode with asserts | | littlejs.esm.min.js | Release | ESM | Optimized for release and minified |

Games Made With LittleJS

Here are a few of the many amazing games created with LittleJS...

A collage of screenshots from games made with LittleJS

A sample of games built with LittleJS.

LittleJS pixel-art favicon