An iPhone and Mac app that I built for fun. It turns a phone camera into a background-oriented schlieren (BOS) system. The app generates a random-dot background and captures a reference frame and a flow frame through it. It then cross-correlates the two frames to find the apparent dot displacement that density gradients cause. Examples are the plume above a candle or a heat gun.
Schlieren imaging shows density gradients in a transparent flow. Background-oriented schlieren does this without mirrors or knife edges. A camera photographs a textured background through the flow, and light bent by the gradients shifts the apparent position of the texture. The measured shift gives the deflection. With the geometry, the deflection then gives the gradient.
The Gladstone–Dale relation, the ray deflection through the flow, and the image displacement that it causes for a background distance \(Z_D\) and magnification \(M\).

Normalized cross-correlation between interrogation windows of the reference and flow images. The sub-pixel peak gives the local displacement.
The full pipeline runs on the phone: target, capture, correlation, inspection and export. But it does not guarantee accuracy. The synthetic-shift, physical target-motion and ray-angle checks are not complete, so the app labels its results as prototype processing. Density and temperature reconstruction, 3-D reconstruction and velocimetry are not implemented.
The Learn tab is also a short course on schlieren physics. It includes a gallery from the MECH 489 Z-type schlieren lab that started the project.