2026

Dust is a realtime interactive experience of the mundane.

Many years ago, when I was first starting to learn about how to use the webcam as input, I created a dust mote simulator. It used a rudimentary fluid simulation to push particles around. Using OpenCV's optical flow, I could wave my hands around and these particles would respond as if the very air that held them aloft had been displaced. I was inspired by a specific period of time where sun would stream between the buildings across the street and illuminate my kitchen with the most focused shaft of light. When I snapped my old dish towel, hundreds of bright white particles would appear in swirling vortices that drifted through this focused afternoon light.

That project has been lost to time so I decided it was time to recreate it. The project is somewhat simple, but it does incorporate some genAI content so lets discuss that aspect first. I used Midjourney to create some images of DOF blurred window sills in old Icelandic farmhouses (I chose Icelandic to help generate a color palette that would work well with my vision). I then ran those images through Apple's Depth Pro to get a depth map I could use to help roughly simulate the 3D scene without needing to do any modelling.

I then used SARV's POP Fluid Solver to handle the advection of the particles, and Josef Pelz PCR POP Renderer to draw the particles with substantial bokeh which simplified things immensely. In the original version I did over a decade ago, I created a bokeh particle sprite-sheet and chose the sprites based on distance from the focal plane. It worked great, but getting the bokeh looking realistic took a lot of iteration. With PCR, it was just a matter of dialing in the right values. The final bit was to just render the fluid volume as an extremely subtle smoke effect which added to the dusty realism.