A canvas runtime that adds nothing to the language: a program draws by
emitting show lines carrying the versioned drawing
protocol — every line prefixed draw, thirty-four verbs,
OKLCH colour (see the footer) — usually through use draw's
helpers rather than assembled by hand, and the page paints them. Input
crosses in as a value, not an effect; state crosses the tick boundary
through write state to "state.json", one direction. The
effect surface beside the canvas is computed, not declared — the same
analyser try.html uses, now following use
across the module graph too — and it is never hidden.
There are two renderers now, and the program cannot tell which is
listening. The canvas below and the SVG the Save button writes walk the
same stream through the same module; only what they do with a circle
differs. That is what the protocol is for.
arrow keys steer snake while it is playing · click the canvas to give it keyboard focus
SVG and PNG save the frame on screen now. Video records ten seconds.
effect surface — computed, not run:
(loading…)
source (editable — Run/Play use whatever is here):
base: — ·
modules: (none loaded)
output — lines the program showed that were not draw commands, or an error: