Every tool here was built without tech funding, without a lab, without institutional support. Every one emerged from material conditions that demanded it — teaching four classes without a TA, reading through cognitive overload, processing evaluations the institution wouldn't touch. I call these survival architectures: software whose features exist because the designer needed them to survive, not because they were specified for imagined users.

More Projects

EvalEye Python · Vision LLM · Mixed Methods Automated mixed-methods analysis for handwritten student evaluations.

Built because Cabrillo College was not systematically processing or analyzing student evaluations — the forms sat in boxes in departmental offices.

Uses a visual LLM to read handwritten responses — OCR couldn't handle the handwriting. Runs locally and FERPA-safe. Statistical analysis (descriptive stats, Mann-Whitney cross-section comparisons) runs alongside qualitative thematic coding. Generates full research-grade reports with visualizations. Takes a stack of paper forms and produces the analysis that the institution couldn't be bothered to do.

github.com/grouchyseafowl/EvalEye
RoboStripper Python · PDF · Accessibility Strips metadata from scholarly PDFs so screen readers can actually read them.

Strips repeating headers, footers, copyright stamps, download timestamps, and platform URLs from academic PDFs so RoboBraille and screen readers can read them aloud without breaking mid-sentence. I built it because I was excited about the accessibility potential — making scholarly reading available as audio for everyone, not just people who use screen readers because they're blind.

I shared it with my students because they were struggling with burnout too. Their intellectual capacity was degraded by living in a state of mass trauma — and audio access helped. Accessibility just makes things better for everyone.

The humor is baked into the UX. Two profiles — "cunty" and "normie" — where the normie mode is a parody of institutional bureaucracy: fake compliance IDs, fluorescent lighting requisition forms, and a disclaimer about your soul being stored in the void of despair.

github.com/grouchyseafowl/RoboStripper
readthrough Python · MLX Audio · Screenplay Screenplay table read engine with AI voices, one per character.

Parses Fountain-format screenplays, detects characters, and generates full audio table reads with distinct AI voices per character. Three voice modes: free-form voice design from text descriptions, preset speakers with emotion modifiers, or voice cloning from a reference clip. Runs locally on Apple Silicon via MLX.

Context-aware silence placement scales gaps based on speaker transitions, scene breaks, and dialogue type. Delivery parentheticals — (whispers), (drunkenly), (sarcastically) — get interpreted as TTS instructions. Per-scene checkpointing means a crashed render picks up where it left off. Built for my mother, who is making a TV series about María Sabina.

github.com/grouchyseafowl/readthrough
Podcast-Editor Python · Audio · NLP Audio cleanup suite with Whisper transcription and filler word detection.

LUFS normalization, Whisper-based transcription, NLP filler word detection with weighted dual-threshold clustering, and an interactive GUI editor. Built for a student podcasting project.

github.com/grouchyseafowl/Podcast-Editor
CGT Skill In Development · Qualitative Methods Constructivist grounded theory as a human-AI collaborative workflow.

A Claude Code skill implementing constructivist grounded theory — open coding, constant comparison, emergent categories, theoretical sensitivity — as a human-AI collaborative workflow. Categories emerge from the data, not from predetermined frameworks. The deeper drive came from the AI welfare research: applying Reframe's critical theory apparatus to Anthropic's AI welfare problem domain produced genuinely interesting results, and CGT is the next methodological layer for analyzing that data.

github.com/grouchyseafowl/cgt-skill