How lindblum/grid-game-threejs works
Grid Game is a browser and WebXR creative building app: users aim at a body-centred-cubic cell, place or delete colored truncated-octahedron blocks, and manage scenes through New, Load and Save. React presents the HUD and menu while the Three.js Engine owns interaction, rendering and XR behavior; World holds the editable scene and JSON representation. Save-file listing and writing are supported alongside a file-import/export fallback. The graph follows documented capabilities and sampled call sites; some feature wiring is represented only at its documented module boundary.
Main entry points: Engine.js Game engine · App.jsx React app · world.js Block world · saves.js Save client
Components 16
User interface
- React app
src/App.jsx - Menu model
src/game/menu.js - Input mappings
src/game/controls.js
Game runtime
- Game engine
src/game/Engine.js - Sound effects
src/game/audio.js
World model
- Block tools
src/game/tools.js - BCC lattice
src/game/lattice.js - Block world
src/game/world.js - Block geometry
src/game/geometry.js
Scene persistence
- Save client
src/game/saves.js - Save API
saves-api.js - Save files
saves
XR experience
- XR panels
src/game/xrPanels.js
Other components
- Builder
- Browser runtime
- WebXR session
Connections 19
- Builder → React app: uses
- React app → Game engine: creates
- React app → Menu model: renders from
- React app → Input mappings: displays
- React app → Block tools: shows tools
- Game engine → Block world: edits and renders
- Game engine → BCC lattice: targets cells
- Block world → BCC lattice: validates neighbors
- Block world → Block geometry: builds meshes
- Game engine → Menu model: reads model
- Game engine → Block tools: selects tools
- Game engine → Save client: lists and writes
- Save client → Save API: requests files
- Save API → Save files: reads and writes
- Game engine → Sound effects: plays effects
- Game engine → XR panels: updates panels
- Browser runtime → React app: hosts
- Game engine → WebXR session: requests session
- React app → Game engine: sends actions