← RESUME
PT · 17:02

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 · 2026

    One 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
    A specimen sheet of twelve clean geometric bear heads, each a different seed: varying ears, eyes, and sawtooth grins, all unmistakably the same bear
    TWELVE SEEDS, ONE BEAR — CLEAN SPECIMENS
  • tessera

    RUST · 2026

    A 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 tessera web UI: a drop zone, sample images including the Great Wave, and a history rail showing a finished 600-triangle run at 94.6% fit
    THE WEB UI — DROP AN IMAGE, GET A MOSAIC
    The Great Wave at 25 triangles — rough masses of sea and sky
    25 TRIANGLES
    The Great Wave at 100 triangles — the crest and boats emerging
    100 TRIANGLES
    The Great Wave at 300 triangles — clearly Hokusai
    300 TRIANGLES
    Hokusai's Great Wave off Kanagawa reconstructed by tessera from 600 translucent triangles
    AND AT 600 — 94.6% FIT TO THE ORIGINAL
  • shegotgame.fyi

    NEXT.JS · 2026 · LIVE

    Women'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 team page on desktop: team leaders led by Breanna Stewart, and the full guard roster with headshots, including Sabrina Ionescu
    NEW YORK LIBERTY — SAME APP, BIG SCREEN
    shegotgame.fyi home: a live WNBA game at halftime in the Today strip, search, and full standings with team logos
    GAME DAY, LIVE
    Sabrina Ionescu's WNBA player page: New York Liberty, yesterday's 17-point game update, season averages
    SABRINA IONESCU · LIBERTY
    The same player's college page: Sabrina Ionescu as an Oregon Duck, with her 2019-20 season averages
    SAME PLAYER, OREGON YEARS
PRESS ~ FOR A TERMINAL