How this site works
Built by hand, with every interactive piece showing real data or real work. No templates, no stock imagery and no tracking.
Direction
Ink and watercolour on paper for the page, engineering annotation for anything measured, and dark instrument panels for anything that runs. The chrome stays quiet so the work carries the colour. One accent, moss, marks what matters; pigments appear only inside the drawings.
- Paper
- Card
- Raised
- Ink
- Ink 2
- Ink 3
- Moss
- Night
- Lichen
Type and motion
Newsreader for headlines, Instrument Sans for everything else, IBM Plex Mono only for code inside panels. Two weights, sentence case, tabular figures. Every animation uses one curve, cubic-bezier(0.22, 1, 0.36, 1), moves only transform and opacity, pauses off screen and stops when you ask your system for reduced motion.
Real data
The hero is a live interference field of six wave sources, drawn by a WebGL shader as a watercolour wash of amplitude and ink lines of equal phase. The rings mark phase vortices, points where the wave cancels to zero and the phase winds a full turn; they are found on the CPU every few frames. The case plates are the same shader with different sources, rendered at build time. The model family tree and download counts are a Hugging Face API snapshot. The BDH charts are my own training logs. The SlopSoup schedule is the network’s real grid. The 3D parts were generated by ANIMA’s geometry code. Scripts in the repository rebuild each one.
On-device AI
The Ask panel searches this site’s own text with BM25 in your browser. If you choose to load it, LFM3-Omni-2B runs on your GPU over WebGPU with Liquid AI’s runtime, which is fetched at a pinned commit and checked against a SHA-256 before it runs. Without WebGPU, a Cloudflare function answers from the same passages with its key on the server. There is no client-side API key anywhere on this site.
Stack
Astro, TypeScript, plain CSS, three.js for the 3D viewers, MiniSearch, d3-hierarchy, Cloudflare Pages. Design process after the unslop method by Damir Sokolovsky.
Soil
I have planted more than 250,000 trees. There is room for one more, somewhere in the soil on the home page. It grows from a seeded branching model with real print constraints, so you can take it home.