Koinophobia LabsStart a project

The lab · experiments with receipts

Small machines and large bets, at their real stage.

Everything here has receipts and none of it is finished. The dates are the point.

Teacher's Pet

Mapped 1,273 · built 100

A homeschool for one computer. The map covers 13 grades, 4 subjects, 52 courses, 318 units, and 1,273 objectives. The first course, Algebra Foundations, runs as a Mac app today.

macOS 0.2.0 (5) · registry v3.267.0 · Grade 7 sync evidence Sep 13

KOI

Research · not useful yet

A language model trained from random weights on a MacBook, on a corpus the studio owns. 298 commits, 25 versioned verdicts, most of them rejections. It cannot write a sentence yet. That is the thing being measured.

koi-0.1 · 869,504 params · perplexity 2.11 · latest verdict: bar FAILED, reverted

You Know Ball

Web demo · iOS pending

A sports-argument game where the opponent keeps score and remembers. Live as a web demo. iOS builds accepted by Apple, not yet released.

builds 26 and 27 accepted Jul 2026 · merged with Last Word Aug 30

Preaching to the Choir

TestFlight

A keeper, not a journal. Open TestFlight, build 66, approved for external testers.

1.0 (66) · 543 tests, 0 failures

Small machines · built to answer one question

The tools that keep the studio honest.

The koi

Interface

A companion fish that swims the page and answers questions about what you're looking at. The hard part wasn't the answers — it was the motion. Early versions chased the cursor, which reads as needy and makes a page feel like it's watching you.

Finding. Anchored, non-chasing motion made it feel like a resident instead of a widget. A throttled browser tab exposed an opacity bug that only appeared when frames were starved.

Live on koinophobialabs.com

Debate tournament harness

Simulation

To find out whether the scoring in You Know Ball meant anything, I ran cohorts of simulated players against the debate engine — one arguing at random, one arguing well — across every sport, and compared how often each cohort won.

Finding. A cohort that knew nothing was winning far too often for the score to mean anything, and closing that gap became the actual product work. I'm not publishing the specific rates here: when I went to source them for this page, I couldn't point at the run that produced them.

Claims gate

Guardrail

A check that sits between a creator's rough thought and the script that comes back, refusing to produce sentences that assert results the person never claimed.

Finding. It works, and it overcorrects. It was rejecting legitimate 'my client' stories as unbacked claims — one of the reasons the newer generation pipeline is still switched off in builds 117, 118 and 119.

Contrast checker

Build tooling

A script that walks every declared foreground/background pair on the site and fails if any of them drops below WCAG AA. It started as a one-off after I shipped a muted grey nobody could read.

Finding. It caught exactly that, again, on the dark surfaces — the muted token had to move from #726e85 to #807c94 to clear 4.5:1. Taste is not a substitute for a ratio.

Release-truth audit

Process

Before publishing this site I went back through release artifacts, Apple's own upload logs, code-signing output and live HTTP checks, and compared what I found against what the site said about each product.

Finding. Three of four product statuses were wrong — including one that undersold. The site claimed no You Know Ball build had ever been uploaded; Apple's logs name two it had already accepted. Every status here now carries a verification date and a source, enforced by tests.

Headless UI puppet

Automation

A way to drive the iOS app through its real interface and capture the results without a human at the machine — built because demo footage kept needing me to be physically present and awake.

Finding. It records a genuine run of the product rather than a mockup. It also taught me that a test runner attached to a simulator can generate very convincing fake engagement data, which is a good thing to know before you cite any number.

Start a project