Building off my work on realtime fluid simulations with WebGL, I've been building a physics-based marbling simulation to explore the ways that paper marbling can be augmented through digital tools. I'm interested in exploring new aesthetics using virtual brushes and combs that can only exist in a digital medium.
I’ve recently revisited some work on computational fluid dynamics that I started in 2017; this time I'm using new methods that capture more detail in the movements of the fluids. This work is still ongoing. I'm hoping to explore some ideas around fractals and loops within fluids via a feedback mechanism. I'm also using these simulations to explore a parallel thread around digital marbling and suminagashi.
Letterlocking is the historical practice of folding and sealing letters to become their own envelope. Hundreds of different letterlocking styles have been cataloged, but most of what we know about letterlocking is deduced from opened letterpackets. This project uses x-ray microtomography and a novel "virtual unfolding" approach to read sealed letterpackets without opening them.
This app simulates how any origami crease pattern will fold. It calculates the geometry of folded or partially folded origami using a dynamic, GPU-accelerated solver and illustrates physical properties of the folded material. It also supports an immersive, interactive VR mode using WebVR. Code on Github.
An orrery is a mechanical model of the solar system. This orrery depicts the orbits of the Earth and Moon around the Sun and can be used to predict the date of future eclipses. I designed it from scratch and released all the CAD files and build information on Instructables.
Shader programs are executed by the GPU to perform highly parallel computations much more efficiently than possible with a CPU. These are a collection of programs I've written (mostly physics simulations), where math or other logic is processed in WebGL fragment shader programs in order to solve a large system efficiently.
A standalone, grid-based MIDI instrument that can be booted up into various musical applications. Analog motion sensors provide a means of gestural control and playful interactions. Supported by an event-based programming protocol for easy application development.
A follow up to the 3D printed records project, this is a more accessible means of fabricating records with a laser cutter. Includes demos of records cut records from wood, acrylic, and paper.
An experiment testing the limits of 3D printing, this program converts digital audio recordings into 3D-printable, 33rpm records that play on ordinary turntables. Includes demos of some of the records I've printed.
A collection of projects and tutorials about using an Arduino to perform digital signal processing (DSP) on audio signals. All projects are documented on Instructables with example code.
An Arduino-powered, sample-based drum machine used for live audio sequencing/looping. Memory limitations of the Arduino give this device its characteristically gritty sound. This project builds on the digital signal processing tutorials discussed in Arduino DSP.
A sound sculpture that responds to light stimuli to construct an audiovisual interpretation of its environment. Light sensors in the device pick up changes in its surroundings and translate them to sound and visual patterns.
A novel leg mechanism I designed and built, inspired by the work of Theo Jansen.
An IR multitouch system based on the open source monome project. Used for controlling various audio and MIDI applications via MaxMSP. Designed to be inexpensive, thin, modular, and scalable.
MaxMSP is a graphical, flow-based programming language that makes it easy to build interactive audio, MIDI, video, and graphics applications without any prior experience writing code. This is a collection of projects and tutorials I've written that involve MaxMSP.
I worked at instructables.com from 2012 to 2014 as a content creator, assistant tech editor, and front end/iOS developer. While I was there I made and documented many projects, and I still occasionally post new projects when I can. This is a collection of step-by-step projects and tutorials I've posted on Instructables.