Chapter One · 24 pages
SynthGenerators
Effects that make an image out of nothing but coordinates and a seed. Every program in the book starts with one of these.
- Bitwise bitwise() Bitwise operation patterns (XOR squares, AND, OR, etc.)
- Cell cell() Cellular/Voronoi noise with distance metrics
- Cellular Automata cellularAutomata() 2D cellular automata with rule presets
- Curl curl() 3D curl noise using simplex noise
- Gabor gabor() Anisotropic bandlimited noise via sparse Gabor convolution
- Gradient gradient() Multi-color gradient generator with various styles
- Julia julia() Julia set explorer with deep zoom
- Mandala mandala() N-fold symmetric mandala generator
- Mandelbrot mandelbrot() Mandelbrot explorer with deep zoom
- Mnca mnca() Multi-neighborhood cellular automata
- Mod Pattern modPattern() Interference patterns from modulo operations
- Navier-Stokes navierStokes() Stable-fluids Navier-Stokes solver
- Newton newton() Newton fractal explorer with deep zoom
- Noise noise() Value noise with multiple interpolation types
- Osc2D osc2d() 2D oscillator pattern
- Pattern pattern() Geometric pattern generator
- Perlin perlin() Perlin-like noise with optional warping
- Polygon polygon() Geometric shape generator
- Reaction-Diffusion reactionDiffusion() Gray-Scott reaction-diffusion
- SacredGeometry sacredGeometry() Flower-of-life and related sacred-geometry lattices
- Shape shape() Interference patterns from geometric shapes
- Solid solid() Solid color fill
- Subdivide subdivide() Recursive grid subdivision with shapes
- Test Pattern testPattern() Test patterns for debugging and calibration
Chapter Two · 113 pages
FilterProcessors
One image in, one image out. The largest chapter, ranging from a single multiply to multi-pass optical simulation.
- Adjust adjust() Colorspace, hue/saturation, brightness/contrast
- Bloom bloom() Multi-pass bloom with bright-pass extraction and configurable glow
- Blur blur() Gaussian blur with separate X and Y radius controls
- Bulge bulge() Bulge distortion from center
- Cel Shading celShading() Cartoon-style shading with posterization and outlines
- Channel channel() Channel isolation (r, g, b, or a)
- Chroma chroma() Isolate specific hue range with feathering
- ChromaticAberration chromaticAberration() Color fringing effect simulating lens aberration
- Chrome chrome() Liquid-metal chrome: self-distorting oscillating tone curve over a blurred-luminance height field
- Clouds clouds() Cloud texture overlay
- Color Replace colorReplace() Color replacement with alpha output. Matches pixels near targetColor and remaps their RGB and/or alpha.
- Convolution Feedback convolutionFeedback() Convolution feedback with blur and sharpen
- Corrupt corrupt() Scanline-based data corruption
- Craquelure craquelure() Cracked-plaster groove network with carved relief shading over the image (Craquelure)
- CRT crt() CRT monitor simulation
- Degauss degauss() CRT degauss effect
- Deriv deriv() Derivative-based edge detection
- Directional Blur directionalBlur() Linear motion blur along a single direction (Motion Blur)
- Dither dither() Ordered dithering with classic patterns and palettes
- Edge edge() Edge detection filter
- Emboss emboss() Emboss relief with color convolution or opt-in gray directional edge tracing
- Extrude extrude() Break the image into 3D blocks or pyramids projecting toward the viewer (Extrude)
- Feedback feedback() Feedback loop with blend modes and transforms
- Fibers fibers() Chaotic fiber texture overlay
- FlipMirror flipMirror() Flip and mirror image transformations
- Fxaa fxaa() Fast approximate anti-aliasing
- Glowing Edge glowingEdge() Glowing edge detection
- Glyph Map glyphMap() ASCII/glyph art conversion using procedural glyphs
- Grade grade() Professional multi-stage color grading pipeline
- Grain grain() Film grain overlay
- Grime grime() Grunge/grime texture overlay
- Halftone halftone() Rotated-screen halftone reproduction with subtractive color rosettes or monochrome dot, line, and circle screens
- Hatch hatch() Hand-drawn sketch engine covering Graphic Pen, Charcoal, Chalk & Charcoal, Conte Crayon, Crosshatch, and Colored Pencil filters
- High Pass highPass() High-pass filter isolating edge detail as a flat mid-gray field
- Historic Palette historicPalette() Apply historical art color palettes
- Invert invert() Invert image luminance
- Lens lens() Barrel or pincushion lens distortion
- Lens Flare lensFlare() Additive lens flare with ghost chain, halo, and four lens types (Lens Flare)
- Lens Warp lensWarp() Noise-driven radial lens distortion
- Light Leak lightLeak() Film light leak overlay with colorful Voronoi regions
- Lighting lighting() Applies 3D lighting effects
- Low Poly lowPoly() Low-polygon style render using Voronoi cells
- Median median() Exact dense 3x3, 5x5, or 7x7 brightness-ranked median with Dust & Scratches threshold gate
- Morphology morphology() Grayscale morphology dilate/erode (Maximum/Minimum)
- Mosaic Tiles mosaicTiles() Wavy grouted ceramic tiles with beveled relief, or pixelized squares sampled from randomly offset sources with gap fill (Mosaic Tiles, Tiles)
- Motion Blur motionBlur() Simple motion blur via frame blending
- Normal Map normalMap() Normal map generation
- Normalize normalize() Value normalization
- Octave Warp octaveWarp() Per-octave noise warp distortion
- Oil Paint oilPaint() Painterly oil-paint effect covering Facet, Paint Daubs, Dry Brush, Fresco, Palette Knife, and Sponge modes over a sector-Kuwahara flattening core
- OSD osd() On-screen display overlay
- Outline outline() Outline/edge stroke
- Palette palette() Apply cosine color palettes based on luminance
- Parallax parallax() Pseudo-3D perspective shift from a height map
- Patchwork patchwork() Needlepoint grid of solid-color squares raised by luminance with lit bevel edges (Patchwork)
- Photocopy photocopy() Ink-on-paper via edge and tonal difference-of-Gaussians, like a bad photocopy
- Pinch pinch() Pinch distortion toward center
- PixelSort pixelSort() Pixel sorting glitch effect
- Pixels pixels() Pixelation effect for retro look
- Plastic Wrap plasticWrap() Glossy specular plastic film hugging image contours
- Polar polar() Polar and vortex coordinate transforms
- Pond Ripples pondRipples() Concentric ripple distortion around the image center
- Posterize posterize() Posterization/color reduction with gamma control
- PrismaticAberration prismaticAberration() Prismatic aberration with hue controls
- Reindex reindex() Palette reindexing
- Relief relief() Two-tone ink/paper relief carving: Bas Relief, Plaster, and Note Paper sketch renderings
- Repeat repeat() Tiling repeat
- Reverb reverb() Visual reverb/echo effect
- Ridge ridge() Ridge/crease enhancement
- Rotate rotate() Rotate image by specified angle
- Scale scale() Scale transform
- Scanline Error scanlineError() Scanline glitch effect/VHS tape artifacts
- Scatter scatter() Random per-pixel scatter with darken/lighten/anisotropic/clumped modes (Diffuse, Spatter)
- Scratches scratches() Film scratch overlay
- Scroll scroll() Scrolling offset animation
- Seamless seamless() Edge-blend cross-fade for seamless tiling
- Sharpen sharpen() Sharpen using convolution
- Simple Aberration simpleAberration() Chromatic aberration
- Sine sine() Sine wave color transform
- Skew skew() Skew and rotate transform
- Smooth smooth() Anti-aliasing with MSAA, SMAA, or edge-selective blur modes
- Smoothstep smoothstep() Smooth Hermite interpolation between edges
- Snow snow() TV snow/static noise
- Sobel sobel() Classic Sobel edge detection
- Spatter spatter() Paint spatter effect
- Spin Blur spinBlur() Rotational blur around a center point (Radial Blur, Spin mode)
- Spiral spiral() Spiral distortion
- Spooky Ticker spookyTicker() Scrolling pseudo-text ticker overlay
- Stamp stamp() Two-tone ink/paper stamp impression from a blurred-luminance threshold, with a torn-edge roughness knob
- Step step() Hard threshold at specified value
- Stipple stipple() Discrete random marks reproducing image tone: pointillize dots, mezzotint dots/lines/strokes, or reticulation (Pointillize, Mezzotint, Reticulation)
- Stray Hair strayHair() Stray hair overlay
- Strokes strokes() Directional brush-mark engine with angled, sprayed, dark, sumi-e, and smudge modes
- Temporal Chromatic Aberration temporalAberration() Chromatic aberration via per-channel temporal frame delay
- TetraColorArray tetraColorArray() Apply Tetra color array palettes based on luminance
- TetraCosine tetraCosine() Apply Tetra cosine palettes based on luminance
- Text text() Overlay text onto the image
- Texture texture() Procedural surface and material texture overlay
- Threshold threshold() Threshold/step function
- Tile tile() Symmetry-based kaleidoscope tiler
- Tint tint() Colorize input texture with a color overlay
- Translate translate() Translate image in X and Y
- Tunnel tunnel() Perspective tunnel effect with shape options
- Unsharp Mask unsharpMask() Classic unsharp mask sharpening with radius and threshold
- Vaseline vaseline() Vaseline lens blur effect
- Vignette vignette() Radial vignette darkening edges
- Warp warp() Perlin noise-based warp distortion
- Watercolor watercolor() Simplified color washes with pigment pooling at edges and paper granulation
- Waves waves() Sine wave distortion
- Wind wind() Soft directional streaks drawn from bright edges, with wind, blast, and stagger methods
- Wobble wobble() Wobble animation effect
- Wormhole wormhole() Luminance-driven scatter displacement field
- ZoomBlur zoomBlur() Radial blur emanating from center
Chapter Three · 15 pages
MixerTwo Sources
Effects that read a second surface alongside the pipeline, and decide how the two meet.
- Alpha Mask alphaMask() Alpha transparency blend
- Apply Mode applyMode() Apply brightness, hue, or saturation from source B to source A
- BlendMode blendMode() Blend two inputs using selectable blend mode
- CellSplit cellSplit() Split between inputs using Voronoi cell regions
- CenterMask centerMask() Blend from edges (A) into center (B) using a distance mask
- ChannelCombine channelCombine() Combine separate surface inputs into R, G, B channels
- Distortion distortion() Displace, reflect, and refract with two surfaces
- Focus Blur focusBlur() Focus blur using luminance depth map
- Mashup mashup() Posterize a control input by luminance and route each band to a different surface
- PatternMix patternMix() Mix inputs using geometric patterns
- Shadow shadow() Cast a shadow or glow from one input onto another
- ShapeMask shapeMask() Composite inputs inside and outside a geometric shape
- Split split() Split/wipe between two inputs
- ThresholdMix thresholdMix() Blend using threshold masking
- UvRemap uvRemap() Remap UVs of one input using color channels of another
Chapter Four · 10 pages
PointsAgents and Particles
State held in a texture and stepped every frame. Flocks, slime moulds, fluid, and life.
- Attractor attractor() Strange attractors: chaotic dynamic systems visualization
- Buddhabrot buddhabrot() Buddhabrot fractal via progressive orbit accumulation
- Dla dla() Diffusion-limited aggregation
- Flock flock() 2D "Boids" flocking agent simulation
- Flow flow() Agent-based luminosity flow field with behaviors
- Hydraulic hydraulic() Hydraulic erosion flow simulation (gradient descent)
- Lenia lenia() Particle Lenia artificial life simulation
- Life life() Type-based attraction/repulsion particle simulation
- Physarum physarum() Physarum slime mold simulation
- Physical physical() Physics-based particle simulation with wind and gravity forces
Chapter Five · 9 pages
RenderPipeline Machinery
The stages that move data between the pipeline’s domains: particles to pixels, volumes to images, loops back on themselves.
- LoopBegin loopBegin() Start accumulator loop, read from feedback buffer
- LoopEnd loopEnd() End accumulator loop, write back to feedback buffer
- Points Billboard Render pointsBillboardRender() Render particles as billboard sprites
- Points Emit pointsEmit() Initialize and maintain agent state for particle systems
- Points Render pointsRender() Blend agent trails with input for particle systems
- Render3D render3d() Universal 3D volume raymarcher
- RenderCubemap3D renderCubemap3d() Render a 3D volume into cubemap faces (lit isosurface/voxel)
- RenderCubemapSurface renderCubemapSurface() Sample a 3D volume into cubemap faces (raw true color, no lighting)
- RenderLit3D renderLit3d() Universal 3D volume raymarcher with advanced lighting
Chapter Six · 7 pages
Synth 3DVolumes
Generators that fill a 3D texture rather than a 2D one, then hand it to a renderer to be flattened.
- Cell3D cell3d() 3D cellular/Voronoi noise volume
- Cellular Automata 3D cellularAutomata3d() 3D cellular automata simulation
- Flythrough3D flythrough3d() 3D fractal flythrough with camera-relative volume
- Fractal3D fractal3d() 3D Mandelbulb/Mandelcube fractals
- Noise3D noise3d() 3D simplex noise volume
- Reaction-Diffusion 3D reactionDiffusion3d() 3D reaction-diffusion simulation
- Shape3D shape3d() 3D polyhedral shape generator
Chapter Seven · 2 pages
Filter 3DVolume Processors
Two effects that read a volume and write a volume, before anything is projected to the screen.