Hi, I’m Michael. I make software for sound and graphics.

I’m a developer working mostly on Apple platforms, where I spend my time on real-time audio, GPU rendering, and the small details that make an app feel good to use.

I like working close to the hardware: DSP code that has to finish in under a millisecond, shaders that need to hold 120 frames a second, text that has to stay sharp at any size. I also like the other end of the spectrum — small, focused apps that do one thing well and get out of the way.

This site is where I keep track of what I’m building and write up what I learn along the way.

Things I’m interested in right now:

  • real-time audio and DSP
  • text and vector rendering on the GPU
  • physical modelling of acoustic instruments
  • tools that feel more like instruments than software

The best way to reach me is email. My code is on GitHub.

Recent writing

  1. How this blog works Every post is a folder in a Git repository. Pushing to GitHub puts it on the site about a minute later.
  2. A raymarched scene, running in the page Signed distance fields, a smooth minimum and about a hundred lines of GLSL, drawn live inside the post.
  3. Watching a path tracer converge The same image at 1 to 1,024 samples per pixel, and why the noise takes so long to go away.
All posts →