AI/ML at Babylist by day.
By night, I build CAD and 3D tools for the browser, Linux desktop apps, and tools for AI-native development. Most of it is TypeScript and Rust.
| Project | What it is | |
|---|---|---|
| brepjs | A CAD library for TypeScript with exact geometry. AI agents can write parts with it and check them. | playground · npm |
| occt-wasm | OpenCascade compiled to WebAssembly, with a TypeScript API. It is the default kernel for brepjs. | npm · crates |
| brepkit | A solid modeling kernel in Rust that brepjs can use in place of OpenCascade. | npm |
| gridfinity-layout-tool | Plan 3D-printed drawer layouts in the browser. | live app |
| hush | Voice-to-text for Linux that runs on your own machine. Hold a key, speak, and the text appears at your cursor. | releases |
| tug | A download manager for Linux. It uses many connections for each file and resumes after a pause or a crash. | releases |
| plus-one | Review more PRs: an AI agent sorts the ones that wait on you and drafts the comments. Nothing posts until you click. | setup |
| skills | An AI agent plugin with my subagents, skills, and slash commands. | install |
- ecsia: an entity component system for TypeScript that runs across threads, with the same result as one thread
- elevator-core: a Rust library that simulates elevators, from a 5-story office to a space elevator
- stackchan-kai: Rust firmware for the Stack-chan desktop robot that stays on your local network
- so-arm101: tools to set up, repair, and run the SO-ARM101 robot arm with Hugging Face's LeRobot
- plancktons: an interactive 3D simulation of how tetrahedra pack together, in the browser
- labcat-crt: a CSS-only web component that puts a CRT screen effect over any element or the whole page
Also into game dev and home automation.