Clip Shrinker
In development
A browser-based video compressor that shrinks clips down to a target file
size, entirely client-side, using your GPU's hardware encoder through the
WebCodecs API. No install, no upload; the video never leaves your machine. Trim a clip before compressing, queue up multiple files at
once, and save the result straight to disk when it's done. Live, with a
few quality-of-life fixes still on the way.
- TypeScript
- Vite
- WebCodecs
- Mediabunny
- Vitest
Try it live →
Pseudonyms
Party game
A Monikers-style party game with a deck that never runs out: every card
is a page from Wikipedia's daily most-viewed charts, scored by how highly
it ranked. Players join on their phones with a room code while a TV view
shows the timer, scoreboard, and join QR code. Falls back to cached cards
when Wikipedia is slow or down.
- TypeScript
- Cloudflare Workers
- Durable Objects
- WebSockets
Play it live →
Clip Game
Party game
A Jackbox-style game built with a friend. Everyone gets the same prompt,
finds a YouTube clip on their phone, and trims it to the perfect few
seconds. The clips play back anonymously on the big screen, everyone
votes, and the funniest clip takes the round.
- JavaScript
- Cloudflare Workers
- Durable Objects
- YouTube API
Play it live →
Mafia
Party game
The classic hidden-role game, built with a friend, with phones instead
of cards and a TV instead of a human narrator. Roles stay secret on each
phone, everyone taps a name at night so nobody can tell who holds a
power, and an optional voice narrator reads each phase aloud.
- TypeScript
- Cloudflare Workers
- Durable Objects
- WebSockets
Play it live →
Sparse Tensor Storage Research
Academic
Undergraduate capstone research contributing to the HiCOO sparse tensor
storage format alongside the ALTO format, implemented in Python. Helped
develop the format, coordinated documentation, and produced explanatory
animations of how the data structures work.
- Python
- Data Structures
- Research
Watch the explainer video →