Graphics Game
A little game loop, compiled from a world-model and a renderer.
The wiring ∘ feeds ⊗ parallel
This is the compiler’s reading of how the gifts compose into one app. Read left to right: each stage feeds the next (∘). A bracketed group (⊗) is parallel — its parts don’t depend on each other.
world model- ∘
frame render
Composition term: frame-render ∘ world-model
2 declared gaps — named below, not hidden.
CONSTRUCTIBLE-WITH-2-NAMED-GAPS
The declared gaps 2
A gap is a piece the compiler knows it needs but doesn’t yet have a witnessed gift for — honest derive-first work, declared rather than hidden. The app is constructible; these are the parts you’d build.
-
gg.tick-steppure-kernelnull-witness pure-kernel (advance world state by a tick rule -- a fold over entities); derive-first, gifts-8-reference-apps line work. Off the batch data-flow (drives the interactive loop, not the render pipe), so gaps-only. Declared, not hidden.
-
gg.collisionpure-kernelnull-witness pure-kernel (filter entity pairs to colliding ones -- a pure predicate fold); derive-first. Off the batch data-flow. Declared, not hidden.
Witness gifts 2
These shipped gifts witness stages of the pipeline — the real, downloadable parts the proof stands on.
The gifts are real and free; the wiring is a plan. Take the parts and build the app — as the schematic reads it, a variation, or something we’d never have compiled.
Built it, found a gap we missed, or think the wiring is wrong? Shea wants to hear it — success stories, questions, and corrections all land in the same inbox: