Hall of Shame

Projects that didn't make it. Some got absorbed into something better. Some were early. Some I just didn't know why I was building. The parts are real - Frankenstein could still do something with them. For now, here they lie.

Guardian absorbed
ElectronReactNode.jsSQLiteZustand

Desktop Electron application. Reframe detection across 7 types. Awareness-trap detection - finding what you keep circling back to without resolving. Local Ollama inference. Constitutional memory with 4-level compression. The whole stack.

The engine was the product. Guardian was ForgeFrame with a desktop shell on top. When the memory layer got extracted into standalone infrastructure, the shell had nothing left to justify. The reframe detection logic, the awareness-trap patterns, the constitutional tagging - all of it lives in ForgeFrame now. Guardian was the research environment. ForgeFrame is what it found.

The essay. Guardian is where 'On Observation and Identity Modeling' came from. The dependency chain is real: reframe detection needs a user baseline, the baseline needs memory, memory needs local persistence. That chain is why ForgeFrame exists. The name 'Guardian temperature' still lives inside ForgeFrame as a seven-signal composite metric.

lesson Knowing when a product is really a configuration is a useful distinction.
Recursive Hall absorbed
Three.jsWebGLGLSLWeb Audio APIVanilla JS

Seeded procedural architecture rendered as wireframe ink drawings. One HTML file, zero build tools. The same seed always produces the same hall. Then it grew: audio reactivity, shader modes, a Strudel REPL, a synth pad, a DJ mixer, a TouchDesigner bridge. A Saturday night that kept going for several months.

I didn't know why I was building it. That's the honest answer. It was beautiful and it made the computer loud and I kept going because the next thing seemed possible. No user, no purpose, no point - just the pull of the next shader pass. It got too choppy, too slow, too big to think about. The fans became the vibe. Eventually I stopped.

StrudelVision absorbed the visual modes and the audio analysis pipeline. The infinite hall mode lives there now. The thermal shader - the one that responds to heat, that sense of a system running warm - became the aesthetic for the ForgeFrame Cockpit's Guardian temperature visualization. The WebGL fundamentals are permanent: bloom is math, grain is a hash function, vignette is a distance field. That substrate knowledge ended up shaping how this entire site thinks about rendering.

lesson Loving what you're building is necessary but not sufficient. I was genuinely optimistic this was going somewhere. It wasn't. Loved it. Don't miss it.
demo → write-up →
VaultQL early
PythonFlaskSQLCoder-34BOllamaSymitar Episys

LLM-powered query engine built for credit union core banking systems. The hard version of NL-to-SQL: Symitar Episys has cryptic abbreviated field names, denormalized record families, integer codes instead of enums, and 22+ record types that can't fit in a single prompt. Built a schema adapter that dynamically selected, annotated, and pruned schema context per query. RBAC enforcement, audit logging, air-gapped deployment. 32 pages of specs.

The infrastructure needed to support it properly didn't exist yet. The schema adapter, the context pruning, the de-identification pipeline - all of it was being built from scratch at a moment when the underlying models and tooling weren't stable enough to ship to a risk-averse regulated industry. The generic pieces got absorbed into ForgeFrame. The domain-specific layer had nowhere to land.

The de-identification pipeline made it into the ForgeFrame proxy. Token mapping, adversarial test suite, three-tier scrubbing - that work was real and got absorbed. The schema introspection approach for Episys is documented and still valid. Snowflake is now deploying NL-to-SQL at enterprise scale for large orgs - different distribution, same gap. The problem was real. The view from inside credit union operations was the edge nobody else had.

lesson Victim of what I knew how to build, not what I knew was missing. The gap was real. The timing wasn't.