
Slack Water
Slack water is the still interval when the tide has stopped going out and has not yet begun to come in. Nothing in the frame is doing anything. The piece is one decision about where to put the horizon, and then a refusal to give the water an event to look at. What carries it instead is line. Four passes of hatching cross at angles a degree or two apart, and none of their density is free: weight and opacity are both tied to distance, so the lines are almost bare at the horizon and closing to black at the near edge. The surface is described entirely by how hard it is drawn. The only warm note in the palette is the ochre in the low band of air at the horizon, which the far water carries and the near water never reaches.
Technique
a cold-press paper ground under a high-key sky from plugin-terrain, its haze band tinted ochre so the warm note is a clean gradient rather than painted pigment. A streaked cirrostratus veil from plugin-atmosphere gives the sky structure without giving it an event, and a narrow mist band straddling the horizon dissolves the far water into the sky instead of meeting it at a drawn line. The drawing is four plugin-painting flow-line passes on linear fields at +1.5, -2.5, +3.5 and -14 degrees, each depth-scaled off the horizon and masked to its own band; the last is a cross-hatch confined to the darkest near edge, deepening the shadow by crossing rather than by pressing harder. A fine mark-field adds grain so the darks are not flat ink, and a slate watercolour wash closes it.
Seeds
The same system at three seeds. What moves is the surface and the marks describing it; the composition, the palette and the depth rule stay put.
41
1290
7702
Layer stack
In paint order. Every mark in the image comes from these; there is no handwritten drawing code.
textures:paperPaper Groundterrain:skySkyatmosphere:cloudsCirrostratus Veilterrain:waterFlatsatmosphere:mistSea Fretpainting:flow-linesHatch, Farpainting:flow-linesHatch, Midpainting:flow-linesHatch, Nearpainting:flow-linesCross-hatchpainting:mark-fieldGrainpainting:watercolorSlate Wash
Source
The complete composition. Open it in GenArt to re-render, re-seed, or take it apart.
{
"genart": "1.2",
"id": "slack-water",
"title": "Slack Water",
"created": "2026-09-10T00:00:00Z",
"modified": "2026-09-10T20:23:35.521Z",
"renderer": {
"type": "canvas2d",
"version": "1.x"
},
"canvas": {
"width": 1400,
"height": 1000
},
"parameters": [],
"colors": [],
"state": {
"seed": 41,
"params": {},
"colorPalette": [
"#1f2933",
"#3e4c59",
"#7b8794",
"#cbd2d9",
"#e8e6df",
"#b08968"
]
},
"algorithm": "// Layers-only composition. canvas2d requires a sketch entry point, so\n// this clears to the paper ground and hands the frame to the compositor.\nfunction sketch(ctx, state) {\n ctx.fillStyle = state.colorPalette[4];\n ctx.fillRect(0, 0, state.canvas.width, state.canvas.height);\n}\n",
"layers": [
{
"id": "ground",
"type": "textures:paper",
"name": "Paper Ground",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"preset": "cold-press",
"roughness": -1,
"color": "#e8e6df",
"seed": 41
}
},
{
"id": "sky",
"type": "terrain:sky",
"name": "Sky",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"preset": "noon",
"zenithColor": "#aebccb",
"horizonColor": "#e8e6df",
"hazeColor": "#b08968",
"hazeIntensity": 0.26,
"hazePosition": 1,
"hazeWidth": 0.17,
"horizonLine": 0.32,
"depthLane": "sky"
}
},
{
"id": "veil",
"type": "atmosphere:clouds",
"name": "Cirrostratus Veil",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"preset": "cirrostratus-veil",
"seed": 41,
"cloudType": "cirrostratus",
"algorithm": "streak",
"coverage": 0.42,
"altitude": 0.09,
"scale": 2,
"cloudCount": 9,
"edgeComplexity": 0.3,
"turbulence": 0.1,
"cloudColor": "#e8e6df",
"shadowColor": "#b9c6d2",
"highlightColor": "#f4f1ea",
"opacity": 0.24,
"sunAngle": 150,
"sunElevation": 0.22,
"depthSlot": 1
}
},
{
"id": "water",
"type": "terrain:water",
"name": "Flats",
"visible": true,
"locked": false,
"opacity": 0.85,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"preset": "still-lake",
"seed": 41,
"waterlinePosition": 0.32,
"rippleFrequency": 3,
"rippleAmplitude": 0.4,
"rippleMode": "noise",
"waterColor": "#cbd2d9",
"depthDarkening": 0.35,
"shimmerIntensity": 0.22,
"depthLane": "midground"
}
},
{
"id": "fret",
"type": "atmosphere:mist",
"name": "Sea Fret",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"preset": "morning-mist",
"seed": 41,
"density": 0.55,
"color": "#eef0f2",
"opacity": 0.5,
"bandTop": 0.26,
"bandBottom": 0.45,
"edgeSoftness": 0.75,
"noiseScale": 4.5,
"noiseOctaves": 3,
"driftX": 0.16,
"driftPhase": 0,
"layerCount": 4,
"depthSpread": 0.3,
"skyColor": "#cfd9e3",
"colorShift": 0,
"depthSlot": 0.6
}
},
{
"id": "hatch-1",
"type": "painting:flow-lines",
"name": "Hatch, Far",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"field": "linear:1.5:0.9",
"fieldCols": 48,
"fieldRows": 48,
"minMagnitude": 0.1,
"seed": 41,
"lineCount": 2400,
"seedDistribution": "grid-jittered",
"lineLength": 300,
"stepSize": 6,
"lineWeight": 1,
"lineWeightVariation": 0.45,
"taper": "both",
"color": "#7b8794",
"colorVariation": 0.1,
"opacity": 0.3,
"paintMode": "multiply",
"depthScale": true,
"horizonY": 0.32,
"depthWeightRange": "[0.2, 1.4]",
"depthOpacityRange": "[0.12, 0.8]",
"maskCenterY": 0.58,
"maskSpread": 0.3
}
},
{
"id": "hatch-2",
"type": "painting:flow-lines",
"name": "Hatch, Mid",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"field": "linear:-2.5:0.9",
"fieldCols": 48,
"fieldRows": 48,
"minMagnitude": 0.1,
"seed": 44,
"lineCount": 2200,
"seedDistribution": "grid-jittered",
"lineLength": 240,
"stepSize": 6,
"lineWeight": 1.4,
"lineWeightVariation": 0.5,
"taper": "both",
"color": "#3e4c59",
"colorVariation": 0.12,
"opacity": 0.34,
"paintMode": "multiply",
"depthScale": true,
"horizonY": 0.32,
"depthWeightRange": "[0.2, 2.0]",
"depthOpacityRange": "[0.08, 0.95]",
"maskCenterY": 0.72,
"maskSpread": 0.28
}
},
{
"id": "hatch-3",
"type": "painting:flow-lines",
"name": "Hatch, Near",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"field": "linear:3.5:0.9",
"fieldCols": 44,
"fieldRows": 44,
"minMagnitude": 0.1,
"seed": 52,
"lineCount": 1800,
"seedDistribution": "grid-jittered",
"lineLength": 180,
"stepSize": 4,
"lineWeight": 2.2,
"lineWeightVariation": 0.5,
"taper": "tail",
"color": "#1f2933",
"colorVariation": 0.12,
"opacity": 0.4,
"paintMode": "multiply",
"depthScale": true,
"horizonY": 0.32,
"depthWeightRange": "[0.15, 2.6]",
"depthOpacityRange": "[0.0, 1.0]",
"maskCenterY": 0.88,
"maskSpread": 0.2
}
},
{
"id": "cross",
"type": "painting:flow-lines",
"name": "Cross-hatch",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"field": "linear:-14:0.9",
"fieldCols": 40,
"fieldRows": 40,
"minMagnitude": 0.1,
"seed": 60,
"lineCount": 900,
"seedDistribution": "grid-jittered",
"lineLength": 120,
"stepSize": 4,
"lineWeight": 1.8,
"lineWeightVariation": 0.5,
"taper": "both",
"color": "#0f1418",
"colorVariation": 0.08,
"opacity": 0.34,
"paintMode": "multiply",
"depthScale": true,
"horizonY": 0.32,
"depthWeightRange": "[0.1, 2.2]",
"depthOpacityRange": "[0.0, 1.0]",
"maskCenterY": 0.97,
"maskSpread": 0.13
}
},
{
"id": "grain",
"type": "painting:mark-field",
"name": "Grain",
"visible": true,
"locked": false,
"opacity": 1,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"field": "noise:0:0.1:3",
"fieldCols": 30,
"fieldRows": 30,
"seed": 46,
"density": 5200,
"markLength": 18,
"markLengthVariation": 0.6,
"markWeight": 1.6,
"markWeightVariation": 0.4,
"color": "#1f2933",
"colorVariation": 0.2,
"opacity": 0.3,
"paintMode": "multiply",
"depthScale": true,
"horizonY": 0.32,
"depthDensityRange": "[0.3, 2.6]",
"depthWeightRange": "[0.4, 1.6]",
"maskCenterY": 0.8,
"maskSpread": 0.24
}
},
{
"id": "wash",
"type": "painting:watercolor",
"name": "Slate Wash",
"visible": true,
"locked": false,
"opacity": 0.22,
"blendMode": "normal",
"transform": {
"x": 0,
"y": 0,
"width": 1400,
"height": 1000,
"rotation": 0,
"scaleX": 1,
"scaleY": 1,
"anchorX": 0,
"anchorY": 0
},
"properties": {
"field": "noise:0:0.1:3",
"fieldCols": 20,
"fieldRows": 20,
"colors": "[\"#3e4c59\",\"#7b8794\"]",
"dilution": 0.82,
"granulation": 0.45,
"paintMode": "multiply",
"edgeStyle": "soft",
"seed": 48,
"maskCenterY": -1,
"maskSpread": 0.25,
"debug": false,
"debugOpacity": 0.7,
"debugMode": "all"
}
}
]
}