The work, in one place.
Local-first AI, family software, and the experiments that keep me curious. Explore 28 projects below, or go straight to 7 browser experiences. Live tools, recorded worlds, and work in progress are labeled as you browse.
Explore the work
Search by name, technology, or idea. Combine a status with projects you can try in your browser.
28 projects to explore
- In progress
Ten-Proof Frontier Studio
A proof-to-product R&D studio built around ten formalized results: one exact playable kernel, five exact bounded tutorials, and four bounded research sandboxes, each with explicit claim boundaries and graduation gates.
- Mathematical AI
- Formal Methods
- Research Tools
- Exact Arithmetic
- Live
SortLab
Try in browser
An interactive learning lab for 18 sorting algorithms that makes every comparison, write, and swap explainable. Learners can trace decisions step by step, predict what happens next, test hypotheses on different input shapes, and compare empirical operation growth.
- JavaScript
- Algorithms
- Visualization
- Accessibility
- Live
Baby's First AI
Try in browser
A co-play learning app for very young children: five short, talking games that turn classification, training, clustering, prediction, and listening into concrete play. After its first successful HTTPS load, the public child edition works offline and contains no accounts, camera, microphone, or API keys.
- React
- Early Learning
- Offline
- Accessibility
- Live
Twist
Try in browser
A cube tutorial with no solver in it. It teaches a 3×3 the way people actually learn one — beginner method first, then CFOP, Roux, or ZZ — on a live Three.js cube, with a trainer that weights drills toward the cases you keep missing. All 276 algorithms are held to a round-trip test: setup plus algorithm has to return a solved cube, which is what caught a published algorithm that silently could not solve its own case.
- React 19
- Three.js
- TypeScript
- Zustand
- Live
GolfRay
Try in browser · opens a separate site
A caddie you walk the course with rather than read about afterwards. It reads GPS to work out which hole you are on, gives front/centre/back yardages off the real green outline, and adjusts them for wind, temperature, and elevation so the number is what the shot actually plays. Club advice comes from your own logged carries as a P25–P75 range, not your best strike ever. The public release ships four Ohio courses imported from OpenStreetMap, makes no map-tile requests at all, and keeps rounds on the phone — no accounts, no backend.
- React 19
- PWA
- Leaflet
- OpenStreetMap
- Geospatial
- Live
Local Website Studio
A private, AI-assisted website pipeline for nearby independent businesses: 100+ researched opportunities, fact-gated starter concepts, a searchable internal studio, and review links that stay locked until a business concept passes every release check.
- Next.js 16
- AI-Assisted Design
- Local Business
- Security
- Open source
Tesla OSS Suite
Try in browser
Eight repos that distill ~85K words of research into a single dependency-ordered Tesla toolbox — AI Sentry triage, FSD-disengagement studio, per-VIN OTA diff bot, voice climate concierge, a Tessie replacement, and a delivery-day checklist. 6 of them are live on PyPI; 611 passing tests across the suite.
- Python
- FastAPI
- PyPI
- Home Assistant
- Live
GBC-AI
Sermon RAG for Grace Bible Church, running privately on my own hardware for church staff. Local-first: faster-whisper transcribes the videos, pyannote handles diarization, BGE embeddings land in ChromaDB, and LM Studio answers questions with timestamped citations. Ten phases shipped end-to-end; the source stays private.
- Python
- Streamlit
- FastAPI
- ChromaDB
- Whisper
- LM Studio
- Live
helpmetopray.org
A quiet place to pray, and to be prayed for. Anonymous-first: stays in localStorage until you sign in. Signed-in users post prayer requests strangers can carry for two minutes. Felt presence over feed-shaped engagement.
- Next.js 16
- React 19
- Tailwind v4
- Supabase
- Zustand
- In progress
Job-Shorts
A render pipeline that turns each chapter of the Book of Job into a 60-second vertical video for Shorts/TikTok/Reels. Script → visual breakdown → ComfyUI keyframes → LTX video → F5-TTS narration → Whisper captions → FFmpeg assemble. Routes LLM work through my Claude Code subscription so it costs $0 per render.
- Python
- ComfyUI
- LTX 2.3
- F5-TTS
- FFmpeg
- Claude Code
- In progress
YT-Ideainator
A local-first production system that turns curated subjects into narrated long-form YouTube videos and Shorts: ingest → local-LLM scripting → procedural rendering → audio and captions → QA → human review → optional scheduled upload, coordinated across a Mac and a Windows render host. A job fails loudly when any required source, inference, or final-media check is missing, and nothing publishes until a human freezes the exact video, thumbnail, and metadata package.
- Python
- Ollama
- faster-whisper
- Manim
- FFmpeg
Local prototype · write-up pending
- In progress
rsbot
A fully autonomous Old School RuneScape bot. YOLOv8 for visual perception, an LLM strategy layer for what to do next, a goal planner that pushes toward long-term targets (combat → 70, wealth → 1M GP, 200+ QP). 2,000+ source files, ~12 modules.
- Python
- YOLOv8
- OpenCV
- LM Studio
- Flask
- In progress
LTVRAG
Real-time voice intelligence stack — dual-channel audio (mic + system loopback) → Whisper STT → BGE-M3 embeddings → ChromaDB → LM Studio → Coqui XTTS, with SpeechBrain doing speaker identification and conversation segmentation. Runs in ~21 GB of VRAM on a 3090.
- Python
- Whisper
- ChromaDB
- Coqui XTTS
- SpeechBrain
Local prototype · write-up pending
- In progress
BetBrain
NFL & NBA prediction app with a three-tier hybrid model (Elo + XGBoost + market signal). Daily picks, ROI tracking, bankroll, line-movement alerts. React 19 frontend, FastAPI backend, local LLM for chat.
- React 19
- Vite
- FastAPI
- XGBoost
- PostgreSQL
Local prototype · write-up pending
- In progress
Tabular
An AI coding workbench for ICD-10-CM/PCS and HCPCS Level II, built for two certified medical coders on my home network. The inversion that matters: the official CMS code set lives locally and the model never recalls or invents a code. It interprets the language, ranks a shortlist the app retrieved itself, and every code is validated deterministically before it is shown. Misses reported by real coders become regression tests. Assistive only; the final code stays with the coder.
- Next.js 16
- TypeScript
- MiniSearch
- Claude API
- Healthcare
Local prototype · write-up pending
- In progress
NetSentry
A cross-platform network analyzer with a fully offline local dashboard: LAN device discovery, live connection and traffic monitoring, port and service scanning, anomaly alerts, and a force-directed topology map, all computed on-box from the OS’s own ARP, socket, route, and DNS state into SQLite. Passive observability rather than a firewall, and nothing leaves the machine unless you explicitly configure it to.
- Python
- FastAPI
- SQLite
- Networking
- Local-first
Local prototype · write-up pending
- In progress
Recall
A private, on-device memory engine for macOS: periodic screenshots, OCR on the Neural Engine through the Vision framework, full-text search across everything you have seen, and optional questions answered by an MLX model running locally. Image blobs are AES-GCM encrypted with a Touch ID-gated Keychain key, and the app has no network entitlements, so it cannot phone home even if it were compromised.
- Swift
- macOS
- MLX
- Vision
- CryptoKit
Local prototype · write-up pending
- In progress
RayFitnessPal
A MyFitnessPal that actually does what MyFitnessPal should: snap a meal photo and let Gemini name what’s on the plate, then back the macros from the free USDA FoodData Central + Nutritionix APIs. Barcode scanning, recipe builder, water tracking, offline IndexedDB mirror.
- Next.js 15
- React 19
- Supabase
- Gemini
- Dexie
- In progress
LexiGrow
Clinical-grade early language tracker for children 8–30 months, built on the MacArthur-Bates Communicative Development Inventories (MB-CDI). Flutter + Isar, COPPA/GDPR-aware, BLoC architecture. The MB-CDI vocabulary and gesture banks live in JSON; the app is feature-first.
- Flutter
- Dart
- Isar
- Material 3
- Firebase
- Live
ai-world
Try in browser
A persistent 3D village inhabited by autonomous AI agents with personalities, goals, semantic memory, relationships, and daily plans. The public replay lets you follow a deterministic recorded world, change cameras, and inspect its agents without exposing the live local LLM or backend.
- React
- Three.js
- Agents
- Replay
- Live
Generative World Museum
Try in browser
A curated archive of persistent autonomous agent worlds: the long-running Hollowbrook chronicle, plus a Glass Box view into a second world where the memories, cognition, and relationship changes behind each event stay inspectable next to the story itself. Replay-only by design — no live model runs behind the exhibits.
- Next.js
- Agent Memory
- Curation
- Replay
- In progress
Machine Manager
Android app I built for my dad’s construction company to track machines and trucks. Kotlin, Jetpack Compose, Room. Replaces the spreadsheet and a clipboard. Sometimes the most useful software is just the thing you needed anyway.
- Kotlin
- Compose
- Room
- Android
Construction equipment tracking app
- In progress
masim
A native Swift agent simulation. Same idea as ai-world but in SpriteKit, native-fast, single-window. Built to see how far I could push tiny autonomous agents without WebGL anywhere.
- Swift
- SpriteKit
- macOS
Local prototype · write-up pending
- In progress
jacecrm
Tiny CRM I built for my son Jace so he could track which companies he’d asked for swag, what stage each ask was in, and what the AI thought he should write next. Pipeline: Scouted → Drafted → Sent → Success/Rejected. He runs it himself.
- Next.js 16
- Firebase
- OpenAI
Local prototype · write-up pending
- In progress
SongSense
A small macOS menu-bar app that notices the song in an open YouTube Music tab, asks the locally authenticated Claude CLI for a short musical interpretation, and keeps the conversation in a local SQLite history. It reads browser tab metadata, not audio, so it is deliberately a desktop prototype rather than a recognition service.
- Python
- PySide6
- macOS
- Claude Code
Local prototype · write-up pending
- In progress
Wrangler Sale Watcher
A local price watcher for functional clothing, workwear, and hard-to-find sizes across retailer and deal sources. It deduplicates by SKU, keeps SQLite price history so two conflicting observations cannot manufacture a discount, flags genuine historical lows, and serves an interactive dashboard with portable HTML reports and toast or email alerts.
- Python
- FastAPI
- SQLite
- Scraping
Local prototype · write-up pending
- Archived
Viking Coin
My senior capstone at Cleveland State — a proof-of-stake cryptocurrency built by a team I led. Where I learned that the hardest part of a distributed system is not the consensus algorithm.
- Capstone
- Cryptocurrency
- PoS
Cleveland State, 2021 · archived project
- Archived
Windows Calculator
The first program I ever finished. C# + WPF, a perfectly functional clone of the Windows calculator with a hidden Easter egg that calls you names when you divide by zero. Wrote it in the first few weeks of college and proved to myself I could.
- C#
- WPF
- .NET
2017 · archived project
