A lightweight Three.js-based engine with Ammo.js physics and a Blender-driven authoring workflow.
Default engine settings are set to emulate the Nintendo64's constraints.
This README is a quick-start. Full docs live in src/docs/pages/ and render directly on GitHub.
- Three.js renderer with scene/skybox management
- Ammo.js physics (rigidbodies, raycasts)
- AI navigation (navmesh + agent steering)
- Character controller and locomotion
- Event and input systems
- UI system (HUD, stat bars)
- Inventory and item framework
- Particles and projectile utilities
- Audio system
- Loading screen and main/settings menus
- Asset pipeline + Blender add-on/exporter
- Node.js 18+
npm installnpm run dev
# open http://localhost:5173npm run buildnpm run serve
# then open http://localhost:5173/node server.js
# then open two browser windows http://localhost:5173/?lan=true (Connects to localhost:8080)Notes:
- Production builds disable dev mode and do not include
/public/docs. - Entry:
src/runtime/engine.js→ Output:public/build/runtime.js.
In development, press F1 for the debug overlay. An “Open Docs” button appears there (dev-only). Production builds keep dev features disabled.
- Getting Started
- Asset Authoring (Blender)
- API
- Architecture Overview
- Runtime Overview
- Runtime Modules
- Agent
- Archetypes
- Asset Loader
- Audio System
- Character Controller
- Component
- Debug
- Engine
- Event System
- Healthbar Component
- Input
- Inventory
- IO
- Item
- Loading Screen
- Navmesh
- Network
- Particle System
- Physics
- Player
- Pool
- Projectile
- Raycaster
- Renderer
- Rigidbody
- Scene
- Skybox
- Statistic
- Statistic Bar
- UI System
- Volume