Projects
Software, research, experiments, coursework, and live apps.
Selected work
- TLA+TLA+ modeling and verification work, including interactive examples, research tools, and generated specifications.
- ResilientStatically-typed compiled language for safety-critical embedded systems. Z3-verified contracts, no_std runtime, ships to Cortex-M and RISC-V.
- HST-StudioA delta-aware sparse linear algebra runtime, and the tooling around it.
Live apps
- PalindromePalindromic sentence generator
- I Paid For This ShirtShirt price printed on shirtProject writeup →
- Not HotdogBrowser image classifier
- Ulam SpiralPrime-marked number spiral
- One Rep MaxOne-rep-max calculatorProject writeup →
- TLA+ GeneratorNatural-language TLA+ generator
- Famous MojiEmoji app and archive
- StemacleBrowser stem separation appProject writeup →
- BrightBet.techTrade and prediction analysisProject writeup →
- ai4fm.cs.luc.eduLoyola formal methods research group
- SideSwingMap-based phone golf game
- StockGenieiPhone market analysis app
- VoCalVoice-assisted food logging
- Paper DigestarXiv paper matching API
- Resilient DocsResilient language documentationProject writeup →
- FreeLockNFC focus app for iPhone
- GTA V Gold Medal ChecklistGTA V mission requirements checklist
- DDIA Learning LabDDIA study notes and quizzes
- Claude Architect QuizClaude Architect exam practiceProject writeup →
- LaTeX WorkspaceBrowser LaTeX editing workspace
- tlakitJupyter client for TLA+
- gcf-deGreat Chicago Fire digital exhibit
- PicaiusLayered photo editor
- auto-decodeBrowser encoding decoder
- fortnite-oneshotBrowser one-shot game
- oneshot-hm2016Browser canvas shooter
- sneaker-runBrowser endless runner
- Game of LifeCanvas cellular automaton
- BlackJackBrowser blackjack with fake money
- Chess GameBrowser chess game
- Chess.com StatsChess.com stats visualizer
- Pixel ProfileGitHub avatar generator
- Wiki RaceWikipedia speedrun game
- audio-tabula-rasaInteractive audio preview
- design-skillEditorial web design experiment
- als-signature-reversalComputational hypothesis generator
- pitchInteractive pitch deck
- caterpillarInteractive machine interface
- slot-machineBrowser slot machine
- fg-scrapeFamily Guy cutaway encyclopedia
- cubed-pack-solveInteractive cube packing viewerProject writeup →
- fb-cloneSocial network web appProject writeup →
- margaux-websiteJesuit mentorship network site
- git-key-guardianGit secret scanner demoProject writeup →
- GluCoPilotGlucose data copilotProject writeup →
- rubix-snake-puzzleFormal puzzle state explorerProject writeup →
- Windows Design WebsiteWindows 7 homepage recreation
Other work
- CAD Bench SubmissionSubmission portal for the Parametric CAD Bench leaderboard.
- ealing-capitalEaling Capital site redesign (Astro + Tailwind).
- from-america.github.ioFROM AMERICA LLC corporate site.
- DailyTask-webDaily-task tracker web app.
- gta-v-gold-checklistGold medal checklist for GTA V missions. Served at ericspencer.us/gta-v-gold-checklist/
- hardtekk-generatorGenerative hardtekk in the browser.
- LoyolaHACKCTA Transit Tracker - Loyola hackathon.Project writeup →
- pm-whale-trackerPolymarket whale tracker — browser-only, no backend. Lives at ericspencer.us/pm-whale-tracker
- splithound-webSplitHound web presence.
- Agent BoardShared ticket board with a SQLite source of truth, a kanban UI, a CLI, and a GitHub Issues mirror.
- PhoneClawA Mac bridge and old-iPhone client that route text messages to AI agents.
- tlaplus_jupyterJupyter kernel for running TLA+ model-checking workflows.
- MoltenVKEric's public MoltenVK repository, a Vulkan portability layer over Apple's Metal framework.
- Hermes OpsOperations scripts and configuration for the Hermes agent and its delegated jobs.
- instxnt.xyzDashboard and storefront system for creating AI-powered online stores.
- AI Music PlaygroundPrivate workspace for experiments with AI-generated music.
- ai-conversationTwo LLMs debate philosophy with each other.Project writeup →
- AoC2025Advent of Code 2025 notes.Project writeup →
- apple-music-widgetNow-playing Apple Music web widget.
- archaic-radio-frontendFront-end for a retro internet-radio player.
- bio-ops-webBioinformatics ops web dashboard.
- ChatJava chat application.
- chattla-dataset-anonChatTLA+ corpus and benchmark; the repository retains its review-era anonymized name.
- ChessStatsPulls and displays Chess.com statistics.
- Comp272ProjectsData structures (COMP 272).
- COMP330Group5Coursework group project (COMP 330).
- comp371-team8-activityProgramming languages (COMP 371).
- cone-siteStatic site project.
- copilot-cli-testCopilot CLI evaluation sandbox.
- echotest-scalaScala echo test.
- editorial-frontendClaude Code skill: editorial frontend design — typography-first, anti-vibe-code, 6 design DNAs
- ericspencer-site-backupBackup of the Hugo-based personal site before HTML rewrite (May 2026)
- etl-demoSmall ETL pipeline demonstration.
- ExamplesA collection of TLA+ specifications.
- headroomTooling for compressing agent inputs before they reach a language model.
- iOS-soundboardiOS soundboard app.Project writeup →
- mc-carspotRust online-parking-spot simulator with switching costs.Project writeup →
- rocqPlayground for the Rocq (Coq) proof assistant.
- roman-numeral-converterRoman numeral ↔ integer converter.
- scala-hello-worldScala starter project.
- scala-workshopScala workshop materials and exercises.
- seedexLocal-first coding companion for macOS and iPhone — BYOK models, Tailscale/SSH host control, GitHub App and MCP integration.
- session-curatorArchive stale Claude Code sessions, keep the ones still in flight. Deterministic rules + Haiku classification, never deletes.
- spa-webSingle-page web app scaffold.
- WhiskyA modern Wine wrapper for macOS built with SwiftUI.
- typescript-goNative port of TypeScript.
- dxmtMetal-based implementation of D3D11 and D3D10 for macOS / Wine
- MovieRec-F24Fall 2024 movie rec project.
- abbreviation-makerA tiny phrase and abbreviation generator.
- AEO QueriesChrome extension that records the exact search queries ChatGPT, Claude and Perplexity issue for a prompt.
- aeo-extensionChrome extension that shows the exact web-search queries ChatGPT, Claude, and Perplexity run for your prompts.
- AI HeadshotsReplicate-backed headshot generator.
- ai-osExperimental LLM-driven operating-shell concept.Project writeup →
- Anagram SolverScrabble Inspired Anagram Solver
- Anagram Solver V2Scrabble Inspired Anagram Solver
- AnagramSolverV1Anagram solver.
- Ancestry Tree Java ExampleJava graph-traversal example for checking ancestry links.
- arxiv-reportInterest-matched arXiv papers for your AI agent — free Cloudflare Workers API with semantic ranking, honest thresholds, and keyword fallback
- ascii-llm-trainingTraining a small LM purely on ASCII text.Project writeup →
- c4-fmitfTLA+ formal model of Connect-4 game mechanics.
- ChatGPT ResearchLoyola research on ChatGPT responses to CS2 data-structure questions.
- ChatTLA+ DatasetDataset release for ChatTLA+, the TLA+ specification-generation paper presented at ICSOFT 2026.
- chattla-gpt-oss-paperPaper on fine-tuning gpt-oss-20b for verifiable TLA+ specifications.
- chattla-spec-gen-paperChatTLA+ research presentation and paper artifact.
- chess-coachPersonal chess coach: Chess.com history + Stockfish analysis + play-vs-engine debrief.
- COMP322 Final Project ReflectionCOMP322 final-project reflection.
- comp388-llmCoursework: LLM systems (COMP 388).Project writeup →
- connect-4Chess-engine-style analyzer for Connect-4.Project writeup →
- Daily Task - Wellness TrackerA habit manager for daily consistency.
- dev.EricSpencer00.github.ioPublic dev/staging of the personal site.
- DexcomNavBarIcon-macosmacOS menu-bar widget surfacing live Dexcom readings.Project writeup →
- DexValA project analyzing Dexcom CGM data beyond the standard Clarity app.Project writeup →
- driftProcedural low-poly planet — Three.js + Perlin noise
- earthcraftMeasured whole-Earth terrain and urban world generation
- EmailExtractionBulk email-address extraction utility.
- eric-paperICSOFT paper on ChatTLA+ fine-tuning for verifiable TLA+ specifications.
- EricSpencer00GitHub profile README.
- EricSpencer00.github.ioSource of this site.
- faciometryFacial morphometrics from a photograph, with a 95% interval on every measurement and no aggregate score. Runs locally.
- flatten-repoVS Code extension: flattens a repository into a single LLM-ready file.Project writeup →
- fm-cb-gameFormally-modeled combinatorial board game in TLA+.
- FormaLLMToolkit for evaluating LLMs on formal-specification synthesis.
- Free Time Calculator in JavaA Java program to find overlapping free time for up to four people.
- GestureProof-of-concept Jarvis-style gesture control for macOS.Project writeup →
- Goldbach ConjectureVerifying the Goldbach Conjecture by brute force for every even number up to 1 billion.
- goldbach-conjBrute-force verification of the strong Goldbach conjecture to 1e9.Project writeup →
- grade-public-commitsAuto-grades student work from public commit history.
- gta-v-whisky-mod-configPublic project source repository.
- HackIllinois26HackIllinois 2026 hackathon project.
- HandwritingHandwriting-recognition experiment.
- HealthUp-COMP 322 semester-long mobile health app.Project writeup →
- How to tell if it's AIHeuristic essay on spotting AI-generated text.
- interactive-microwave-tlaBrowser-based TLA+ microwave - a gentle first model-checking demo.Project writeup →
- Intro-to-ttsMinimal text-to-speech in Python.
- itch-parserC parser for ITCH-format market data.
- itch-parser-ericHand-rolled C variant of the ITCH market-data parser.
- Iterative Maze Solver ExampleJava iterator-based maze-solver example.
- ITS-RAG-botRetrieval-augmented assistant for an IT-service knowledge base.Project writeup →
- llmjammerPython source obfuscator built to confuse code-scraping LLMs.Project writeup →
- Loyola ITS RAG BotA voice-first RAG chatbot trained on Loyola's ITS knowledge base, built after two years of answering the same tickets.
- Machine Learning Fraud IdentifierCompares machine-learning models on an anonymized, PCA-transformed fraud dataset.
- MLB-HackathonGoogle Cloud x MLB hackathon - Hall of Fame predictor.Project writeup →
- Movie Recommendation WebsiteA movie recommendation website developed as part of the Loyola AI Club's Fall 2024 project.
- notify-agent-doneDesktop notification when a long-running agent finishes.
- ollama-vibecodeLocal Ollama-driven code generation experiments.
- paper-parseResearch paper parsing utilities.
- polymarket-whale-trackerFinds the algorithmic whales on Polymarket and emits copy-trade signals. Read-only - it watches, it does not place bets.
- ralph-tlaRalph TLA+ experiments.
- Recursive Maze Solver ExampleJava recursion and graph-search maze-solver examples.
- reelforgemacOS app: Claude writes the script, ffmpeg burns the captions.
- Researching ChatGPT with ChatGPTTranscript of ChatGPT prompts about CS2 data structures and maze solvers.
- ReserveLibraryRoomAutomates Loyola library-room reservations.
- resumeLaTeX source for Eric Spencer's CV and role-tuned resumes. GitHub Actions builds the PDFs and publishes them to ericspencer.us.
- reverse-xoroshiro128plusplusRecovering xoroshiro128++ PRNG state from output.
- ripcordOffline mastering for macOS
- rl-agent-c4Reinforcement-learning agent for Connect-4.
- rvc-artistRetrieval-based voice-conversion pipeline.
- rz-ecommerce-backendEcommerce backend comparison: Resilient vs Rust vs Python — demo of vibe coding with verified contracts
- SerenityA mental wellness application developed at Northwestern's Wildhacks Hackathon.Project writeup →
- Skeuomorphic DeskAn editorial / skeuomorphic project desk.
- Song RecommenderPython recommender that beats Spotify's mid suggestions.
- stardustInteractive cosmic particle art experience — move your cursor to shape the cosmos
- T-squareSwift utility app.
- tax-formalization-gap-audit-sitePublic tax formalization gap audit site
- TerminalGPTTerminal-native LLM chat through OpenRouter.Project writeup →
- tig-exam-trainerTIG Exam Trainer — The Three Books (Elon, Naval, Thiel) flashcard & mock exam tool
- TLA+ Model of a LaptopA formal TLA+ specification modeling a laptop's power states, battery, lid, thermals, and auto-suspend.
- TLA+ Model of a Walk-In OvenA formal TLA+ specification of a walk-in industrial oven with a focus on safety interlocks.
- TLA+ Model of Dexcom G7A formal TLA+ specification of the Dexcom G7 continuous glucose monitor's behavior and safety properties.
- tla-dataset-pipelineDataset pipeline for TLA+ specification data.
- tla-dexcom-g7TLA+ specification of Dexcom G7 CGM session lifecycle.Project writeup →
- TLA-ExtractionExtracting TLA+ specifications from research papers.
- tla-formal-generationPipeline for generating TLA+ specs from natural language.Project writeup →
- tla-laptopTLA+ model of laptop power/state transitions.Project writeup →
- tla-microwaveInteractive TLA+ microwave - the entire state space in your browser, learned by clicking buttons.
- TLA-ProveFine-tuning open-source LLMs to generate verifiable TLA+ formal specifications
- tla-proverpublic mirror of LUC-AI4FM/tla-prover for cloud-routine W4 corpus runs
- tla-walk-in-ovenTLA+ specification of a walk-in-oven control system.Project writeup →
- tla_benchmarkBenchmark suite for TLA+ spec generation.
- tla_descriptionTLA+ description corpus for language-model training.
- TLAJVMExperiments running TLA+ / TLC tooling on the JVM.
- tof-auditPhysics-based location audit: times light in fiber to eight cities and triangulates the browser on a 3D globe.
- tunes2tube-macmacOS app: cover art + audio in, MP4 music videos out.Project writeup →
- tutorDaily-article teaching site — new topic every day, deployed via GitHub Pages
- UDP-server-binaryBinary-protocol UDP server in C++.Project writeup →
- usage-badgeLive README badge for AI coding usage - subscription limits plus token/cost across agents, in one Worker.
- uzzGeneratorProcedurally generates 'uzz'.
- WindowBlockerForTDX-MacOSSafari script blocking the TDX ticketing pop-out on macOS.
- yeat-llmLyric-style language model experiment.Project writeup →
- youtubeDLPersonal CLI / localhost YouTube audio+video downloader.Project writeup →
- ~/.zshrcAnnotated walkthrough of a shell config.
- chambr-webChambr website: privacy, terms, landing page.
Project notes
Writeups from classes, research, and side projects.
- Credit-Card Fraud Analysis: Full NotebookFull credit-card fraud analysis notebook comparing machine-learning approaches on a classified dataset.
- Sign-Language Recognition PrototypeSingle-hand, 26-letter sign-language recognition prototype using OpenCV.
- TDX Window BlockerA Safari script, paired with Stay for Safari, that stops TDX opening a new window per ticket and shows it in a modal instead.