A Natural Media layer turns a normal pixel layer into a live fluid-paint simulation. Instead of just stamping color, the brush deposits pigment and water onto the surface, and the layer then simulates how that wet paint flows, diffuses, pools at drying edges and settles into the paper — the way real watercolor (or oil) behaves after it leaves the brush.
Every brush feeds the same simulation; what it deposits is set by the brush's Natural Media settings (modeled on Rebelle's Water / Loading panel), independent of the tip type. The medium is a preset of these values, not a brush class.
Water deposited per stroke (dynamics-capable — map to pressure). 0% = dry brush: pigment goes down but nothing flows. 100% = dripping wet: paint runs, blooms outward, darkens at drying edges and granulates into the paper.
Paint thickness (impasto height) deposited per stroke (dynamics-capable). 0% = a perfectly flat, matte wash — the watercolor look. 100% = thick paint that is lit with a directional light and blocks flow — the oil look.
The deposited paint's cross-section: 0% = a smooth dome following the tip profile; 100% = paint pushed out to the stroke's edges, like a palette knife or stiff bristles squeezing paint aside.
Typical presets: watercolor = high Water, zero Body; oil = low Water, high Body; gouache = moderate both. Any tip — dab, strip ribbon, or bristle — can paint any of them.
Two optional textures shape the result. Connect them to the NaturalMedia node's paper and granulation inputs.
Set a gravity angle and strength to tilt the virtual canvas. Wet washes run downhill, pool, and leave runs and backruns — exactly like working on an easel.
Select the NaturalMedia node to expose the simulation parameters:
| Control | What it does |
|---|---|
| Diffusion Rate | How fast wet paint spreads laterally across the surface. |
| Absorbency | How quickly active water settles into the paper. High = washes set fast; low = water flows longer. |
| Re-Wet | How easily already-dried pigment re-dissolves when fresh water touches it (0 = locked, 1 = lifts easily). |
| Edge Darken | Pigment migration toward the drying front — the dark outlines (“blooms”) characteristic of watercolor washes. |
| Advect Strength | How strongly flowing water carries pigment with it. |
| Gravity Angle / Strength | Direction and force of canvas tilt. |
| Paper Influence | How much the paper texture steers flow and absorption. |
| Granulation Strength / Contrast | Intensity and sharpness of pigment granulation. |
| Light (angle / elevation), Surface Scale, Gloss | Impasto lighting for the height (oil) — direction, exaggeration, and specular sharpness. |
The engine follows the established fluid-paint lineage from computer-graphics research (see References). It splits cleanly into deposit (the brush) and simulate + composite (the layer), mirroring the structure of Curtis et al.'s canonical 1997 watercolor model.[1]
| Map | Format | Holds |
|---|---|---|
| pigment (deposited) | RGBA32F | RGB = pigment color (premultiplied by density), A = density. Pigment settled on the paper — the layer's pixels. |
| suspended | RGBA16F | Pigment riding the water (Curtis's two-compartment model[1]). Runtime-only — never saved; re-wetting reconstructs it from pixels + wetness. |
| wet | RG32F | R = total water, G = absorbed fraction. Active water = R·(1−G). |
| velocity | RG32F | Flow direction, updated from wetness-pressure gradients + gravity + paper. |
| height | R32F | Paint thickness (impasto, the brush's Body). Deposit-only — the sim reads it (lighting, water runs off it) but never rewrites it. |
| Pass | Does |
|---|---|
| Velocity | Updates flow from the wetness pressure gradient (high→low), gravity, paper capillary slope (water flows peak→valley) and paint-height slope (water runs off raised paint). |
| Suspend | Transport of the suspended pigment: semi-Lagrangian backward advection along the flow,[3] light Laplacian spreading and edge-darkening — plus the lift half of the pigment exchange. |
| Deposit | The settle half of the exchange (suspension drains onto the paper as the water sinks in) and granulation. The deposited map never moves laterally — brush strokes and this exchange are the only things that change it. |
| Dry | Active water settles into the paper (absorbency), can re-wet, diffuses, and redistributes under gravity. |
The pigment exchange follows Curtis et al.'s TransferPigment:[1] per tick, deposited pigment lifts into suspension where there is active water (δup = d·ρ/ω — a pigment's staining power ω is what protects a dried glaze), and suspended pigment settles onto the paper (δdown = g·ρ), both clamped by the receiving side's headroom. Because all lateral motion lives in the suspension, edge darkening, re-wet lifting and glaze protection emerge from the exchange rather than being painted-in effects: a fresh flood mobilizes pigment quickly (lift ∝ wet²), a gentle damp glaze barely disturbs the wash beneath, and what you see while painting is the suspension compositing over the settled pixels until the wash dries.
Height is deliberately not simulated: the height↔flow coupling is one-way (height shapes the flow; the flow never rewrites height). Advecting height with the water velocity was tried and removed — semi-Lagrangian gather is non-conservative and its bilinear resampling flattens sharp impasto within seconds, and a wet wash flowing over dried structure would erode it. Moving thick paint is a smudge / palette-knife operation, not a fluid one. Depositing is likewise a reshape, not an add: each stroke lerps the surface toward its own profile (Body × dome/Ridge) weighted by its coverage, so fresh ridges always imprint — there is no height ceiling that strokes stop registering against, and a low-Body stroke flattens thick paint like a knife.
The design separates a static paper substrate from a dynamic paint field, the pattern established by Curtis et al. (one paper height field both perturbs flow and sets absorbency).[1] The correct, physically-grounded wiring is:
| Field | Nature | Drives flow? | Drives lighting? | Drives color? |
|---|---|---|---|---|
| Paper (tooth) | static substrate | Yes — capillary, absorption, streaks | Should — paper grain catches light | via granulation (pigment in valleys) |
| Paint height | deposit-only (Body) | Yes — thick paint is terrain | Yes — normals → specular impasto | — |
| Wetness / velocity | dynamic | Yes — pressure + advection | — | — |
| Pigment | dynamic | carried by flow | — | Yes — the visible color |
All three tips deposit all three quantities; Water and Body scale the water and height amounts (Body = 0 skips the height deposit entirely — matte).
| Brush tip | Pigment | Water | Height |
|---|---|---|---|
| Strip (continuous ribbon) | ✓ | ✓ × Water | ✓ × Body, profile × Ridge |
| Bristle (per-hair ribbons) | ✓ | ✓ × Water | ✓ × Body, profile × Ridge |
| Dab (MyPaint stamps) | ✓ | ✓ × Water | ✓ × Body, profile × Ridge |
The physically-correct color model for watercolor is not RGB blending. Real paint gets its color from pigments, whose mixing follows Kubelka–Munk turbid-media theory (translucent layers of absorption/scattering over a white substrate) — which is why blue + yellow makes green, not gray, and why thin washes glow.[5] Curtis et al. composite the glazes optically with K–M rather than by physical mixing.[1] Zhao & Berns show the full translucent two-region K–M model statistically out-predicts the opaque simplification across real artist glazes.[6] A practical, RGB-in/RGB-out realization is Mixbox.[5]
How comparable tools are documented to behave. Internals are rarely fully public and features change across releases — each row links the relevant official documentation.
| Engine | Watercolor model | Oil / impasto lighting | Paper substrate |
|---|---|---|---|
| Corel Painter | “Real Watercolor” fluid sim with paper absorption[7] | Separate Impasto depth channel with directional lighting + shine[8] | Paper grain as a distinct substrate that grainy brushes catch on |
| Escape Motions Rebelle | “Real Watercolor” — water, absorbency, diffusion, tilt & gravity, granulation[9] | “Real Oil” paint volume, lit via the Visual / light settings | Paper with absorbency & tooth, separate from paint volume |
| Ambient Design ArtRage | Thin wet media on a textured canvas | Real paint thickness, lit by a single canvas light over the combined surface[10] | Canvas grain feeds both texture and lighting |
| Adobe Fresco | “Live Watercolor” — pigment blooms/flows on wet canvas[11] | “Live Oils” build real paint volume that smears | Paper interaction; substrate distinct from paint body |
Note: the academic claims below are verified against primary sources; the engine-comparison rows summarize each vendor's official documentation and may vary by version.
Note. The academic references are verified against primary sources (authors' institution pages, ACM, Crossref). Kubelka–Munk theory dates to Kubelka & Munk (1931); the implementations above are K–M-derived. Engine-comparison rows summarize each vendor's official documentation and may change across product versions.