Playfield Foundations
Course outline · draft 1 · 2026-10-15

Playfield Foundations

One concept per short video, from "what is a pixel shader" to research papers. The Essentials pack comes first: the 28 ideas that most shaders and most Playfield graphs are built from. Each video lists what it covers, the real Playfield nodes it uses, a small thing to build, and which earlier videos it needs.

Essentials pack

Shape, colour, space, time, noise, then inputs and feedback. Someone who finishes these can rebuild most classic 2D shaders and most Playfield examples.

E1

What a fragment shader is

Understand that one small function runs for every pixel at once and returns a colour.

Covers
per-pixel parallelism; inputs in, colour out; no memory of neighbours or the last frame (yet); the Output node.
Nodes
Output, Color, Constant.
Build it
Fill the screen with one colour, then wire a Constant into the red channel and drag it.

Needs: none.

E2

UV and coordinates

Read and reshape the coordinate every pixel receives.

Covers
UV 0–1 vs centred −1..1; aspect correction; Pixel Coordinates vs UV; visualising UV as red/green.
Nodes
UV, Pixel UV, Pixel Coordinates, Resolution, Make Vec3, Split Vec2.
Build it
Show UV as a red-green gradient, centre it, fix the aspect, and confirm a circle later stays round.

Needs: E1.

E3

Floats, vectors and swizzles

Be comfortable with float/vec2/vec3 and moving components around.

Covers
component-wise maths; swizzles (.xy, .yx, .xxx); broadcasting; Make/Split nodes.
Nodes
Vec2/Vec3 Swizzle, Make Vec2/3/4, Split Vec2/3, Add, Multiply.
Build it
Swap x and y to mirror the gradient diagonally; build grey from one channel with .xxx.

Needs: E2.

E4

step and smoothstep: making edges

Turn a smooth value into a hard or soft edge on purpose.

Covers
step as a threshold; smoothstep edge0/edge1; band = smoothstep − smoothstep; edge softness vs blur.
Nodes
Step, Smoothstep, Subtract, Remap.
Build it
A vertical split screen, then a soft stripe band you can slide and widen.

Needs: E3.

E5

Remap, clamp and shaping curves

Control how a 0–1 value grows.

Covers
remap in-range to out-range; clamp; pow/exp curves; easing and sigmoid shapers; plotting a function.
Nodes
Remap, Clamp, Pow, Shape (shapers: Exp Ease, Logistic Sigmoid, Cubic Bezier), Oscilloscope.
Build it
Plot y = f(x) as a line and swap shapers to watch the curve and the gradient change together.

Needs: E4.

E6

length, distance and the circle

See a circle as "distance from a point compared to a radius".

Covers
length(uv − centre); distance as a field; thresholding into a disc; ring = abs(d) − w.
Nodes
Length, Subtract, Abs, Smoothstep, Circle SDF.
Build it
A soft disc, then a ring, then a glow from 1/d.

Needs: E4.

E7

Signed distance fields, the idea

Understand an SDF as a field (negative inside, zero on the edge, positive outside) and why that is powerful.

Covers
sign convention; viewing the field as contour bands; Fill vs Stroke vs Glow from one field; why exact distances matter.
Nodes
Circle SDF, Box SDF, SDF Fill, SDF Glow, Outline (distance), SDF Colorize.
Build it
Show one SDF four ways (fill, outline, glow, contour bands) from a single distance.
Read
iq 2D distance functions (Part 1 §3).

Needs: E6.

E8

More 2D shapes

Know the common 2D SDFs and how to place them.

Covers
box, rounded box, segment, ellipse, polygon/star; translate by subtracting; rounding = d − r; onion = abs(d) − t.
Nodes
Box SDF, Line Segment SDF, Ellipse SDF, Shape SDF, Ring SDF, Simple SDF.
Build it
A simple icon (rounded square with a line-segment "play" triangle) built from SDFs.

Needs: E7.

E9

Combining shapes: union, intersection, subtraction, smooth union

Build complex shapes from simple ones with min and max.

Covers
union = min; intersect = max; subtract = max(a, −b); smooth min and its k; metaballs as smooth union.
Nodes
Combine (Union/Intersect/Subtract/Smooth union), Metaballs 2D, Metaball Threshold.
Build it
Two circles that melt together as they approach (animated smooth union).

Needs: E8.

E10

Masking

Use one value to decide where another appears.

Covers
multiply as a mask; mix(a, b, mask); mask vs alpha; inverting a mask; masks from SDFs, noise or textures.
Nodes
Mask, Multiply, Mix, Invert, SDF Mask, Alpha Blend.
Build it
A gradient that shows only inside a circle, with a noise texture masked outside it.

Needs: E9.

E11

mix and blending colours

Blend colours and layers deliberately.

Covers
linear interpolation; blend modes (multiply, screen, add, overlay); premultiplied alpha "over"; why add makes glows.
Nodes
Mix, Add Colors, Blend Modes, Alpha Blend, Glow Layer.
Build it
A two-layer poster: background gradient, shape layer screened on top, glow added.
Read
Porter & Duff 1984; Alvy Ray Smith alpha memo (§4).

Needs: E10.

E12

Colour spaces: RGB, HSV and OkLab

Pick and blend colours in the right space.

Covers
RGB cube; HSV for hue rotation; gamma and sRGB; OkLab for even gradients.
Nodes
RGB ↔ HSV, Hue Rotate, OkLab Mix, Gradient, Levels.
Build it
The same two-colour gradient in RGB vs OkLab, side by side.

Needs: E11.

E13

Cosine palettes

Map any 0–1 value to rich colour with four vec3 parameters.

Covers
a + b·cos(2π(c·t + d)); what each parameter does; feeding distance, angle or noise as t; Stops Palette as the alternative.
Nodes
Palette, Stops Palette, Color Ramp.
Build it
Colour E7's contour field with a palette and animate d over time.
Read
iq palettes (§5).

Needs: E12.

E14

Time and animation

Make things move with time.

Covers
time as an input; speed scaling; sin(time) oscillation; LFO waveforms; BPM sync; looping cleanly with fract(time).
Nodes
Time, LFO, BPM Sync, Sin, Fract (scalar).
Build it
A circle that pulses with sin(time) and orbits with (cos t, sin t).

Needs: E6.

E15

sin and fract patterns: stripes, rings, waves

Make periodic patterns from sin and fract.

Covers
sin(x·freq) stripes; fract as a sawtooth; concentric rings from sin(length); moving waves with + time; antialiasing stripes.
Nodes
Sin, Fract (scalar), Modulo (Wrap), Length, Ripple / Wave, Wave Texture.
Build it
A "pond ripple": rings from sin(length·k − time), coloured with a palette.

Needs: E13, E14.

E16

Rotate, scale, translate (2D transforms)

Move the space, not the shape.

Covers
order of operations; rotation matrix; scaling coordinates shrinks the image; pivot points.
Nodes
Transform 2D, Rotate 2D, UV Transform 2D, Rotation Matrix, Mat2 × Vec2.
Build it
Rotate a box around its own centre and then around the screen centre, and see the difference.

Needs: E8, E14.

E17

Repetition and tiling (fract grids)

Draw once and repeat infinitely.

Covers
fract(uv·n) for cell UV; floor for cell ID; per-cell variation via hash(ID); limited and mirrored repetition; seam problems.
Nodes
Grid, Grid UV, Infinite Repeat, Limited Repeat, Mirrored Repeat, Tile, Cell Pattern.
Build it
A grid of circles where each cell has a random size and colour from its ID.

Needs: E16.

E18

Polar coordinates

Think in angle and radius.

Covers
atan to angle, length to radius; polar stripes, flowers and spirals; angular repetition; the seam at ±π.
Nodes
Polar Space, Angular Repeat, Vec2 → Angle, Spiral Field.
Build it
An animated flower: r < 0.3 + 0.1·sin(5θ + time).

Needs: E17.

E19

Kaleidoscopes and mirroring

Fold space to get symmetry for free.

Covers
abs() as a mirror; polar folding into N sectors; layering folds; Domain Fold.
Nodes
Kaleidoscope, Mirror 2D, Domain Fold, Angular Repeat.
Build it
Feed E15's pattern through an 8-fold kaleidoscope with slow rotation.

Needs: E18.

E20

Randomness: hash functions

Get deterministic "random" numbers from coordinates.

Covers
what a hash is; why fract(sin) is fragile; seeding by cell ID; white noise as a picture.
Nodes
Noise Float (Hash mode), Grid Hash, Expression Block.
Build it
A random-colour tiled grid (reuse E17) with a seed slider.
Read
Jarzynski & Olano 2020 (§7).

Needs: E17.

E21

Value and gradient noise

Understand smooth noise as interpolated randomness.

Covers
lattice plus interpolation (value noise); gradient (Perlin) noise; smooth vs linear interpolation; scale and offset; simplex in brief.
Nodes
Noise Float (Perlin / Value modes), Remap.
Build it
Animate noise by sliding its input with time, then threshold it into islands.
Read
Perlin 2002; Book of Shaders ch. 11.

Needs: E20.

E22

fBm: fractal noise

Stack octaves to get natural detail.

Covers
octaves, lacunarity and gain; ridged and turbulence variants; where detail costs performance.
Nodes
Fractal Noise (FBM), Turbulence.
Build it
A cloudy sky and a ridged "mountain range" silhouette from the same node.
Read
iq fBm.

Needs: E21.

E23

Domain warping

Feed noise into the coordinates of noise.

Covers
p + noise(p); recursive warping; curl warping for swirl without stretching; warping SDFs and images.
Nodes
Domain Warp, UV Warp (Curl/Smooth/Swirl), Swirl / Vortex, Displace.
Build it
iq's marble: two-level warped fBm coloured with a palette.
Read
iq Domain warping.

Needs: E22, E13.

E24

Voronoi and cellular patterns

Make cells, cracks and organic tilings.

Covers
nearest-feature distance (F1); F2 − F1 edges; cell IDs for colour; animated centres.
Nodes
Voronoi, Animated Cell Center, Neighbor Dist, Cell Filter.
Build it
Stained glass: Voronoi cells with random palette colours and dark borders.

Needs: E21.

E25

Textures, images and video as inputs

Bring outside pixels in and treat them like any other field.

Covers
sampling at UV; fit/fill/stretch; wrap modes; using brightness as a mask or displacement; video and webcam.
Nodes
Texture, Sample (texture), Luminance, Displace (texture), Mask (texture).
Build it
A webcam feed displaced by E23's warp and posterised.

Needs: E10, E23.

E26

Feedback and the previous frame

Let a shader remember: read last frame, change it slightly, write it back.

Covers
the feedback loop; fade/decay; offset + rotate + scale to get trails and zooms; blowing up vs decaying.
Nodes
Previous Frame (Feedback), Feedback (texture), Fade (feedback), Echo (After-image).
Build it
A mouse-drawn brush whose trail spirals inwards and fades.

Needs: E16, E25.

E27

Post effects: blur, glow and bloom

Finish a look with standard image passes.

Covers
why blur needs neighbours (the first multipass idea); Gaussian blur; threshold, blur and add to make bloom; tone mapping; grain and vignette.
Nodes
Gaussian Blur, Bloom, Glow (texture), Tone Map, Grain, Deep Glow.
Build it
Take an SDF neon sign from E7 to a cinematic glow with bloom and grain.

Needs: E26.

E28

Making it live: audio, mouse and MIDI as inputs

Drive any parameter from the outside world.

Covers
mouse UV; audio bands vs full spectrum; smoothing with Lag/Spring; MIDI CC mapping; envelope on beats.
Nodes
Mouse, Audio Input, MIDI Input, Lag, Spring, Envelope (ADSR), Sound kick.
Build it
E15's ripple whose speed follows the bass and whose palette shifts on kicks.

Needs: E14, E26.

Intermediate

Writing GLSL inline, antialiasing, groups and loops, fractals, then passes and the first simulations: ping-pong buffers, Life, reaction-diffusion, particles.

#TitleGoalCoversNodesBuild itPrereq
I1Expression Blocks: writing GLSL inlineDrop to code when nodes get clumsyinputs/outputs, types, comments, when to group insteadExpression Block, Custom FunctionRewrite E18's flower as one blockE28
I2Antialiasing with derivativesCrisp edges at any zoomfwidth/dFdx, pixel-width smoothstep, why stripes shimmerSmoothstep, AA Smooth, Expression BlockZoom-proof checkerboardE15, I1
I3Groups and reusable toolsPackage graphs as nodestyped group sockets, exposed sliders, presetsGroupMake a "neon SDF" group used three timesE27
I4Loops in a graphRepeat a step N timesFor Loop, Loop Carry, accumulating colour, cost per iterationFor Loop, Loop Index, Loop Carry, Accumulate Loop30 rotating rings accumulated into a tunnelI1
I5Escape-time fractalsMandelbrot/Julia as iterationcomplex multiply, escape radius, smooth iteration count, orbit trapsMandelbrot / Julia, Complex Mul, Newton FractalJulia set driven by the mouseI4, E13
I6Folding and IFS fractalsFractals by repeated fold, scale and offsetabs-fold, sphere inversion, ApollonianIFS Fractal, Spherical Fold Fractal, Apollonian Gasket, Circle InversionKaleidoscopic IFS snowflakeE19, I4
I7Truchet, hex and non-square tilingsTile beyond squaresTruchet random rotation, hex grids, staggered rowsTruchet Tiles, Grid Pattern, Hyperbolic SpaceEndless maze from Truchet arcsE17, E20
I8Distortion spacesBend images with known mapslens/barrel, fisheye, log-polar (Droste), MöbiusLens Distortion, Spherical / Fisheye, Log-Polar Space, Möbius TransformDroste zoom of a photoE18, E25
I9Flow and vector fieldsTreat a vec2 field as motioncurl noise, flow direction, advecting UVFlow Field, Curl noise, Vector Field, FlowInk streaks following curl noiseE23, E26
I102D lighting with SDFsLight flat scenespoint light falloff, normals from gradients, shadows by marching in 2DPoint Light 2D, Distance Falloff, Normal to ColorLamp lighting a 2D scene of shapesE9
I11Passes: rendering to a textureUnderstand render targetsPass node, resolution and format, reading a pass in another graphPass, Pass output, Read (texture)Blur a scene once, reuse it twiceE27
I12Ping-pong buffersState that evolves every frametwo targets that swap; float formats; resetsPass (feedback), Memory step/read, Previous FrameA heat map that diffuses each frameI11
I13Neighbour reads and convolutionKernels: blur, edge and Laplacian3×3 kernels, texel size, separable blurRead neighbours (texture), Neighbours, Edges (texture), SharpenSobel edge detector over webcamI12
I14Game of Life and Life-like rulesDiscrete cellular automatabirth/survival rules, B3/S23 notation, seedingGrid Rules, Grid PaintPaintable Life with a rule pickerI13
I15Reaction-diffusion (Gray–Scott)Continuous chemical patternstwo chemicals, Laplacian, feed/kill map, colouringGray-Scott step, Reaction-diffusion example, Grid RulesCoral that grows from your brushI14
I16Memory and signal nodesValues that persist on the CPU sideintegrate, sample & hold, counters, springs, timersMemory, Counter, Integrate, Sample & Hold, Timer, SpringBouncing ball with real velocityE28
I17Audio analysis done rightBeat-aware visualsFFT bins and log bands, smoothing, onset detection, dBAudio Input, Analyze, Envelope (ADSR), BPM SyncA spectrum ring plus kick-triggered flashE28, I16
I18ParticlesMany points with position and velocityemit, age/life, forces, drawing as spritesParticles, Emit, Age / Life, Gravity, Wind, Attract / RepelFountain shaped by mouse attractI12, I16
I19Waves and Chladni patternsStanding waves and modessuperposition, nodal lines, (m, n) modes, sand-on-plate lookChladni Plate, Chladni Superposition, Wave Term, Lissajous CurveAudio-driven Chladni plateE15, I17
I20Text and data as inputsUse text and data as fieldstext SDF/raster, data textures, CSV values to uniformsText, Data, Data TextureKinetic type warped by noiseE25
I21Glass, refraction and dispersion in 2DFake optics cheaplyrefract(), IOR, chromatic split, FresnelChromatic Aberration, Spectral Dispersion, Fresnel (Schlick), Gravitational LensGlass lens over a photoI8
I22Performance basicsKnow what costs timeper-pixel cost × pixels × passes, loop counts, texture fetches, resolution scaling, profilingCache, Pass resolution optionsMake a heavy graph 3× faster without visible changeI12

Advanced

Three tracks: 3D (A1–A10: rays to fractals), simulation (A11–A17: GI, jump flooding, fluids, boids, slime mould), and live inputs (A18–A22: time, optical flow, tracking, splats, profiling).

#TitleGoalCoversNodesBuild itPrereq
A1Rays and camerasTurn each pixel into a 3D rayray origin/direction, FOV, look-at cameraRaymarch 3D (camera)Ray directions shown as coloursE3, E16
A2Sphere tracingMarch along a ray using the SDFstep by distance, hit/miss, max steps/distance, LipschitzRaymarch 3D, Raymarch SpheresSilhouette of one sphereA1, E7
A33D SDF primitives and operatorsModel with distancesbox/torus/capsule, smooth union, onion, elongateBox SDF 3D, Capsule SDF 3D, Smooth unionA toy robot from primitivesA2, E9
A4Normals and basic lightingShade the hit pointgradient normals (central differences / tetrahedron), Lambert, Blinn-PhongNormal, Blinn-Phong, Multi-LightLit still lifeA3
A5Shadows and ambient occlusionGrounded, believable scenessoft shadows (k·h/t), SDF AO, sky/bounce fillSoft Shadow, SDF Ambient Occlusioniq outdoor rig on the robotA4
A63D domain operationsRepeat, fold and twist 3D spacerepeat 3D, mirror fold, bend/twist, 3D warpRepeat 3D, Mirror Fold 3D, Bend 3D, 3D Domain Warp, Helix Warp 3DInfinite corridor of columnsA3, E17
A7Materials and PBRPhysically based shadingalbedo/roughness/metal, GGX, Schlick, energy conservationMaterial Select, Fresnel 3D, Glass 3DMaterial swatch boardA5
A8Fog, volumes and cloudsRender participating mediaexponential fog, volume marching, phase functionsVolumetric Fog, Volume Clouds, Phase (HG)Sunset clouds over the corridorA5, E22
A93D fractalsDistance-estimated fractalsMandelbulb DE, Menger, KIFS, orbit-trap colouringMandelbulb 3D, Menger Sponge, Kaleidoscope 3DMandelbulb fly-throughA6, I6
A10Depth, focus and lensCinematic cameradepth output, depth of field, bokeh, depth compositingDepth, Depth of Field, Depth Composite, Lens Blur2D graphics composited into a 3D scene by depthA5, I11
A11Global illumination liteLight bouncing cheaplyradiance cascades 2D, bounce colour, GI switchRadiance Cascades 2D, Repeat Scene2D scene lit only by emissive shapesI10, I12
A12Jump flooding and distance transformsSDFs from arbitrary imagesJFA passes, Voronoi from seeds, outlines of masksJump flood (texture)Neon outline around a segmented personI12, E24
A13Fluids I: advectionMove a field along velocitysemi-Lagrangian advection, dye, dissipationFlow (texture), Pass (ping-pong)Dye swirling in a fixed curl fieldI12, I9
A14Fluids II: pressure projectionIncompressible flowdivergence, Jacobi pressure solve, gradient subtract, vorticity confinementPass chain, Expression BlockStam/Harris smoke you push with the mouseA13
A15BoidsFlocking from three rulesseparation, alignment, cohesion, neighbour search on GPUAgents, Boids/Flock, Neighbours, SteerFlock that avoids the cursorI18
A16Physarum / slime mouldAgents that read and write a trail mapsense-rotate-move-deposit, diffuse and decay, parameter regimesSlime mold (preset), Sense, Deposit, Trail field, MoveSlime network that connects food dots from an imageA15, I15
A17GPU particles at scaleMillions of particlesstate in textures, scatter vs gather, sorting/blending costsParticles (GPU), Scatter, Collide1M particles in a curl-noise fieldI18, I22
A18Time Cube and frame stacksTime as a dimensionstoring N frames, slit-scan, time displacementTime Cube, Frame Stack, Time SliceSlit-scan webcam mirrorI12, E25
A19Optical flowMeasure motion between framesbrightness constancy, Lucas–Kanade, dense flow, using flow to advectOptical Flow, Optical Flow step/read, Motion (texture)Your movement smears paint across the screenI13, A13
A20Tracking and segmentation inputsBodies and objects as dataMediaPipe hands/landmarks, blob tracking, segmentation masks, latencySegment, Blob Track, Mask (texture), MIDI/hand inputsParticles that spawn from your hand outlineE10, A17
A21Gaussian splats in practiceRender captured sceneswhat a splat is (mean, covariance, SH colour), sorting, modifiersSplat Scene, Splat Points, Splat Explode, Splat WaveSplat scan that dissolves to audioA10, I17
A22Profiling and optimisationSystematic speed-upsbound by ALU/texture/bandwidth, divergence, bounding volumes, half-res passesCache, Pass resolution, Bounded optionsOptimise A14 to 60 fps at 4KI22, A14

Research

The theory under the tools: sampling, the rendering equation, PDE stability, learned CA, modern vision models, Gaussian splatting, neural fields, differentiable rendering.

#TitleGoalCoversPlayfield linkBuild it / readPrereq
R1Sampling theory for shader artistsWhy aliasing happensNyquist, filtering procedurals, box vs Gaussian filters, supersamplingI2 revisitedAnalytically filtered checkerboard vs 16× SSAAI2
R2The rendering equationThe theory behind all lightingradiance, BRDF, Monte Carlo integration, importance samplingA7Path-trace a Cornell box in an Expression Block (PBR book)A7
R3SDF theoryWhat makes a "correct" SDFLipschitz bounds, exact vs bound, the cost of non-Euclidean warpsA6Measure step counts with and without a corrected boundA6
R4PDE simulation on gridsStability and accuracyCFL, explicit vs implicit, Laplacian stencils, boundary conditionsI15, A14Make Gray–Scott unconditionally stableA14
R5Advanced fluidsBeyond StamMAC grids, FLIP/PIC, MacCormack advection, multigrid pressureA14Implement MacCormack and compare detail (Bridson notes)R4
R6Continuous and learned CAFrom Life to Lenia to Neural CAkernel convolution CA, growth functions, NCA trainingI14, I15A Lenia creature in a Pass graphI15, R4
R7Collective behaviour and emergenceAgent models as scienceVicsek model, Physarum as Steiner trees, parameter-space mappingA15, A16Reproduce a Jones 2010 pattern mapA16
R8Wave physics and modal analysisReal vibrationwave equation on a grid, eigenmodes, Chladni from simulationI19Simulate a plate and compare with analytic modesI19, R4
R9Modern optical flow and trackingLearned visionRAFT, correlation volumes, temporal consistencyA19Compare Farnebäck vs RAFT flow on the same clipA19
R10Segmentation foundation modelsPromptable segmentationSAM/SAM 2 architecture, prompts, video memoryA20Click-to-mask a video and propagate itA20
R11Gaussian splatting, the paperHow 3DGS trains and rendersdifferentiable rasterisation, densify/prune, EWA projection, anti-aliasing (Mip-Splatting)A21Read Kerbl 2023 + Zwicker 2002; derive the 2D covarianceA21, R2
R12Neural fieldsNetworks as continuous functionsNeRF, positional/Fourier encoding, SIREN, hash gridsTies back to E15 sin and E20 hashingFit a tiny MLP to an image and evaluate it in a shaderR1
R13Differentiable renderingGradients through the rendereredge sampling, inverse rendering, optimising shader params from a target imageEvery slider is a parameterFit a cosine palette (E13) to a photo by gradient descentR2, R12
R14Neural SDFs and generative 3DLearned geometryDeepSDF, neural SDF raymarching, text-to-3D via splats (DreamGaussian)A2, A21Raymarch a small neural SDF exported as GLSL weightsR12, R11

Reading list

Two to five foundational sources per concept: the original paper where it is readable, and the article people actually learn from. Free copies are preferred.

checked link opened on 2026-10-15 check by hand the site refuses automated requests or is paywalled; hover for details

1Maths and coordinate foundations (vectors, dot, matrices, transforms)

  • Essence of Linear AlgebraGrant Sanderson (3Blue1Brown), 2016

    Shows vectors, dot products and matrices as geometry. That is the model shader writers need.

  • Immersive Linear AlgebraJ. Ström, K. Åström, T. Akenine-Möller, 2015

    A free interactive textbook from graphics researchers. Every figure can be manipulated.

  • 3D Math Primer for Graphics and Game DevelopmentF. Dunn & I. Parberry, 2nd ed. 2011 (free online)

    The standard graphics-maths reference: rotations, matrices, coordinate spaces.

2Shaping functions (step, smoothstep, easing, remapping)

  • The Book of Shaders, ch. 5 "Shaping Functions"P. Gonzalez Vivo & J. Lowe, 2015–

    The usual first lesson in thinking with 1D functions such as step, smoothstep, pow and sin.

  • Useful little functionsInigo Quilez

    A canonical list of shaping curves: almostIdentity, impulse, cubicPulse, gain, parabola.

3SDFs and 2D shape

  • 2D distance functionsInigo Quilez

    The reference catalogue of exact 2D SDFs that most shader code copies from.

  • Smooth minimumInigo Quilez

    The main source for smooth unions and the polynomial and exponential smin variants.

  • The Book of Shaders, ch. 7 "Shapes"Gonzalez Vivo & Lowe

    A beginner path from circles to distance fields and polar shapes.

4Masking and compositing (mix, alpha, premultiplication)

5Colour and palettes

  • Palettes (cosine palettes)Inigo Quilez

    The a + b·cos(2π(c·t + d)) palette behind Playfield's Palette node.

  • A perceptual color space for image processing (Oklab)Björn Ottosson, 2020

    Explains why gradients look muddy in RGB and how OkLab Mix fixes it.

  • The Book of Shaders, ch. 6 "Colors"Gonzalez Vivo & Lowe

    Covers mixing, HSB and gradients for beginners.

6Space / UV transforms (polar, kaleidoscope, repetition, tiling)

  • The Book of Shaders, ch. 9 "Patterns"Gonzalez Vivo & Lowe

    Teaches fract() tiling, cell IDs and offset grids.

  • Domain repetitionInigo Quilez

    Covers correct infinite, limited, mirrored and angular repetition, including the neighbour-cell pitfalls.

  • hg_sdf (Mercury SDF library)Mercury demogroup, 2015–

    A well-commented library of domain operators (pMod, pModPolar, pMirror) used across the demoscene.

7Noise and hashing

8fBm, domain warping, Voronoi / cellular

9Fractals (escape-time, IFS, folding)

10Raymarching and 3D SDFs

11Lighting and PBR

12Textures and sampling (filtering, mipmaps, aliasing)

  • WebGL2 FundamentalsGregg Tavares

    A practical explanation of textures, filtering, wrap modes and framebuffers in Playfield's own API.

  • Filtering proceduralsInigo Quilez

    Covers antialiasing procedural patterns with derivatives (fwidth / dFdx).

  • Better texture filteringInigo Quilez

    Explains how hardware bilinear works and a cheap smooth upgrade.

13Passes, feedback and ping-pong buffers

14Grid simulations: cellular automata, reaction-diffusion

15Fluids

16Agents: boids, Physarum, GPU particles

  • Flocks, Herds, and Schools: A Distributed Behavioral ModelCraig Reynolds, SIGGRAPH 1987

    The origin of separation, alignment and cohesion.

  • Characteristics of Pattern Formation and Evolution in Approximations of Physarum Transport NetworksJeff Jones, Artificial Life 16(2), 2010

    The sense-rotate-move-deposit-diffuse-decay agent model behind every slime-mould shader.

  • Physarum (essay + images)Sage Jenson, 2019

    The artist-facing explanation of Jones's model that popularised it in shaders.

  • The Nature of Code, "Autonomous Agents"Daniel Shiffman, 2024

    Covers steering behaviours (seek, flee, flow-field following) with clear vector maths.

17Waves, Chladni, interference, Fourier

  • Chladni plate patternsPaul Bourke

    Gives the cos(nπx)cos(mπy) ± cos(mπx)cos(nπy) formulas behind the Chladni nodes.

  • Ripple Tank (interactive)Paul Falstad

    An interactive way to see interference, diffraction and standing waves.

  • But what is a Fourier series?Grant Sanderson (3Blue1Brown), 2019

    Builds intuition for "sums of sines", which waves, audio spectra and noise all rely on.

18Audio-reactive

  • Web Audio API (W3C spec)W3C Audio WG

    The authoritative source on AnalyserNode FFT size, smoothingTimeConstant and dB ranges.

  • MDN: AnalyserNodeMozilla

    The practical how-to for getByteFrequencyData, which feeds Playfield's Audio Input.

  • The Scientist and Engineer's Guide to Digital Signal ProcessingSteven W. Smith, 1997 (free)

    A free, readable DSP text covering FFT, windows, filters and envelopes (beat detection follows from these).

19Computer-vision inputs (tracking, segmentation, optical flow)

20Gaussian splats

21Performance and optimisation of shaders

22Neural fields and differentiable rendering (research tier)

  • NeRFB. Mildenhall et al., ECCV 2020

    Radiance fields learned from photos. Gaussian splatting reacted to this.

  • Fourier Features Let Networks Learn High Frequency FunctionsM. Tancik et al., NeurIPS 2020

    Explains why coordinates need sin/cos encoding, which ties back to the course's sin videos.

  • Instant Neural Graphics Primitives (multiresolution hash encoding)T. Müller et al., SIGGRAPH 2022

    Hash grids, a learned relative of noise lattices, made neural fields real-time.

  • Differentiable Monte Carlo Ray Tracing through Edge SamplingT.-M. Li et al., SIGGRAPH Asia 2018

    The foundation of gradient-based inverse rendering. Toolkit: Mitsuba 3, mitsuba.readthedocs.io/en/stable checked

  • SIREN / DeepSDFSitzmann et al. 2020; Park et al. 2019

    Neural SDFs: the network learns the same distance function the course writes by hand.

Production notes