Andrew Edmark / Oopis McGoopis LLC

WHAT IS OOPISMCGOOPIS?

Software, games, and instruments for thinking. Built with whimsy and transparency.

Hi, I'm Andrew Edmark. OopisMcGoopis is where I put the things I make. I’m a writer, photographer, director, actor, and as of late, a vibe-coder. I don’t fit neatly into a box, and I believe whimsy is crucial to life.

When everyone started arguing about whether AI is conscious, I realized the debate was missing the point. The theater of it all is already here. Instead of using LLMs to churn out cookie-cutter SaaS clones, I treat them as rigorous creative collaborators: building browser-based cabinet synthesizers running seven esoteric programming languages, procedural horror engines that generate their own textures from scratch, and local AI harnesses with simulated stress and biology.

I mostly design with Python and vanilla JavaScript because I find no build steps or chunky dependency trees to be delightful. Recently we have been exploring reverse engineering and expanding into C and C-like code (like Zig!).

01

How I work

Honest limits

Every README has a section that says what the thing does not do. BoneAmanita's says, in its own words, that it is a prompt builder wearing physics names, and ships audit scripts so you can check.

No build step if I can help it

The Whimsy Machine, plainchant (along with Plainchant Web and Scribe), the Trauma Response Simulator, Level 0 and the Hypervisor all run from static files. Fewer moving parts means fewer places for a silent failure to hide.

Metaphor as an interface

ATP, cortisol, the Village, a coping mechanism, a blast door. Names that tell you what a number is for, backed by measurement of what it actually does.

02

Selected work

Browser Cabinet Synthesizer · Web Audio · Esoteric VMs

The Whimsy Machine

A zero-dependency browser synthesizer that turns a confided thought into music using seven esoteric programming languages.

Esoteric programming languages like LOLCODE, Brainfuck, Malbolge, and Befunge are usually created as brilliant, functional jokes. I thought: why not riff on that joke and make something genuinely musical with them?

Feed it a phrase. Custom in-browser virtual machines execute code in LOLCODE 1.2 (the score), Malbolge (percussion), Brainfuck (bass), and Befunge-93 (chords), rendering the entire generative ensemble in real-time through Web Audio and 2D Canvas. No external libraries, no build step, and not a single byte sent off-device.

  • Built-in parlor console. Features auto-chord accompaniment (Swell, Arpeggio, Progression), an eight-channel mixer with analog VU metering, and a loop overdub recorder.
  • Esoteric multi-VM runtime. Client-side interpreters for 7 esoteric languages coordinating percussion, basslines, torus chords, and formant choirs.
  • Visual specimen vitrine & studio exports. Real-time 2D Canvas creature rendering with tactile disturbance, plus loop-perfect WAV encoders and Type 1 Standard MIDI File export.
  • LOLCODE 1.2
  • Web Audio API
  • Canvas 2D
  • Esoteric VMs (Malbolge, Brainfuck, Befunge, Piet)
  • Vanilla JS

Game Preservation · C++20 · Raylib / Linux

Noctis IV OM

Bringing a beloved 2000 cult space-exploration sim into native C++20 so it can actually run on modern hardware without losing its soul.

Noctis IV is a cult masterpiece that nerds still talk about: a completely deterministic procedural galaxy with seamless interplanetary flight and surface exploration. But it is notoriously difficult to run on modern systems.

Someone had started porting it, and having learned so much wrestling with retro Sierra bytecodes, I asked myself the classic two questions: "Why wouldn't I do this?" and "Can I do this?" OM reunites the split branches of Noctis IV Plus and LR, replacing DOS-era assembly traps with clean C++20, Raylib, and 38 deterministic regression tests.

  • Native modern engine. Modern C++20 architecture replacing fragile 1990s binary workflows while preserving legacy player saves.
  • Preservation with evidence. Exact compatibility fixtures covering galaxy and system generation, flight physics, surface landings, and the GOESnet database.
  • Verified build lanes. The complete 38-test suite agrees across Clang, GCC, and Clang with ASan and UBSan sanitizers.
  • C++20
  • CMake / CTest
  • Raylib
  • Deterministic fixtures
  • ASan / UBSan

Procedural Liminal Engine · JavaScript · WebGL

Level 0 Engine

An eerie, retro-foreign exploration of mathematical recursiveness and creative determinism that runs entirely in the browser without any external assets.

It has the bones and atmosphere of a backrooms horror experience, but it’s not really a traditional game. It’s not not a game, either. It’s an exercise in creative determinism.

The maze is carved from Julia-set fractals across eleven sealed sectors. There are zero image files and zero audio files shipped with the code: every wall texture is synthesized at load time, and all ambient audio, footsteps, and fog hum are generated live via Web Audio DSP with raycast wall occlusion.

  • Zero external assets. 100% procedurally generated textures, lighting, and DSP audio generated entirely client-side.
  • Performant browser architecture. O(1) spatial-hash collision, zero-allocation scratch vectors for rock-solid frame rates, and parallel shader compilation.
  • Seeded procedural narrative. Cross-sector cold cases and an in-browser Lore Editor for authoring narrative payloads.
  • Three.js r160
  • Web Audio API
  • ES modules
  • IndexedDB
  • Procedural generation

Cognitive Prompt Harness · Multi-Archetype Governance

The Hypervisor

The theater of AI collaboration manifest: a raw-text prompt harness that turns LLM sessions into an active creative writers' room and forensic dev council.

When you treat a language model like an obedient servant, you get flat, predictable output. When you invite it to play along with a structured metaphor, you unlock deeper, truer answers.

The Hypervisor gives cloud LLMs a simulated battery, exhaustion mechanics, and specialized internal voices that argue over approaches before answering. Specialist "Mod Chips," like the SLASH dev council or the Eloise & Clarence editing duo, provide instant domain governance without enterprise software bloat.

  • Zero dependencies. Operates in pure raw markdown; works inside system prompts across Claude, ChatGPT, or Gemini.
  • Dynamic archetypes. Includes the SLASH dev council for forensic code reviews and Eloise & Clarence for surgical prose editing.
  • Context and fatigue mechanics. Built-in exhaustion and context-shedding guardrails to prevent sycophancy and endless rambling.
  • Markdown
  • System Prompts
  • Multi-Agent Heuristics
  • Claude / ChatGPT / Gemini

Writing Tool · Vanilla JS · Offline-First

plainchant

Screenwriting without the paywalls or formatting headache. You type plain Fountain text; the app handles the rest.

Most modern screenwriting software has turned into expensive, bloated SaaS subscriptions that get between the writer and the page. On top of that, industry screenplay formatting is tedious and breaks creative flow.

plainchant is a distraction-free, two-pane editor built to remove that burden. You write in simple Fountain markup, and it live-renders industry-standard screenplay formatting with autocompletion and a 30-day recovery bin. No framework, no build step, and runs entirely client-side.

  • Fountain plain-text workflow. Open markup with live screenplay preview that collapses to a single pane on mobile.
  • Zero build steps. Pure vanilla JavaScript and modular parser loading in dependency order with zero external runtime dependencies.
  • Designed for preservation. Thirty-day recovery bin, local storage, and export to Fountain, PDF-ready HTML, and Markdown.
  • Fountain
  • HTML / CSS / JS
  • Container queries
  • Offline-first

WYSIWYG Studio · HTML5 / CSS / JS · Spinoff of Plainchant

Plainchant Web

A lightweight, Dreamweaver-inspired visual HTML5, CSS, and JavaScript studio where your source code is always the single source of truth.

Spun off from Plainchant's zero-dependency, non-destructive philosophy, Plainchant Web bridges code and visual design without rewriting markup. Every visual interaction on the Stage splices only the exact byte range in your underlying source files.

  • Non-destructive byte-range splicing. Visual stage manipulations edit code in place without scrambling formatting, reordering tags, or touching unedited lines.
  • Live code, split, and design stages. Direct WYSIWYG caret editing, live box-model telemetry overlays, interactive flex and grid track handles, and real-time JS sandbox execution.
  • Dockable inspector & CSS Designer. Computed style introspection, responsive breakpoint scoping (@media), pseudo-state preview (:hover, :focus), and asset management.
  • Built-in diagnostics & zero-build desktop app. Problems tab auditing broken links and WCAG accessibility issues; runs client-side in any browser or as a native desktop application via Tauri v2.
  • HTML5 / CSS3 / ES Modules
  • WYSIWYG Studio
  • Byte-range Splicing
  • Tauri v2 (Rust)
  • Accessibility Audits
  • Offline-first

EPUB Studio · Book Layout · Spinoff of Plainchant Web

Plainchant Scribe

An author-first EPUB studio that turns round-trip HTML/CSS editing into an e-book workspace without a build pipeline rewriting your files.

Spun off from Plainchant Web, Scribe treats an EPUB publication as an ordinary, uncompiled folder of .xhtml, .css, and content.opf files. Every change on the visual Reading Stage splices only the exact characters it touches, preserving clean markup and hand-crafted CSS rules while exporting directly to valid EPUB 3.3 packages.

  • Reflowable reading stage. Paged and scrolled layouts with light, sepia, e-ink, and dark presets, plus responsive preview frames for phone, e-reader, and tablet viewports.
  • Semantic structure management. Visual and code-level editing of book metadata, cover art, reading spine order, and automated navigation/table of contents generation (toc.ncx / EPUB 3 navigation doc).
  • Plain-CSS layout presets. Production-ready book typography, chapter openers, scene break ornaments, footnote styling, and embedded font management with zero CSS framework baggage.
  • EPUB 3.3 verification & export. Import existing .epub archives or Markdown files; export strict EPUB 3.3 bundles validated against built-in rules, commercial store checklists, and EPUBCheck.
  • EPUB 3.3
  • XHTML / CSS
  • Non-destructive Splicing
  • Book Design
  • Tauri v2 (Rust)
  • Offline-first

Experimental In-Browser OS · Python in WebAssembly

FractalOS

An experimental in-browser operating system powered by a Python kernel running in WebAssembly, slowly evolving into dystopian sci fi RPG-inspired a private mesh experiment.

FractalOS was my very first vibe-coding experiment. I wanted to recreate the green-phosphor retro terminal experience from Fallout in the browser and asked, "Because I can, why not?"

It grew into a full operating system: a real Python kernel executed client-side via Pyodide and WebAssembly, communicating with a JavaScript windowing system through a JSON Effect Contract. Today, I see huge potential in it as a lightweight, unhackable local mesh network interface for communities and private collaboration.

  • Python in the browser. Real Python virtual file system, permissions, and command execution powered by Pyodide and WebAssembly.
  • Modular windowing & terminal. Custom terminal emulator with audio effects (Tone.js), text editor, and paint program.
  • Desktop packaging. Runs seamlessly in any modern web browser or as a standalone desktop app via Neutralinojs.
  • Python / Pyodide
  • WebAssembly
  • JavaScript
  • Neutralinojs
  • Tone.js

Documentation Tooling · Python · Static HTML

3x Documentation Scheme

A schema-driven documentation engine that forces every technical subject to answer three simple questions: what it does, how it works, and why.

Documentation usually suffers from two failure modes: either it's an abandoned pile of stale markdown, or it's enterprise software that nobody wants to touch.

The 3x Scheme stores project documentation in a single, reviewable JSON source validated against a schema. A zero-dependency Python script compiles it into a searchable, standalone HTML page. It enforces What / How / Why triads, ensuring that human contributors and AI coding agents never leave an architectural decision unexplained.

  • Schema-driven contract. Strict JSON Schema defining What / How / Why triads, evidence anchors, and concept relationships.
  • Zero runtime dependencies. Renders into a single portable, searchable, responsive HTML file with print styles included.
  • Automated gap validation. Rejects missing triads, duplicate anchors, and weak evidence markers at build time.
  • Python
  • JSON Schema
  • Static HTML
  • Zero Dependencies

Agent Infrastructure · Repository Memory Protocol

The Manifold

The cure for the "goldfish agent": a self-verifying repository protocol that makes the repo the durable source of truth.

Your coding agent is a goldfish: the moment a chat window closes, all architectural context vanishes. Pumping thousands of tokens into prompt windows only leads to drift and hallucinations.

The Manifold offloads project memory to structured, reproducible repository files (AGENTS.md, ROADMAP.md, DECISIONS.md, HANDOFF.md). The agent never has to guess what happened last session; it just reads the repo. Standard-library Python validation tools enforce internal link integrity and prevent stale handoffs before code ever merges.

  • Durable agent memory. Preserves project truth, architectural rationale, and active roadmaps across short AI sessions.
  • Single canonical protocol. Unified AGENTS.md instruction standard preventing tool-specific instruction drift.
  • Self-checking handoffs. Built-in Python checker (check_docs.py) validates link integrity and enforces documentation boundaries.
  • Markdown
  • Python
  • Agent Protocols
  • Zero Dependencies

Psychological Narrative Game · Web & 1988 Sierra SCI0

Trauma Response Simulator

A turn-based game about emotional coping mechanisms, disguised as a retro therapy terminal that has also been ported to Sierra's 1988 SCI0 floppy engine just to see if it could be done.

King's Quest VI was the first PC game I ever played, and Sierra titles shaped my childhood. Years later, after creating TRS as a web-based therapy game exploring how we respond under stress (fight, flight, freeze, fawn), I looked at Sierra's 1988 SCI0 adventure engine and asked the ultimate builder question: "Can this be ported backwards thirty-five years in hardware?"

It could. The SCI Edition is a genuine, compilable SCI0 game featuring cross-session persistence, MIDI audio, and authentic 16-color EGA visuals.

  • Dual platform releases. Runs as a zero-dependency local browser web app or an authentic 1988 Sierra SCI0 DOS executable.
  • 196 SCI Engine rooms. Pushes Sierra's classic interpreter to its absolute limits with cross-session persistence and MIDI audio.
  • Seeded reflection runs. Seeded challenges, 102 ending variations, and a companion journaling tool for reflection.
  • HTML / JS
  • Sierra SCI0 Script
  • Node.js Codegen
  • Seeded RNG
  • EGA / AdLib

Reverse Engineering · Sierra SCI 1.1 · Python / DOSBox

The Dagger of Amon Ra: Redux

Rebuilding all 221 scripts of Sierra's 1992 DOS murder mystery to eliminate 30 years of softlocks, save-corruption bugs, and pixel hunts.

The Dagger of Amon Ra (Laura Bow II) is a beloved 1992 Sierra murder mystery that people still talk about today. Speedrunner and YouTuber OneShortEye published a brilliant three-hour video breaking down exactly why the game softlocks and how its engine broke. I watched it and thought: "Why wouldn't I fix this?"

Using Sluicebox decompilation and a custom fork of SCI Companion running under Wine on Linux, Redux reconstructed all 221 bytecode scripts. It fixes game-breaking save corruptions, revamps the tedious notebook interrogation system, and ships as 100% legal loose file overrides that drop straight onto retail DOS floppy or CD copies.

  • Complete script reconstruction. Rebuilt 221 scripts from compiled bytecode, resolving 30-year-old softlocks, save-corruption bugs, and progression traps.
  • Interrogation & notebook UX overhaul. Streamlined Laura's notebook penalty into a direct-tab interface with double-click submission and dynamic topic tracking.
  • Clean legal distribution. Modular loose-file override delivery with zero copyrighted assets redistributed.
  • Sierra SCI 1.1
  • Python
  • DOSBox-X
  • Reverse Engineering
  • Wine
03

Also on GitHub

  • ALPREvaderA privacy-first routing engine on local OpenStreetMap data and PostGIS that plans paths around automated license plate readers.
  • Chidi.mdAn LLM-enabled Markdown analyzer with chat and memory.

All repositories →

05

About

I'm Andrew Edmark. I run Oopis McGoopis LLC, a one-person studio for software that is a little stranger than it needs to be and more honest than it has to be.

The projects above share a question: what happens when you give a system a body, a budget, and a way to say no? BoneAmanita asks it of a language model. Level 0 asks it of a building. The Trauma Response Simulator asks it of a person, twice, thirty-five years apart in hardware.

I'm based in the Quad Cities, on the Illinois side of the Mississippi. By day, I implement inventory solutions for industrial customers, the rest of the time I consult on and build systems with large language models. Before software there was a cinema and English degree, a decade of video work, and a stint booking bands for an Iowa City venue, which is probably why the projects above have interesting plots.

I write as Mycelial Mirror on Medium and publish games on itch.io. If you want to talk about any of this, or about working together, the details are on the right.