@jeffrey 8d ago

AC Weekly — April 14 to April 22

~369 commits. the big arc this week: the LACMA 2026 grant pitch got finished and submitted with a full boot→notepat→shutdown demo video, notepat grew into a proper Max for Live device you can drive from Ableton, arena turned into real Q3-style multiplayer, and aesthetic ants (aa) got a chat bubble that lives inside any piece. there's also a new public help piece that anyone can use to ask the system questions.

@jeffrey

LACMA 2026 — submitted

the grant went out the door. the pitch landed as a proper landing page at aesthetic.computer/lacma-2026, anchored around a 2027 Symposium and 2028 Demo Day, with the framing sharpened across the week — from "The Unfinished Instrument" to "A Planetary Laptop Orchestra" to its final title, "Personal Computers Are Not Done Yet" (c2423fe22, 2528486b3). the proposal got its PLOrk argument folded in (6d22b0639), a $50k budget section, and a bio/culture rewrite (3b15f9e3d). the last round of cuts killed em dashes, softened the closing line, and reframed the whole thing as an "AC Device Library" — a lending fleet with a public waitlist (217774d12, ba15aa8b6).

the demo video was the other half of the work. a full boot→notepat→prompt→"off"→shutdown sequence, captured on the actual ac-native macbook, with synced VO and subtitles (c9284af15, adc3ed01b, a88bbd348). the closing 8-bar waltz got longer and audio/video sync got fixed. the landing page itself flipped hardware/video order and added a prominent SUBMITTED banner once the form went in (133f81f61, 8fea03689).

notepat goes Max for Live

notepat-remote

this one's big. notepat is now a Max for Live relay device. you drop the .amxd into an Ableton session, and it bridges ac-native → session-server → Ableton in real time (e4c0bcd3c, e1eb093d4). the device hosts a tiny embedded notepat-remote UI inside the M4L panel — an Ableton-orange palette, a 169px fit, dual 4×3 chromatic octave blocks for base and base+1, hot-switch octaves 1-9, and a "TAP ME" overlay when the panel loses focus (ac9166d27, 81c3bf20b, 69a8e1ebf).

the tricky part was input. Max's [key] object doesn't see jweb iframes properly, so we went BIOS-level: capture keys in the iframe, hop to window.max.outlet, back to native Max [key]/[keyup] for sub-millisecond local input (2a9e1803a, 35d606c46). there's an RTT probe (ping → Max sprintf → jweb acMaxPong) to measure real pipeline latency (44e966fe0), a UDP MIDI status badge that pulses green on send (79e694c18), and UDP MIDI now defaults on (d16fa6762). the .amxd is hosted on lith with a correct /m4l/ download URL (fd38c3ff4, f551110a8).

notepat itself kept evolving

notepat

the main notepat piece got a scrolling record-needle waveform strip above the pads (87bc423e6), a master volume + drive (tanh soft-sat) FX block with X/Y trackpad bindings (6a5e6cf3e, fac6dc032), a massive FPS boost from QR caching and a C-side waveform strip (a33ea366e), and a pixel-art dancing harpist sprite in harp mode (2f3f82cba).

the synthesis side got sharper too: per-instrument shift-alt sound layers (997aebe13), a wobble/flange FX with snap-release (7a2e69f92), a rewrite of the zoo and laser kits from researched DSP recipes (6d4d8cbb1), shift+whistle = messy 'blow' with a noise layer (d964f6285), smooth release with a teal wave and aligned needle (750d1214b), a reverse-only spacebar loop (2d481a8c9), space-release-press stutter that grabs a fresh ~500ms chunk each time (4eec0fd21), and a 0 reset button per FX row (b837e2974). velocity capture, pressure smoothing, and a NuPhy badge/gauge got added to round out the haptic side (18880d7a8).

arena — real multiplayer

arena

arena went from "shared rooms" to proper multiuser with an ArenaManager doing Q3-style pmove and delta snapshots (a88262d96). the spectator experience got cleaner — you see your own avatar but not your own body, and you leave properly on exit (c3516d968). same-handle multi-tab now uses a takeover model (4939532ee), and self-takeover-on-reconnect is fixed with a free-fly spectator cam (61a18fddd). ghost-players and frozen-positions after reload are gone (1561ec670). live-reload on new deploys follows the same polling pattern as dumduel (ff3dcc6e5). the top-right HUD now stacks into 6 labeled, non-overlapping sections (913ada33a).

aa and help — chat lives inside pieces now

aa

aesthetic ants (aa) got rewritten as a chat.mjs inheritor (3ed94866f) — it now has chat.mjs-style scrolling, inertial fling, and tool-result surfacing (ba6381bd9). replies stream in progressively (14578e544). prompts stack while aa is thinking, each turn does a git pull so in-piece edits land live, and there's a new auto-reload when a deploy lands mid-session (1b025ecb2, 1348f1f66). there's also a phone-side claude bridge gated to @jeffrey (ed2deae8e) and a repo-local aa memory store with lith deploy feedback (414bdaf89).

the public cousin is help — a rate-limited, stateless, sandboxed Q&A about aesthetic.computer (824f6a69f). it's backed by the same macbook bridge as aa but through a locked-down /api/help/chat endpoint (haiku, read-only tools, path deny-list on secrets) (b81cc87bf). log in, pick a handle, and you can ask the system questions.

help

new pieces: stripes family, rozzy, pieces

four small pieces landed this week. stripes cycles a rainbow of vertical stripes (1060494a4). girlstripes does y2k hot pink with glitter (ff0c2125c). emostripes is the harsh glitchy sibling (37a92a96c). and rozzy is an eerie slow roz variant in green-purple-black (2c5b716cf).

girlstripes

there's also pieces — a new piece showing the most recently added or edited pieces in the system (bccbb4f32), backed by a new /api/piece-commits endpoint (68df866d8). think of it as a little window into what's shipping.

pieces

keeps, ipfs, and lith

keeps is more self-hosted now. CIDs pin to a public pinning service after every upload (b31962225), public IPFS gateways get warmed after upload and after every resync tx (5fac0339e), the oven thumbnail quality and duration got bumped so objkt's animation path stays happy (64038a179), and silent thumbnail-bake fallbacks now surface to the client instead of failing quietly (e679fba07). keep.kidlisp.com's rekeep flow is fixed end-to-end (789f1357a), and the mint flow is instrumented for startMintFlow, connectWallet, and syncWalletToProfile (2aec3b9e2).

lith got the things a real server needs: auto-purge Cloudflare cache on system/public/* changes (aa863c058), Netlify-compatible -background function semantics (ef84d480e), proper Caddy CORS passthrough for the Kubo IPFS gateway (8e49b475c, b62040457), and a version-controlled knot ↔ GitHub mirror setup replacing the old CI workflow (4ab64d5d8, 4497f2b3f).

small things that matter

- the prompt restored its uniticker (web curtain) with a healthy mix of all 6 feeds (01677c368) - /quotes ledger + first entry (AE-2026-001, UCLA Social Software) (8dc097a0b) - slab picked up a tailnet peer submenu with click-to-ssh (8f33ff8ad), mail integration via mbsync + mu (df6fce164), and a live AU ambient synth with per-close timestamped recordings (dd2fd46ad) - ac-native boots faster (3s→2s), with a matrix-rain background, and shuts down with a "bye @handle" red/white strobe farewell (11c6a6ff8, b55f87523) - flash-mac now bakes GitHub PAT + Claude OAuth tokens into the initramfs from MongoDB, auto-runs ac-login if the token is stale, and preserves user-saved wifi networks (4f2edcec3, 445d26189, f1c97a9bb) - os.mjs devices list disambiguated: m = make live USB, w = wipe+install (and w now ALWAYS wipes) (4894ad54a, a0d19a2f6) - stream piece got fast-path no-CORS stations + lifecycle telemetry + chat commands (45544df11) - the are.na annual vol. 8 pitch ("Whistlegraph and the Self-Teaching Score") went out, with a landing page at /are.na-annual (f82dbdd8d)

---

@jeffrey