Status
Open source
Period
September 2026
Stack
JavaScript · WebGL2 · GLSL · Canvas
Quality comes from seeing, composing, material and self-critique — in that order. Motifs come last.
The skill never reuses the reference scene. It copies only the generic material core and writes a new pipeline for every subject.
1Problem
Asked for an ink painting, a model reaches for the same picture every time: mountains, a moon, water. Given a worked example, it copies the example — the skill’s own notes call that the first cause of template pictures.
When it does draw something new, the computer shows through: strokes of flat width, ink that sits in beads, visible stitching between marks, blur applied evenly everywhere, and a grey mush where the tones should separate.
The style is not a set of motifs (mountains, moon, pavilion). It is a way of seeing plus a material.references/seeing.md
2Questions
Can principles carry over to any subject?
If the skill teaches how a painter translates a subject instead of shipping a scene generator, does a pagoda, a canal city or a cat come out as convincing as the river scene?
Which techniques hide the computer?
What in the simulation of paper, water and brush removes the tells that make digital ink look digital?
3Method
See before drawing
Five questions for every subject: its spirit (神), what is solid and what is empty (实 / 虚), which family of line it needs, how many depth planes, and which format.
Compose by the canon
One host and its guests (主宾), empty paper as a shape (留白), hiding and revealing (藏露), one focal point, one to three red accents, at most one inscription and one seal.
Paper and water
Paper with fibre ridges. Every mark writes into a wetness map, which then spreads along the fibres over about 36 diffusion steps on half-float textures — with darkened edges, granulation and a soft halo.
A grammar of the brush
Width varies with the length of the stroke, not per point; a pressed entry and a lifted exit; a dark core offset for a centred or slanted tip (中锋 / 侧锋); ink drying along the stroke into flying white (飞白). Ten stroke families, from ruled architecture to texture strokes (皴) and boneless washes.
A renderer ordered by depth
Every element has a depth between 0 and 1. Washes go through the diffusion pass; a separate ink layer sits on top and cuts what is behind it.
Criticise at zoom
At least two rounds of critique on six zoomed crops, against checklists for composition, tone, execution, grounding and motion — and the delivery states honestly what is still weak.
Paper is the light. Sky, water, snow, white walls, mist and lit sides are unpainted paper. Nothing glows.SKILL.md
4Results
Suggest, don’t enumerate. 40 tile strokes read as a roof; 400 read as a texture map.SKILL.md
5Limitations
- Only one reference scene exists; the first question — does it carry over to any subject — is open until the three test prompts are run and kept.
- No photographic detail, cast shadows or full colour, by design. Faces, hands and anatomy are weak.
- New subjects start without motif code; the haze in the shared core is still tied to the reference scene’s horizon bands.
- Needs WebGL2 with float render targets; older and some mobile GPUs cannot run it.
Sources and prior work
- The skill — workflow and principles
- Seeing and translating a subject
- Composition canon
- Materials → shaders
- Brush grammar
- Critique protocol
- Pitfalls — symptom, cause, fix
- Fibre diffusion shader
- Prior work the skill builds on: MoXi (Chu & Tai), Curtis et al. on computer-generated watercolour, Bousseau et al. on watercolour rendering, and Lingdong Huang’s shan-shui-inf