I build tools for audio, graphics, and physical simulation.
- MeshEditor: Mesh editor that turns 3D geometry into playable physical audio models
- AcousticSolver: Acoustic solvers and differentiable physical models for Apple Silicon
- SurfaceAudio: Sound synthesis for friction, rubbing, scraping, scratching, and rolling
- FastFEM: Finite-element library for tetrahedralization and modal analysis on Apple Silicon
- RigidBodyPhysics: Rigid body physics and collision detection on Apple Silicon
- mesh2audio: Convert meshes into physical audio models and play them by striking vertices (replaced by MeshEditor)
- flowgrid: Persistent ImGui editor for Faust audio programs
- faustlens: Bidirectional editor and compiler for Faust
- tree-sitter-faust: Faust grammar for Tree-sitter, available in nvim-treesitter
- jaxdsp: Differentiable audio processors built with JAX and controlled from the browser
- MetalRealtimeAudio: Experiments with latency limits for realtime GPU-generated audio
- AutoSampler: Max for Live instrument that finds and plays samples matching incoming MIDI notes
- midi_markov: Generate MIDI from an input file using a Markov chain
- DrumClassification: Drum classification model
- BeatBot: Sample-based Android beat sketchpad with an Ableton-style timeline note editor, multitouch editing, and OpenGL UI
- billboard-chordify-scraper: Chart and chord scraper with Roman numeral analysis for 6,400 songs
- GeoLDMViz: 3D viewer for generated molecules and GeoLDM diffusion chains
- ProcessingRayTracer: Ray tracing, implicit surfaces, and mesh manipulation in Processing
- ImGuiVulkanHppImage: Vulkan-Hpp rendering inside an ImGui window
- persistent: Persistent data structures inspired by immer
- ImGuiPersistentTextEdit: ImGui text editor built on persistent data structures
- notebooks: Audio DSP book companions with animations, code examples, and exercises




