@woosh/meep-engine
v3.41.0
Published
Advanced 3D game engine
Maintainers
Readme
Meep Engine
Build richly lit 3D worlds for the web in JavaScript.
Meep is a game engine with a GPU-driven WebGPU renderer, physics, spatial audio, rollback networking and an in-app editor.
Examples · Documentation · Licence & pricing
Getting started
npm install @woosh/meep-engineFollow the installation guide for setup and
WebGPU requirements. The package includes samples/engine/first-scene/main.js, a scene with
lighting and keyboard input.
Rendering
Lighting, shadows, decals, transparency and volumetric fog work together in an integrated pipeline with shared scene data.
- Thousands of dynamic lights. The engine manages shadow coverage, resolution and updates, while lighting work is concentrated on the pixels each light reaches.
- Large scenes with low CPU overhead. GPU visibility culling and batched geometry keep draw calls low as scenes grow. Deferred shading concentrates material evaluation on visible surfaces.
- Adaptive resolution. The engine adjusts rendering resolution and upscales to the display size
to help maintain frame rate as load changes. This is enabled by default through
Engine. - Custom rendering passes. Add effects through render extensions. The frame graph orders the work by its dependencies and removes unused passes automatically.
Shadows, ambient occlusion, image-based indirect lighting, auto-exposure, anti-aliasing and order-independent transparency are enabled by default, alongside tonemapping, bloom and sharpening. Tonemapping adapts to SDR and HDR displays.
Optional features include baked volumetric global illumination, screen-space reflections, motion blur, depth of field, virtual texturing, a neural upscaler and a reference path tracer.
See the renderer guide for scene setup, rendering controls and custom passes.
Engine features
- Architecture. An entity-component system with parent/child hierarchies and allocation-conscious hot paths.
- Physics. Deterministic JavaScript rigid bodies, convex and mesh collision, continuous collision detection, character and vehicle controllers, and inverse kinematics, plus fluid simulation.
- Audio. Events, mixer buses, real-time parameters, snapshots and ducking, with optional scene-driven occlusion, transmission and reverb.
- Networking. Server-authoritative rollback with prediction, reconciliation and binary snapshots over WebRTC, WebTransport, WebSocket or Node UDP.
- Navigation & AI. Grid and navigation mesh pathfinding, behaviour trees, blackboards and Monte-Carlo tree search.
- Procedural generation. Rule-driven grids, entity placement and reusable themes, composed as generation tasks.
- Assets. glTF with meshopt compression, asset streaming, PNG/JPEG/AVIF decoding and versioned binary serialization.
- Tools. An editor for live scenes, per-pass GPU profiling, and a software WebGPU implementation for shader and pipeline testing.
- Input & UI. Touch, mouse, keyboard and gamepad input, an optional DOM UI layer, localisation, achievements and persistent storage.
In development since 2013 and used in a commercial Steam release. Automated tests cover physics determinism, networking and shader execution.
Production builds
Use @rollup/plugin-strip to remove development assertions from production bundles. For Vite:
// vite.config.js
import { defineConfig } from 'vite';
import strip from '@rollup/plugin-strip';
export default defineConfig({
plugins: [{ ...strip(), apply: 'build' }]
});The plugin's defaults strip both assert.* and console.* calls.
Licence & pricing
Free for small projects. Projects with both cumulative funding and cumulative revenue under US$50,000 each can ship commercially at no cost. Evaluation and internal prototypes are free regardless of funding. Paid licences are a one-time fee per project and include 24 months of major-version coverage.
See the licence overview and
pricing page for details. The package terms are in LICENSE.
Copyright © 2026 Company Named Limited. All rights reserved.
