a wind tunnel in a browser tab
Lattice Boltzmann fluid sim in WGSL compute shaders, checked against real reference data in CI.
TypeScript · WebGPU (WGSL) · Three.js · GitHub Actions
That sentence is responsible for every project on this site. I get obsessed with how something works — usually AI, usually at 2am — and I don't stop until there's a thing running at a URL. Curious, ambitious, relentless. Also slightly chaotic. Both are load-bearing.
Lattice Boltzmann fluid sim in WGSL compute shaders, checked against real reference data in CI.
TypeScript · WebGPU (WGSL) · Three.js · GitHub Actions
GitHub, Vercel and Calendar in one PWA. I talk to it and Claude files the note.
NestJS · Drizzle · PostgreSQL · Redis · Anthropic SDK · Web Push

Voice RAG twin: Whisper in, Llama over Qdrant, my own LoRA-tuned voice out.
Python · FastAPI · Ollama · Qdrant · VoxCPM · Docker
~25 services: scrape jobs, match them to my resume, find the HR contact, write it, send it, read the reply.
Python · FastAPI · PostgreSQL · SQLAlchemy · embeddings · LLM APIs
Slack questions become validated, read-only SQL. AST guardrails instead of a regex prayer.
Python · FastAPI · Instructor · SQLGlot · SQLite
Every answer grounded in retrieved context and streamed over SSE. Latency cut from ~20s to ~6s.
Python · FastAPI · Ollama · Qdrant · SSE
Agents that take bookings, argue over conflicts, and reshuffle barber slots.
React · Node.js · Express · MongoDB