2026-03-31 01:16:50 +02:00
# CHAT_CONTEXT.md
2026-04-11 03:14:45 +02:00
This file is the small startup brief for new implementation chats.
2026-03-31 01:16:50 +02:00
Read this after `AGENTS.md` .
2026-04-11 03:14:45 +02:00
Then inspect the code.
Then open only the relevant sections of `architecture.md` , `roadmap.md` , and `testing.md` .
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
The large docs are reference docs, not mandatory full reads.
2026-03-31 01:16:50 +02:00
---
2026-04-11 03:14:45 +02:00
## Current Status
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
As of now, the repo is no longer in the very early “empty skeleton” phase.
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Broadly implemented already:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- foundational document/command/persistence/test setup
- box-based room authoring and per-face materials / UVs
- built-in runner with edit -> run loop
- world settings / lighting / environment basics
- typed entities and trigger/action/target interaction flow
- GLB/GLTF model import and model instances
- local lights, animation playback, spatial audio
- advanced rendering
- better material-library workflow
- runner package / embeddable runner work
- multi-viewport editor foundations
- unified creation/placement foundations
- transform foundations
2026-04-13 14:50:09 +02:00
- project-wide time foundation with a running global clock
- first day/night lighting override tied to project time
2026-04-15 13:57:29 +02:00
- typed control-surface foundation for steerable runtime capabilities
- scheduler/notebook foundation with authored routines over global time
- scheduler-driven NPC presence, path-following, and animation triggering
- first dialogue foundations with runtime dialogue overlay and dialogue-start interaction links
2026-04-28 03:28:55 +02:00
- dedicated editor simulation controller for editor-time playback
- incremental viewport simulation sync using base-scene and frame updates
- richer Player Start input authoring for keyboard, mouse, and gamepad
- Player Start interaction reach/angle and gameplay targeting-related input settings
- advanced rendering layer/category separation for AO-world, post-AO transparent, and overlay visuals
- viewport time transport controls for editor project-time playback
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Important consequence:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- many roadmap sections are now historical context, not literal todo items
- do not assume Milestone 0-3 are untouched just because they are still documented
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
When in doubt, inspect the current code before trusting old milestone wording.
2026-03-31 01:16:50 +02:00
---
2026-04-11 03:14:45 +02:00
## Current Product Direction
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
The product is a browser-native engine/editor for interactive 3D environments.
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Key direction:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- intuitive whiteboxing / level blocking
- imported assets as first-class content
- typed entities and runtime interactions
- fast built-in runner workflow
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
The geometry direction is shifting from old grid-bound “brush” thinking toward whitebox solids:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- floating point transforms allowed
- free object rotation allowed
- grid is optional snap/reference help
- object / face / edge / vertex editing should converge on one transform-driven model
- non-planar quads are acceptable if triangulated deterministically
- non-convex whitebox solids are acceptable if the solid mesh/collider path supports them
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Old code and docs may still say “brush” in places.
Treat current box-brush structures as the starting point for whitebox solids unless the slice deliberately changes that.
2026-04-04 19:14:54 +02:00
2026-04-11 03:14:45 +02:00
---
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
## Hard Current Assumptions
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- world is right-handed and Y-up
- canonical state lives outside the React tree
- document/project state remains source of truth
- editor changes should flow through commands
- model instances remain separate from entities
- world settings own global background / ambient / sun / fog
- local authored lights stay in typed entities
- project save/load and runner export are separate concerns
2026-04-13 14:50:09 +02:00
- project time is global, not per scene
2026-04-28 03:28:55 +02:00
- editor project-time playback is driven by a dedicated simulation controller rather than per-frame React clock state
2026-04-15 13:57:29 +02:00
- project-global day/night, control-surface, and scheduler/notebook foundations already exist and should be extended rather than reinvented
2026-04-14 01:21:41 +02:00
- scheduler/notebook work should sit on top of a shared control surface, not a growing pile of one-off scheduler-only effect types
- when a new capability is added that is meaningfully steerable over time, prefer making it control-surface-addressable and scheduler-available instead of adding isolated time fields
2026-04-15 13:57:29 +02:00
- dialogue foundations already exist, but branching choices, outcomes, robust trigger/NPC sources, and scheduler-driven availability/variants are still incomplete
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Imported model collision:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- authored collision settings belong on `modelInstances`
- generated collider data is derived, not canonical
- if non-box collider support needs broad-phase/narrow-phase pruning, prefer Rapier over custom app-side collision math
2026-03-31 01:16:50 +02:00
---
2026-04-11 03:14:45 +02:00
## Reading Strategy
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Default:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
1. read `AGENTS.md`
2. read this file
3. inspect the code paths touched by the slice
4. open only the relevant sections of:
- `architecture.md`
- `roadmap.md`
- `testing.md`
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Open the larger docs only when needed:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- `architecture.md`
- data-model boundaries
- runtime/editor integration
- geometry/collision semantics
- persistence/export/package architecture
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- `roadmap.md`
- whether a direction is already chosen
- whether something is intentionally deferred
- how a large topic should be split into slices
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- `testing.md`
- what test layers to add
- schema/migration expectations
- browser/e2e guidance
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
If the slice is small and local, do not reread unrelated doc sections.
2026-03-31 01:16:50 +02:00
---
2026-04-11 03:14:45 +02:00
## What To Be Careful About
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- do not restart architecture just because the original docs were written earlier
- extend existing paths instead of introducing parallel systems
- if docs and code disagree on current behavior, trust the code and update docs if your slice changes direction materially
- keep responses brief and verification scoped to the actual slice
2026-03-31 01:16:50 +02:00
---
2026-04-11 03:14:45 +02:00
## Likely Near-Term Themes
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
The next large topics are more likely to be things like:
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
- whitebox-solid editing model
- multi-scene / project structure
2026-04-15 13:57:29 +02:00
- richer runtime systems and dialogue behavior
2026-04-13 14:50:09 +02:00
- authored day/night refinement on top of project-global time
2026-04-15 13:57:29 +02:00
- scheduler conditions / overrides / scene-global rows and later deterministic schedule/routine/event systems driven by global time + flags + scene context
- event/reaction sources that reuse the same control surface as scheduler and interactions
- dialogue variants / outcomes on top of the existing dialogue foundation
2026-04-14 01:21:41 +02:00
- scheduler/control-surface convergence so newly steerable runtime features are naturally available in the notebook
2026-04-11 03:14:45 +02:00
- remaining packaging / portability work
- future primitives and topology tools after the whitebox direction is coherent
2026-03-31 01:16:50 +02:00
2026-04-11 03:14:45 +02:00
Do not assume the old prompt list is still the whole plan.