Watercolor Pro · Coming soon for Aperveil 1.0 WebGPU shader

Colour that dries the way paint does.

A WebGPU watercolor shader for React: a composed opening of washes dries on cold-press paper, then the pointer paints, stroke by stroke, with darkened rims and Kubelka–Munk glazing.

Meet the surface

Part of Aperveil Pro · Coming soon. The live demo, editor and downloads will open in a later release. Free shaders and blocks are available now.

Pro · Coming soon for Aperveil 1.0Persistent fluidvgpu runtime

Inside Watercolor.

The page opens on a composed painting: five brush strokes land a beat apart, spread by capillary flow (the wet area grows like the square root of time), and dry. As they dry their rims darken: water evaporating at a pinned contact line is replaced from the interior and carries pigment outward (the coffee-ring effect), so the rim gains what the middle loses. A late drop sometimes creeps back into a damp wash and pushes pigment into a branching, darkened front: a backrun. Settling pigment collects in the valleys of the cold-press tooth, and the two wet-in-wet strokes feather out with no rim at all. Then the paint is yours, and it stays: moving the pointer lays drops along its path, spaced by distance so a fast stroke has no gaps; the drops of one stroke merge into a single wet shape that spreads, glistens, dries with the same darkened rim and glazes over whatever lies beneath. Each stroke takes another tube colour. Colour is never mixed like light: every pigment's absorption and scattering are derived from its colour over white and over black (Curtis et al. 1997) and strokes composite as Kubelka–Munk glazes, so blue over yellow turns green and two warm glazes deepen instead of brightening. Performance does not depend on how much you paint: paper and the dried opening are baked once, every finished stroke is baked once into a single Kubelka–Munk paint layer (its reflectance and opacity), and only the strokes still being painted are drawn live. Because the layer is stored separately from the paper, a Look change recolours the paper and opening under your painting without losing it.

The painting lives in this page: every finished stroke is baked into a paint layer, so it stays and costs nothing more, but a reload, a resize or the editor's reset starts a fresh sheet. The opening washes follow a closed-form life (land, spread, dry) rather than a solved shallow-water flow, wet strokes glaze rather than bleed into each other, and pigment separation, lifting with a tissue, salt and spatter are not modelled. As an interactive simulation it has no multi-framework export yet.

No published timing sample. Profile this effect on your target devices.

Pigment load

How much pigment each wash carries.

Body

Transparent glazes (0) let the paper glow through; opaque paint (1) scatters and covers.

Edge darkening

Pigment carried to the rim as the wash dries.

Backruns

Chance that a late drop blooms back into a drying wash.

Color Looks preserve these settings. Open the editor for all 19 controls.

Made for a real interface.

Give an art school, a children's book, a stationery brand, a wedding or a gallery page a painted hero that visitors can add to. Keep the opening washes to one side with Composition centre and set dark type over the open paper; turn the brush down or off where the hero should stay still.

ATELIER AQUAExample composition

Summer course · 6 evenings

Learn to let the water decide.

An illustrative page for a watercolour course that begins with wet-in-wet skies.

Paper

300 gsm cold-press

Palette

Three transparent pigments

Illustrative layout, not a customer project. Static layout; a shader still is pending visual approval.

An illustrative layout. Your content stays in HTML; the shader sets the atmosphere.

Coming soon.

This Pro surface's demo, editor and downloads will open in a later release. Free shaders and blocks are available now.

Explore shaders

Before you ship.

What this surface does, where it fits, and where it stops.

All shaders

Make Watercolor yours.