YOUR COLOUR STUDY
These are the measured proportions of the paint on your palette.
Any multiple of these amounts works. Clear your palette to try it. This study is now assisted.
WELCOME TO YOUR STUDIO
The percentages show how much of each pigment you added. Undo removes the last scoop and replots the remaining paint. New colour starts a fresh study.
On iPhone, open the hosted game in Safari, tap Share, then Add to Home Screen. Open it once while online to save the game for offline play.
Keyboard: 1–4 add the corresponding pigment, Space folds the paint, and Ctrl/⌘ Z undoes a scoop. Touch works on the mixing surface.
A LITTLE OF THE SCIENCE
The paint surface reimplements the velocity → height → alpha history → surface-normal technique described by Misaki Nakano / mofu. A viscous fluid solver moves four pigment height fields; studio highlights reveal their ridges and thin smears.
Colour uses 38 spectral samples, D65 lighting and the Kubelka–Munk mixing model, with spectral data and concentration weighting from Spectral.js by Ronald van Wijnen (MIT). The target and liquid use the same colour model.
Matching uses CIEDE2000 on the fully blended colour calculated from your measured recipe. Glossy lighting does not affect the score. The displayed percentage is a game score, 100 × exp(−ΔE / 20); it is not a laboratory accuracy percentage. An exact recipe gives ΔE 0.
This is a physically informed digital approximation. Pigment spectra are reconstructed from RGB, not measurements of specific paint brands. Real paint, lighting and display calibration vary. The visual flow is not volume-conserving, so measured recipe amounts are tracked separately. Fold together homogenizes the visible paint to that measured recipe.
All mixing runs on your device. No accounts or tracking. WebGL 2 and floating-point render targets are required for the fluid effect. All code and data are embedded in this file.