The science
What you see. Four inks float on the surface of a viscous size (carrageenan). A comb or stylus pulls the surface; the ink pattern is only its own colour carried along by that flow. Pressing paper on the tray prints the pattern.
∂c/∂t + u·∇c = D ∇²c c = (c1..c4) ink concentrations
Pe = U L / D advection vs diffusion
tooth at P moving with V, reach σ: stream function
ψ = (Vx y − Vy x) e^(−r²/2σ²), u = (∂ψ/∂y, −∂ψ/∂x)
= V G + (V×r) G/σ² (−y, x), ∇·u = 0 exactly
ink drop (radius R) at C pushes older ink out:
P' = C + (P−C) √(1 + R²/|P−C|²) (area preserving)
swirl: Lamb–Oseen vortex, uθ = Γ/(2πr) (1 − e^(−r²/2σ²))
Method. GPU semi-Lagrangian advection (RK2 back-trace, Catmull–Rom sampling) plus an explicit diffusion pass, on a half-float grid (about 0.5 mm per cell on High).
Assumptions. The flow is a sum of divergence-free Gaussian drag blobs (one per tooth), not a full Stokes solution with no-slip teeth; viscosity and surface tension are not solved; the diffusion slider is illustrative (real values are far smaller); mathematical marbling after Lu, Jaffer, Jensen and Wang, Mathematical Marbling (IEEE CG&A 2012) (citation from memory: please spot-check). Patterns shown are artistic recipes, not a record of a historic craft.
Checks. running…
Virtual craft simulation for education. Real marbling uses materials that need proper ventilation and supervision; no real-world instructions are given here.