Skip to content
Home/Projects

AI projects & other dangerous ideas

Everything here is hosted, and none of it phones home.

Static pages on GitHub Pages, models on my own metal, data in your browser unless you tell it otherwise. Statuses below are honest rather than flattering — “in development” means exactly that. A portfolio of applied work: single-file applications, WebAssembly emulation and a self-hosted model interface. Each entry states its current maturity plainly.

In the workshop

Half-built, deliberately unhidden.

These exist as sketches and stubbornness. Listed here so I can't pretend they're further along than they are.

Risk tooling Sketch

Exceedance curve explainer

An interactive page that teaches a board member to read a loss exceedance curve in four minutes, with the axes draggable so the shape stops being abstract.

Risk tooling Sketch

Scenario drafting copilot

Turn a plain-English worry — “our payroll vendor got ransomed” — into a bounded, cost-annotated scenario ready to drop into a model.

Household Sketch

The family gate

The auth wall that turns SorkGPT from “a page on the internet” into “the thing only my family can open”. First on the list, last to be finished — as always.

House rules

How this lot is put together.

  • Static first. Pages on GitHub Pages. If a project needs a server, that's a decision I have to defend.
  • Your data stays put. Local-first storage — IndexedDB or a file you own. Nothing leaves the browser unless you point it at something.
  • Models on my hardware. Self-hosted by default. Someone else's pricing page shouldn't be a dependency.
  • Big binaries included. The 56 MB emulator core ships with the site instead of from a separate repo: a first visit pulls a real arcade emulator, every visit after that is cache. That is the price of it working everywhere, and it is worth paying.

Under the hood

HTML · CSS · vanilla JS
no framework · no bundler
Emscripten 6.0.10 · MAME 0.277
IndexedDB · File System Access API
OpenAI-compatible chat wire
deployed by git push

Site source ↗
D&D Item Ledger — full manual ↗
Rolling Thunder — build notes ↗

The site ships in the time it takes to type a commit message. That is either liberating or a warning, depending on the commit.

A good deal of the typing here was done by a model I supervise. The architecture, the opinions and the blame are mine alone.

Built with assistance from large language models. Architecture, review and accountability are human.

[i]
Want one of these built for your problem? That's a normal thing to ask for. The arcade cabinet, less so.