Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
README.md
KidLisp (Swift port, Menuband) #
Native Swift implementation of KidLisp. Linked into the MenuBand executable but designed to be independent of AppKit (Foundation only) so it can render headlessly from the CLI for conformance testing.
Decree conformance: KidLisp Decree '26: Core — phase 1 corpus only.
See kidlisp/SCORE.md for the full runtime registry.
Files #
| File | Role |
|---|---|
KLColor.swift |
Pixel color + 147-entry CSS color table |
KLLexer.swift |
Tokenizer (paren/comma/newline/ident/number) |
KLExpr.swift |
AST: number, symbol, list, bareForm, atom, program |
KLParser.swift |
Tokens → AST. Top-level statements separate on , and \n |
KLRNG.swift |
Seedable PCG32 for deterministic conformance frames |
KLFramebuffer.swift |
CPU RGBA8 buffer + wipe/line (Bresenham)/blur (separable box) + PPM writer |
KLEvaluator.swift |
Tree-walker. Heads: wipe, ink, line, blur |
KLRuntime.swift |
Top-level facade: KLRuntime.render(source:width:height:) |
KLCLI.swift |
Headless --kidlisp-render flag handler |
Headless renderer #
swift build
./.build/debug/MenuBand --kidlisp-render '<source>' <width> <height> <out.ppm> [seed]
Examples (phase 1 corpus):
./.build/debug/MenuBand --kidlisp-render 'blue' 256 256 /tmp/4xa.ppm
./.build/debug/MenuBand --kidlisp-render '(wipe blue)' 256 256 /tmp/wib.ppm
./.build/debug/MenuBand --kidlisp-render 'purple, ink, line, blur 5' 256 256 /tmp/bop.ppm
Status #
| Phase | Corpus | Heads | Status |
|---|---|---|---|
| 1 | $bop · $wib · $4xa |
wipe, ink, line, blur, bare-color-wipe | ✅ done |
| 2 | $pie · $39i |
(fps N), timing tokens, magic vars (w/h/frame), scroll, flood, circle, zoom, contrast |
not started |
| 3 | $roz · $ceo |
fade: gradients, :frame animation, spin, coat, ?/... |
claims RBP-26 when done |
| 4 | $cow |
$code embed (recursive eval + source fetch) |
not started |
| 5 | $4bb |
bake/burn offscreen pages |
not started |
When phase 3 lands, we can publish KidLisp Decree '26: Core + Render + RBP-26.
Not yet ported from kidlisp.mjs #
- Audio API (
amp,mic,melody,overtone) — Decree Audio level - 3D primitives (
cube,form,trans) - Text rendering (
write, font tables) - All transformation effects beyond
blur—scroll/spin/zoom/contrast/suck bake/burnoffscreen page model (Decree §6 Render)- Embed resolution (
$code→ fetch + recursive render) - The
?and...choice/cycle operators
These land in phases 2–5.