Light by default. Loaded when you need it.
Meep ships as ~3,000 fine-grained ES modules. Import a lerp function and pay for a lerp function. Import the renderer, the particle engine, the navmesh, the path tracer, and the AI toolkit and you'll still ship a smaller engine than most of the alternatives — because every module tree-shakes to exactly what you reference.
What follows is a catalog of 149+ named features spanning rendering, ECS, AI, procgen, UI, persistence, networking, and the engine services that come along for the ride. Use the index on the left to jump.
ECS & Scene Architecture
10 featuresA strict, data-oriented foundation. One component per type per entity. Predictable memory, O(1) cached queries, hierarchy and scene-graph composition without giving up flat-array speed.
- Pure ECS coreEntityManager + EntityComponentDataset with strict one-component-per-type discipline, observers, and lifecycle signals.
- High-level Entity builderChainable Entity.add().build(dataset) construction that hides low-level dataset calls when you don't need them.
- Entity hierarchyParent/child links that propagate transforms and cleanup down trees, on top of the flat ECS storage.
- System schedulingAutomatic execution order derived from each system's declared component dependencies and access kinds.
- Component queriesCached, incremental queries by component shape — querying a million matches costs the same per-iteration as a hundred.
- Bone attachment socketsType-aware attachment points for connecting props, weapons, and accessories to skeletal rigs at runtime.
- Dynamic rule engineAuthor conditional rules with cooldowns, predicates, and blackboard state that fire entity actions.
- Entity fitness evaluationPoint-based fitness functions over entity configurations for procedural placement and optimization.
- Multi-scene architectureIndependent scenes with isolated entity datasets, transitions, and full serialization.
- Entity reference safetyStable entity references that survive generation rollover, save/load, and scene transitions.
Rendering Pipeline
13 featuresClustered Forward+ over Three.js, with the supporting cast — instancing, virtual textures, decals, highlights, MikkT tangents, hierarchical occlusion — built in and wired through the ECS.
- Clustered Forward+ lightingThousands of dynamic lights via 3D cluster culling, without per-fragment cost of unclustered forward rendering.
- Point, spot, and directional lightsFull light-type coverage with efficient GPU buffers and shadow-casting variants.
- Variance shadow mapsSoft shadow filtering via VSM with efficient summed-area buffers.
- Hierarchical Z occlusion cullingGPU-accelerated visibility determination via Hi-Z buffers for batch occlusion.
- GPU-driven decalsProjected decals integrated with the Forward+ light cluster, scaling to large persistent-damage scenes.
- Outline & highlight renderingPer-object edge highlights with Gaussian blur and dilation passes.
- Hardware instancingDraw-call coalescing for repeated meshes; vegetation, projectiles, crowds.
- Static geometry mergingAutomatic batching of static meshes for reduced draw-call overhead.
- Virtual texturingStreamed high-resolution texture tiles via GPU feedback for vast worlds.
- MikkT tangent generationStandards-compliant tangent/bitangent computation for correct normal-map shading across tools.
- Ribbon & trail geometryDynamic ribbon primitives with per-segment physics for projectile trails, slashes, sweeping effects.
- Camera shakeTrauma-based procedural camera shake driven by impact events.
- Distance field generationSigned and unsigned distance fields baked from geometry, for UI, effects, and procgen.
Global Illumination & Sky
6 featuresReal-time GI on the web, on commodity hardware. Spherical-harmonics light propagation, physically-based sky, light probes, and a pure-JS path tracer for offline reference.
- Spherical Harmonics (SH3) GIThird-order spherical-harmonic representation of indirect lighting for diffuse global illumination.
- Light Propagation VolumesReal-time LPV bounce-light propagation in dynamic scenes.
- Hosek physically-based skyHosek-Wilkie analytic sky model with SH3 and LPV integration.
- Light probesOctahedral and tetrahedral probe interpolation for per-object indirect lighting.
- Sky cubemap captureRuntime cubemap baking for environment reflections and IBL.
- Pure-JS path tracerMonte-Carlo path tracer with Russian-roulette termination, material sampling, and BVH acceleration — runs entirely in JS for offline reference renders.
Particles & VFX
7 featuresTwo complete particle systems — a zero-allocation runtime engine and a node-graph editor with shader codegen — plus the supporting effects (decals, outlines, ribbons).
- Particular engineZero-allocation GPU particle system with emitter shapes, force simulation, billboard rendering, compiled into four shaders to eliminate state-switching overhead.
- Node-based particle graphsVisual particle editor that generates GLSL simulation shaders, with attribute binding and transform feedback.
- Particle forcesBuilt-in acceleration, drag, curl noise, and custom-attribute forces for organic motion.
- Soft particlesDepth-aware particle blending that avoids hard intersections with scene geometry.
- Automatic atlassingParticle textures packed into atlases automatically to keep batches tight.
- Highlight outlinesPer-object outline rendering with configurable colour, width, and edge softness.
- Decal projection (v2)Forward+ integrated decals for persistent surface details — battle damage, footprints, environmental marks.
Animation, Rigging & IK
9 featuresState-machine animation graphs with N-D blend spaces, humanoid skeletons, and multiple IK solvers — FABRIK for arbitrary chains, two-bone for limbs, surface alignment for foot placement on terrain.
- Animation state machinesMulti-state animation controllers with transition conditions, layering, and per-bone masking.
- Blend spacesN-dimensional parameter interpolation for smooth motion blending — locomotion, aim poses, mood.
- Animation clip eventsFrame-synced event firing from animation clips for foot plants, sound triggers, gameplay hooks.
- Humanoid skeleton mappingStandard humanoid bone taxonomy for retargeting and IK-ready rig setup.
- FABRIK inverse kinematicsIterative IK solver for arbitrary chain lengths — bipeds, quadrupeds, tentacles, tails.
- Two-bone IKClosed-form solver for arm and leg chains with pole-target control.
- Surface-alignment IKOne-bone surface-snap solver for foot placement and contact alignment on uneven terrain.
- Skeletal mesh skinningGPU-skinned mesh deformation with precomputed bone bounds for fast culling.
- Animation optimizationBone-importance analysis for selectively updating only the bones that matter at distance.
Terrain, Water & Sky
6 featuresA complete world layer — tile-based heightfield terrain with worker-thread LOD, splat-mapped materials, water with shore transitions, and procedurally-driven cloud shadows.
- Tile-based terrainChunked heightfield terrain with auto-culling, worker-thread LOD generation, and seamless tile transitions.
- Multi-layer splat mappingSplatmap-driven material blending across many terrain layers, well beyond the 4-layer limits of common engines.
- Terrain cloud shadowsProcedural cloud-shadow projection for atmospheric outdoor scenes.
- Terrain overlaysDynamic overlay rendering for fog of war, area markers, build placement previews.
- Cling-to-terrainComponent that snaps and aligns objects to the heightfield automatically.
- Water renderingWave simulation, depth-based fog, shore transitions, and light scattering through the water column.
Impostors & LOD
3 featuresView-independent impostor systems for filling vast scenes with distant detail at near-zero per-instance cost.
- Octahedral impostorsView-independent impostor rendering via octahedral depth-map baking — distant LODs at billboard cost.
- Card-cluster impostorsFace-plane impostor assignment for vegetation, debris, and high-instance-count props.
- Impostor atlas bakingAutomated impostor atlas generation from source meshes with alpha-based silhouette extraction.
AI & Decision Making
9 featuresIndustry-standard AI primitives rare in JS engines — behavior trees with full composite/decorator/event toolkit, blackboards, MCTS, and a resource-allocation solver for strategic planning.
- Behavior treesComposite, decorator, selector, and primitive nodes with the full toolkit for hierarchical agent AI.
- BlackboardsShared context storage with signal dispatchers for inter-node and inter-agent communication.
- Monte-Carlo Tree SearchAlphaGo-family planner for turn-based decisions and game-theoretic optimization.
- Resource allocation solverStrategic multi-bid solver that distributes limited resources (ammo, health, currency, time) optimally across competing demands.
- State graphs / FSMDeclarative finite-state machines with signal-driven transitions, suitable for actor controllers.
- Weighted random selectorsProbabilistic behavior selection with weighted choice for non-deterministic agent variety.
- Event-driven behaviorsSend/wait/kill event behaviors for cross-agent communication within behavior trees.
- Promise-based behaviorsAsync task wrappers for long-running AI operations — loading, network calls, animated sequences.
- Behavior serializationFull save/load adapters for in-flight behavior trees, including pending states and timers.
Procedural Generation
9 featuresA composable marker-and-rule procedural pipeline for grid-based worlds, with 25+ cell filters and a theme system that bundles biomes end-to-end.
- Marker-based generationRule-and-marker composable pipeline — emit markers, match patterns, transform the grid.
- Cellular automataNeighbor-sum rules for cave generation, smoothing, and emergent terrain patterns.
- Multi-layer grid generationStack-of-layers generator with per-layer rules and cross-layer matchers.
- Theme systemBundled biome definitions — terrain layers, marker rules, transformation rules — applied as one unit.
- Cell filters25+ filters: dilate, erode, blur, gradients, Sobel edges, step/lerp/saturate, Gaussian, lookup tables.
- Distance fieldsUnsigned distance fields over grid cells for obstacle-aware placement and falloff.
- Pattern matchersLocal neighborhood pattern detection with arbitrary mask shapes and rotational variants.
- Predicate combinatorsAND/OR/NOT/any/none predicates over markers and cell data for expressive rules.
- Weighted random placementProbability-driven action selection over candidate cells with weight functions.
Math, Geometry & Spatial Queries
14 featuresThe foundations every engine needs done right — a memory-tight BVH, robust geometric predicates, splines, noise, and a color toolkit that includes modern perceptually-uniform spaces.
- Bounding Volume HierarchyMemory-optimized BVH at 40 bytes/node with SAH layout for ray, AABB, sphere, and frustum queries.
- Incremental BVH updatesDynamic-scene BVH maintenance via Morton-code reordering without full rebuild.
- Ray intersection suiteRay-triangle, ray-sphere, ray-AABB intersection with barycentric output for bulk queries.
- Frustum classificationInside/intersect/outside frustum-AABB tests for LOD culling and streaming decisions.
- Catmull-Rom splinesUniform and non-uniform splines with derivative computation for camera paths and smooth motion.
- Simplex & curl noise2D and 3D simplex noise plus 3D+time curl noise for organic motion and procedural detail.
- Robust geometric predicatesOrient3D, in-sphere, barycentric tests with adaptive precision for reliable mesh operations.
- Delaunay tetrahedralizationCavity-based 3D point-cloud triangulation for volumetric meshing.
- Winged-edge topologyManifold mesh data structure for editing, traversal, and validation.
- Vector / matrix / quaternionComplete linear algebra with in-place math operations to avoid allocations in hot loops.
- Eigenvalue decompositionSpectral analysis for mesh quality assessment and graph partitioning.
- Graph algorithmsGreedy/MCS coloring, Laplacian/adjacency matrices, K-means, METIS partitioning, multigraph coarsening.
- Hemioct normal encodingOctahedron-mapped unit-vector compression to 2 bytes for tight G-buffers and vertex streams.
- RGBE9995 HDRCompact high-dynamic-range colour encoding for linear-space rendering.
Color Management
6 featuresA scientific-grade color toolkit — perceptually-uniform spaces, gamut mapping, color temperature, CMFs — that takes color seriously where most engines wave their hands.
- OKLab / OkhsvPerceptually-uniform color spaces for accurate gradients and color blending — handles hue/lightness without the kinks of HSL.
- Gamut mappingMax-saturation computation and gamut intersection for safe color transitions in OKLab and Okhsv.
- Color temperaturePlanckian-radiance Kelvin conversion with D65 spectral power distribution.
- Color matching functionsTabulated CIE colour-matching functions for spectral-to-tristimulus conversions.
- sRGB / linear conversionsStandards-compliant gamma conversions with both fast and high-precision paths.
- YCbCr encodingCompact color storage for compression pipelines.
Audio
5 featuresA spatial Web Audio layer with positional sound, attenuation, and ducking for thousands of concurrent sources at zero per-source overhead.
- Web Audio engine wrapperAudioContext lifecycle management with built-in handling for browser autoplay rules.
- Spatial sound emitters3D-positioned sources with configurable panning models and distance attenuation curves.
- Multi-track sound managementPer-track playback control, flags, and channel routing for music, SFX, ambient, and UI buses.
- Volume / dB conversionsLinear-to-decibel utilities for realistic audio mixing and falloff curves.
- Sound cullingDistance and visibility-based emitter culling for scenes with thousands of potential sources.
Input & Controls
4 featuresA unified input abstraction across mouse, touch, pointer, and keyboard, with event-driven and query-based APIs and stateful controller contexts.
- Unified input devicesSingle API across mouse, touch, pointer, and keyboard, with device-switch detection.
- Control context state machinesStateful controllers that own input state and orchestrate transitions cleanly.
- Locational interactionPer-event position and hit-test context for UI and worldspace interactions.
- Cursor type controlProgrammatic cursor changes driven by interaction state.
UI Toolkit
13 featuresA complete in-house UI system — zero-garbage, GPU-friendly — covering everything from tooltips and currency displays to radial menus and virtual lists. Optional: swap in React, Vue, or your own if you prefer.
- Radial menuDonut-ring contextual menus with weighted item layout and focus highlighting.
- Tooltip GML parserGame Markup Language for rich-text tooltips with style tokens, references, and embedded values.
- Currency display systemMulti-denomination coin/currency rendering with sorted value hierarchies and animated transitions.
- Segmented resource barsMulti-segment progress bars for stacked resources like health pips or ammo clips.
- Radial progressCircular progress indicators with smooth animations.
- GUI controlsAdaptive input controls — numeric, vector, vector3, dropdown, checkbox, color picker — bound to game state.
- Drag and dropDrag-and-drop with target/source abstractions and visual feedback.
- Virtual list viewViewport-recycling scrolling for large data sets without DOM bloat.
- Modal dialogsBuilt-in modals with confirmation patterns and accessible dismissal.
- Toast notificationsTransient notification queue with achievement-style pop-ups and log views.
- Tab navigationViewStack for hierarchical view management and breadcrumbed navigation.
- Minimap renderingWebGL minimap with terrain layers, marker overlays, and camera frustum visualization.
- Mesh & canvas preview widgetsEmbedded Three.js mesh and canvas previews for inventory icons and inspectors.
Persistence
5 featuresProduction-grade save/load — binary serialization with versioned migration, IndexedDB or in-memory backends, transient marking, and entity refs that survive transitions.
- Binary serializationCompact, fast binary save format for entities and components.
- Versioned format migrationPer-component upgrader chains automatically migrate save files across engine versions.
- Storage backendsIndexedDB, in-memory, and pluggable backends for browser and embedded scenarios.
- Transient entity markingFlag entities and components to skip serialization — for runtime-only effects, debug spawns, or session state.
- Entity referencesReferences that remain valid across save/load and scene transitions.
Networking
6 featuresDeterministic action replication for true client-side prediction. Server-authoritative or peer-to-peer. Built for multi-client games without bolting a netcode library on top.
- Action replicationForward action logs between peers with scope filtering; receivers re-execute actions locally for client-side prediction.
- Server-authoritative modeServer-driven sessions with role-based state management and authoritative simulation.
- Peer-to-peer modeSymmetric peer-to-peer sessions for cooperative play without a central server.
- Entity scope filteringReplicate only entities relevant to each peer based on ownership or spatial proximity.
- Interpolation & time-syncAdaptive render delay and time dilation to smooth network latency and jitter.
- Network identity & ownershipPer-entity ownership and network identifiers for multi-peer synchronization.
Engine Services
11 featuresThe supporting cast every shipping game needs — asset pipeline, plugins, options, achievements, localization, metrics, and a live performance dashboard.
- Priority-based asset loadingAsync asset pipeline with configurable concurrency and priority queueing.
- Asset transformersExtensible loader pipeline for custom formats and preprocessing.
- Cross-origin asset configPer-asset CORS and credential controls for hosted content.
- Plugin architectureEngine plugins that hook startup, frame updates, and shutdown without forking the core.
- Options frameworkHierarchical settings with reactive UI bindings — generate options panels from definitions.
- Achievement systemAchievement tracking, persistence, and notification-driven unlock animations.
- Localizationi18n keys with formatter support across UI, tooltips, and notifications.
- Performance dashboardRing-buffer metrics with a live in-browser overlay for profiling during play.
- Pluggable loggingConsole, void, and Elasticsearch backends — route logs without touching call sites.
- Metrics & analyticsCategorized event tracking with Google Analytics integration and pluggable backends.
- Notification systemEngine-wide notification queue for UI, achievements, and system messages.
Developer Experience
8 featuresBuilt by an engineer for engineers. The defaults reward correctness in development, get out of the way in production, and never lock you into a black box.
- 4,500+ runtime assertionsAsserts at the source of every invariant — caught instantly in dev, stripped entirely from production builds.
- Strip plugin integration@rollup/plugin-strip removes every assertion in production for native-speed runtime.
- 4,000+ handwritten testsTest coverage of critical algorithms, edge cases, and architectural invariants.
- Source-availableFull engine source ships in the npm package — no binary blobs, no obfuscation, no closed precompiled modules.
- JSDoc-typed JavaScriptAuthored in JavaScript with JSDoc; TypeScript declarations generated by the build for TS users.
- Fine-grained ES modules~3,000 modules that tree-shake to only what you reference — the engine boots fast and starts streaming assets sooner.
- Optional Three.js peer dep3D rendering integrates with Three.js as an optional peer — non-graphics uses don't pull it in.
- No editor requiredCode-first by design. No proprietary scene format, no opaque project files. Edit code, not GUIs.
Don't see what you need?
The full source ships in the npm package — read it. If you're evaluating Meep for a specific subsystem and want a pointer at the right files, email me.