Sindri documentation
Last reviewed against main: 2026-09-08.
The repository contains current product contracts, detailed implementation references, decision records, measured investigations, and historical audits. They are all useful, but they answer different questions. Start with the current contracts below; dated evidence should not override them.
Start here
- Project README — product identity, current capabilities, setup, and the shortest route into the repository
- Roadmap — dependency-ordered work and acceptance criteria
- Capabilities — detailed evidence for what works today
- Parity — what an engine is expected to do, what Sindri does, the gaps between runtime, authoring, scripting, and game proof, and the ranked queue of what to build next
- Changelog — user-visible changes
- Contributing — checks and contribution rules
Projects, scenes, and assets
- Project format
- Asset foundation
- Scene extraction
- Scene serialization
- Component schema registry
- Prefabs
- Reusable profiles
- Static web export
- Versioning
Engine model
- How Sindri does 2D
- Depth and placement in 2D
- Camera semantics
- Grid coordinates and projection
- Tile System 2
- Physics architecture
- Platform host
- Rendering frame pipeline
- Retained inline meshes
- Presentation surfaces
- Colour handling
- Transparent rendering
- Sprite shaders
- 2D lights and shadows
- Particles
- Nine-slice sprites
- Terrains
- Sprite masks
- World text and rich text
Editor
The editor audits below are dated investigations. Their resolved findings remain valuable explanations of how bugs escaped code review, but capabilities.md is the current feature contract.
AI and coding agents
- Agent-native authoring — the accepted direction: external agents and a local one on shared docs, checks and headless play
- Decay agent guide
- Local-first AI authoring architecture — the narrow local agent in the editor
- AI authoring protocol
- AI knowledge pack — the files a chat model is given as its knowledge, built from these documents
Decay
- Sindri scripting guide
- Decay language reference
- Decay workspace
- Editor-first language direction
- Generated Decay host API
- Generated-document contract
- VS Code extension
The generated directory is produced by sindri-capabilities and must not be
edited by hand.
Weave
- Weave guide
- Weave language reference
- Real-game migration guide
- Original proof-of-concept decision
- Standalone language workspace
The focused games/weave-poc example demonstrates individual responsive
rules. Orbital Last Stand is the production-oriented reference using composed
stylesheets for every game screen.
Showcase
This records which mature Sindri capabilities the flagship game demonstrates, which improvements belong in its refresh, and which forcing-function work must remain with Orbital Last Stand.
Lamplighter
The platformer genre showcase, becoming a short real game: its premise, levels, art, the engine capabilities it leans on, and the stages of work.
Orbital Last Stand
Current implementation status is maintained in:
The game is games/orbital-baked. It began as a baked-sprite copy of an
original drawn with engine vector shapes, which has since been removed. The
following documents preserve the forcing-function plan, measurements, and
handover context written against that original:
Measurements and historical inputs
These documents describe a specific repository state, experiment, or predecessor and are not rolling capability lists:
- Legacy 2D inventory
- Effect scaling measurement
- Entity scaling measurement
- The first browser run
- Historical Rust + TypeScript proposal
Repository policy
- Feasibility and accepted product constraints
- Dependency policy
- CLI conventions
- The isometric baker
- Module layout and file-size policy
- Agent guidance
- Code of Conduct
Example notes
- Textured cube and sprite overlay
- Shared triangle proof
- Shapes Lab
- Shapes Lab tests
- Browser smoke tooling
Documentation maintenance rule
When behavior changes, update the owning subsystem document and the relevant
status matrix in the same change. Date documents that intentionally describe a
snapshot. Generate machine-derived references rather than hand-editing them.
The website is built from these repository sources by site/build_docs.py;
it must never silently substitute a different document when a source is missing.