I build data and AI platforms professionally. This site is where I can open up the workbench: show the broken version, explain the decision, and let you inspect the result. The arcade projects have the most room for that, so start there.
A few good places to start
Alan Is Gone. I'm Trying to Keep His Fighting Style Alive.
Could recorded matches preserve something of the way a friend played? I built a behavioral clone from a deceased Fightcade player's replays, then tried to give it sharper reactions without erasing his style. The unsuccessful training runs and later corrections are part of the story. The browser arena is a historical sandbox built from an older policy, not the current v10 candidate. The latest six-checkpoint result is diagnostic-only; schema12 remains non-training and no checkpoint is promoted as Alan-like.
Marvel vs Capcom Had No Room for a 24th Character. I Added Two.
The first approach borrowed another character's machinery. The better one moved Dark Sakura's own code into Marvel vs. Capcom and worked through the places where the two games disagreed. This is a good introduction to the lab: a visible goal, a wrong turn, and a port you can watch.
I Wanted Cable Without MvC2. So I Put Him in MvC1.
A newer game's character meets an older machine's constraints. The interesting
part is what survives the crossing—and what cannot be carried forward. The
playable v33 footage belongs to a retired Ryu-slot donor lineage. The current
native $32 branch is a structural-only v17 head with 0/52 gameplay lanes
closed, an incomplete source denominator, and no playable candidate. Read this
as a record of the failed donor route and the stricter rebuild, not as a current
release.
For the wider collection of ports, experiments, and hardware limits, use the CPS-2 project index.
Tools for keeping the lab honest
When a project spreads across repositories, yesterday's convincing write-up can hide today's failed build. My local MCP server answers bounded questions against pinned artifacts and blockers. It can retrieve evidence; it cannot run an emulator, patch a ROM, or publish a result.
The current registry has 117 synchronized facts. Its promoted import probe is diagnostic-only and refuses Cable's incompatible native-seat request. The September 17 receipt remains the historical failed-discovery record. The append-only September 18 static proof now covers 15/15 project roots, 20 workflow rows, and 48 explicit support gaps; full discovery is green at 361 passed / 8 skipped, all three existing control-ZIP hashes match, and the 21-tool MCP selftest passes. No emulator or ROM action occurred, so those results remain harness boundaries—not proof that a character port works. The earlier twelve-tool retrieval trial reduced one task's source material from 43,547 to 8,244 characters; token savings and end-to-end task quality still need paired trials.
A different failure was harder to see: the memorial bot's evaluation HUD decoded its inputs incorrectly, while a reactive layer prevented the policy from acting. That debugging pass is useful if you have ever spent a week improving a model before checking the instrument judging it.
Notes from platform work
The professional material here focuses on decisions another engineer can use. Examples are generalized, with illustrative names and payloads. Private operating metrics and customer workflows do not make those decisions clearer.
- Your Agent Has Every Tool. It Still Picks the Wrong One.: what changes when a tool catalog becomes too large to keep in every prompt.
- The Citation Is Real. The Answer Is Wrong.: a quote can exist and still fail to support the sentence citing it.
- Your New AI Model Looks Smarter. It Might Be a Downgrade.: the record needed to decide whether a replacement model should ship.
- Your AI Changed the Colors. Your Edits Disappeared.: keep a user's edit intact when the agent changes the chart again.
The AI Engineering Notes: Where the Demo Falls Apart connects those pieces. My résumé covers professional roles and responsibilities.