The axiom draws, sings, and plays. Write .ax code that moves.
canvas_clear(color) — fill canvas. Color: 0-9 (palette) or "#RRGGBB"canvas_rect(x,y,w,h,color) — filled rectanglecanvas_circle(x,y,r,color) — filled circlecanvas_line(x0,y0,x1,y1,color,width) — line segmentcanvas_text(x,y,text,size,color) — render textcanvas_pixel(x,y,color) — set single pixelcanvas_size() — returns [width, height]beep(freq,duration_ms,vol) — play sine wave toneplayNote(freq,vol) — sustained tone (0 freq = stop)stopSound() — silence allkeyPressed("ArrowUp") — 1 if key currently heldmouseX() — mouse X relative to canvasmouseY() — mouse Y relative to canvasmouseClick() — 1 if clicked (consumed on read)now_ms() — milliseconds since page loadraw_mode(1) — switch to regular arithmetic (negatives, floats, division all work)gvar("name") — read persistent variable (survives across frames)svar("name", value) — write persistent variable, returns valueStandard view: Game engines need thousands of lines of C++, shaders, asset pipelines.
Axiom view: 40 lines of .ax draw the rose. The ring IS the game world. Every element has a position (CRT), a color (kingdom), a pitch (eigenvalue), and a story (coupling). .ax doesn't simulate a world — it IS one. 970200 elements, each with K^2=9 properties, alive.