LOGAN DAVIS · AFTER HOURS
On the side.
Things I build when nobody's asking: a bear machine that generates Stanley Donwood–inspired modified bears, a mosaic engine in Rust, and a courtside companion for women's basketball.
-
radiohead-bears
VANILLA JS · SVG · 2026One parametric bear, three renderers. A seeded RNG rolls the geometry — the ears, the eyes, the sawtooth grin — and the same shapes go out flat and clean, through a shaky hand-drawn nightmare pass, or rasterized to a 1-bit grid and eaten by fax damage. The identity lives in tuned parameter ranges, not code: every seed is a reproducible bear that still reads as the bear.
And every render is a found-paper artifact — a fax sheet, an envelope back, a sketchbook page, a library card. The machine's furniture shares the bear's feed skew; pen marginalia go on top, unskewed, because the pen came after the machine. The two pages below are drawing themselves right now: flicker re-rolls only the bear's skin, and the page holds still. An homage to Stanley Donwood's modified bear.
NIGHTMARE PASS — REDRAWN LIVE, EVERY 170MS THE SAME BEAR, FAXED — RE-NOISED LIVE
TWELVE SEEDS, ONE BEAR — CLEAN SPECIMENS -
tessera
RUST · 2026A from-scratch Rust port of primitive: drop in an image and it rebuilds the picture out of geometric shapes — proposing random triangles, keeping the ones that shrink the error, a few hundred times over. Custom scanline rasterizer with zero drawing dependencies, parallel workers, and everything ships as one binary: an axum server with the React UI embedded, streaming each shape over a WebSocket so you can watch the mosaic converge live, then keep the PNG, SVG, or a jittering multi-run GIF.
THE WEB UI — DROP AN IMAGE, GET A MOSAIC
25 TRIANGLES
100 TRIANGLES
300 TRIANGLES
AND AT 600 — 94.6% FIT TO THE ORIGINAL -
shegotgame.fyi
NEXT.JS · 2026 · LIVEWomen's basketball, glanceable from the stands: every roster, player page, and live box score across the WNBA, NCAA, EuroLeague Women, and Unrivaled. Games refresh themselves while you watch; a player's page follows her across leagues — to Europe, or back through her college years; ⌘K searches everyone.
Each league is a config entry, not a fork — the routing and data layers are shared, so adding a league is an afternoon, not a rewrite. Mobile-first and dark on purpose: it's built for dim arenas.
NEW YORK LIBERTY — SAME APP, BIG SCREEN
GAME DAY, LIVE
SABRINA IONESCU · LIBERTY
SAME PLAYER, OREGON YEARS