Projects

Everything here is shipped and live.

Models and retrieval

Ozan the storyteller, the model's namesake artwork

Ozan-12B

Open-weights language model

A creative-writing model fine-tuned from Mistral-Nemo with QLoRA and anti-slop DPO, on $40 of GPU. It has the lowest slop score of any 12B measured on EQ-Bench and beats bigger models like Gemma 27B. The weights, the quants, and the full training recipe are public.

#1 trending on Hugging Face · 3K+ downloads

Hugging FaceFeatherlessTraining recipe

The same held-out call with VoxLock off and on: the background voice disappears from the waveform and from the transcript

VoxLock

Voice isolation model

Keeps the caller's voice and removes the other voices in the room before STT can process them. Fine-tuned from the REAL-TSE baseline on about 190 hours of simulated phone calls and real meeting crosstalk, it has the lowest word error rate on the Krisp Voice Isolation Benchmark of every model tested, paid or open. It streams on CPU and plugs into Pipecat and LiveKit voice agents.

4.95% WER on the Krisp benchmark · 27M parameters

PaperDemoHugging FaceGitHub

kev-0.6b-browser-use playing A Dark Room in the browser, with every button it weighed and its confidence

kev-0.6b-browser-use

Browser-agent decision model

A 0.6B model that picks which element on a page to act on, and whether to click, type or select, as probabilities in one forward pass. Fine-tuned from Kev on Mind2Web and WebChain, it is the best open-weights model that runs in a browser, and it plays A Dark Room live on WebGPU.

32.2% Mind2Web step success · runs in the browser

DemoHugging FaceGitHub

How sqlite-sparse works: INSERT runs the encoder once per document and stores weighted terms as posting lists; MATCH tokenizes the query, reads weights from the file and scatter-adds over posting lists with no model

sqlite-sparse

SQLite extension

Semantic search inside a SQLite file. A learned sparse encoder runs once when a document is inserted and stores weighted words as posting lists in the database, so searching needs no model, no server and no vector database. Copy the file anywhere SQLite runs, including a browser, and the same query works.

3.1 ms at 1M documents · no model at query time

DemoGitHubPyPI

Apps

A glass cloche terrarium of nerve plants, moss and a stone, rendered in Glass Jar Garden

Glass Jar Garden

Web app, 3D simulation

A terrarium simulator in the browser. Pour the layers, plant real species, add springtails and isopods, seal the jar and watch it live day by day: a water cycle, moss creeping, plants growing, mould when it goes wrong. Built on three.js with a simulation checked against real jars.

90 real species · 26 starter jars · free

Open itStarter jarsGuide

Iris: Period and Cycle Tracker

Iris

iOS app

A complete cycle-tracking suite. Predictions confirmed from BBT and LH tests the way a clinic would, a PCOS-friendly irregular mode, partner sharing, and two-way Apple Health sync. Every feature is free, in seventeen languages, and health data never leaves the phone.

17 languages · 1,000+ downloads a month

App StoreWebsite

Mercuro: fill the heat

Mercuro

iOS and Android game

Calm thermometer logic puzzles. 660 handcrafted levels across eight board sizes, three daily games, and a hint system, all on its own constraint solver and generator. Built natively twice, SwiftUI on iOS and Kotlin with Compose on Android.

5★ · 660 puzzles · featured in gaming newsletters

App StoreWebsite

Content creation automations

The Footnote channel banner

The Footnote

Autonomous media channel

Short history stories researched, scripted, voiced, illustrated, rendered, and published by an automated pipeline. Real archival images scraped off the web instead of AI art, with a vision model judging every frame. No human in the loop.

500K monthly views

InstagramYouTubeFacebook

iris: women's health, clearly explained

Iris growth pipeline

Automated distribution

Iris markets itself. The pipeline designs infographic posters, checks each one against a written creative contract, and publishes daily to Instagram and Pinterest. Its App Store listing runs ASO in sixteen languages.

100K+ views driving installs

InstagramPinterest

Andheri Dastak: Hindi horror stories

Animated Horror

Animated video pipeline

Animated Hindi horror stories. A local model writes the screenplay, image models keep the cast consistent across 25 shots, and Wan 2.2 animates it on rented GPUs. A finished four-minute film costs under a dollar.

animated films under $1 each

YouTube

Engineering platforms

Agent platform at Turnip

Internal engineering platform

A harness that lets non-engineers build like engineers. One repo, cloned once, arrives with custom skills, a structured workflow and per-project memory already wired in. Deploys run through Hermes, an MCP server I wrote and self-host, behind guardrails, so nobody needs production access.

Claude Code · custom skills · Hermes, a self-hosted MCP server · per-project memory · guardrailed deploys

10 non-engineers · 17 internal tools · zero engineer commits

Slop Corner

When the weeklies are about to reset and you still have tokens left. All of it

The Kerb Appeal hub page: three game cards on a hand-drawn map of one terraced street

Kerb Appeal

Three browser games, one street

A tilt-shift toy British street with three games on it: park on it, patrol it, walk the children across it. Built in three.js on WebGPU, with every sound synthesised in the browser.

A red learner car reversing into a gap between parked toy cars on a tilt-shift street

Tight Spot

Parking puzzle game

Twenty-four handmade streets of parallel parking with an examiner in the passenger seat. Traffic lights, cyclists, hills and wet roads, par counted in moves, and a roguelite shift for later.

How to play

A traffic warden on a toy street with countdown tags over parked cars and a route preview

Double Yellow

Route-planning puzzle game

You are a traffic warden and every driver is on a countdown. Plan the route, write the tickets and be gone before they get back. Twenty-seven handmade levels, each checked by a solver.

How to play

The lollipop lady holding up her sign while children cross a toy street outside a primary school

Lollipop

One-button timing game

The school crossing patrol, as a game. Hold to step out and stop the traffic, let go to let it flow. A term of handmade school days with buses, a traffic island and ambulances you must never stop.

How to play

Open source

  • lru-cache-node, an O(1) LRU cache for Node with expiry and stale reads, on npm · 119★
  • node-skeleton, an MVC skeleton for Node apps with social auth, tests, and logging · 31★
  • anabranch, an HTTP load balancer and reverse proxy in Go with pluggable algorithms · 27★
  • MEAN-skeleton, a quick-start skeleton for MEAN-stack apps · 26★
  • rSlashVideos, turns any subreddit into a video playlist · 24★
  • asoiaf-api, a JavaScript wrapper for the A Song of Ice and Fire API, on npm · 18★
  • IMDb-Rating-Lookup, check a film’s rating and cast without opening a browser tab · 17★
  • IMDb Lookup Extension, a Chrome extension for IMDb ratings in place · 10★
  • Yoda Bot, a Messenger bot that echoes your words, but in Yoda’s order · 9★
  • Ozan recipe, the full reproducible pipeline behind Ozan-12B: data, training, evals · Apache-2.0
  • mock-jay, a mock data generator for real-world shapes, on npm · npm