input · the_claim TXT

2026 — Design & Build (solo) · Personal

The portfolio is the product

stack_data DATA
CONCEPT
DESIGN
FRONTEND
SOLO. ASTRO 6, REACT ISLANDS, TAILWIND 4, VANILLA JS PATCH RUNTIME. STATIC OUTPUT, DEPLOYED TO GITHUB PAGES.
process · the_grammar TXT

One grammar, everywhere

Every content block on this site is an operator with a typed header: VIEW for live things, TXT for prose, DATA for facts, SYS for instruments. Cables connect them. The dither field behind everything comes out of a visible chain of four SYS nodes, and that same bg_01 → bg_04 chain is patched into this page. Turn the knobs. The field re-cooks, and your settings follow you between visits.

There are two modes. PATCH is the spatial view, and it's probably where you are now. READ strips the boxes away and stacks the same content as a clean document. PATCH is the spatial view, a draggable node network built for big screens. This is READ, the same content stacked as a clean document. Small screens and reduced-motion visitors get READ by default. Nobody has to fight the metaphor.

process · layout_resolver TXT

Layouts are ASCII pictures

Node placement isn't hand-tuned pixels. Each page declares its network as an ASCII sketch, the kind you'd type into a grid-areas rule. A small resolver reads it at runtime, snaps every node to the background dot grid, and pushes overlaps apart when copy grows.

This page is placed by the system it describes. Resize the window and watch it re-cook.

process · patch_runtime TXT

The cables are real

The wires aren't decoration. Each link is a subscription on a small vanilla-JS message bus. On the homepage the work index emits a selection, a post_fx node transforms it in transit (that's the INVERT chip), and the viewer renders whatever arrives. Every delivery sends a pulse down the cable that carried it. What you see drawn is what actually ran.

The same runtime owns every timer, listener and observer behind a page, and tears them all down between navigations. Even the homepage's auto-cycle is a visible node: a cycle_clock operator ticks the index, and hovering the index dims it.

carlton_dev_view · you_are_here VIEW

There's no demo embed on this one. You're inside it. Things worth trying:

  • P toggles PATCH / READ · the same content, two renderings
  • DRAG any node by its header · the cables follow
  • TAB opens operator search in patch mode · ⌘K works anywhere
  • BG CHAIN right here on this page · noise, dither and palette for the whole site
  • HOME INDEX select a project · the signal pulses index → post_fx → viewer, and hovering dims the cycle_clock
  • TAP ▸ OPS in the top bar · operator search without a keyboard, every node on the site
  • TAP a row in the work index · first tap previews it in the viewer, second tap opens
  • BG CHAIN right here on this page · tap the chips, drag the sliders, the whole site re-cooks
  • TOUCH paints the dither field · FDBK sets how long the trail burns
  • PATCH MODE is the desktop instrument · on a big screen this page becomes a draggable node network
out · next_cook TXT

Next on the bench: container operators, one lazy-boot path for every embedded demo, and a signal monitor that live-prints the message bus. You'll be able to watch this site think.

NEXT ▸ fast
the research platform behind the engine

bg_01 · noise_src SYS
SPEED 1.00
bg_02 · feedback SYS
FDBK 0.78
CURSOR PAINTS THE FIELD ▚
bg_03 · dither SYS
DENS 0.30
SCALE 3
bg_04 · out SYS
RENDERS THE PAGE ▚