Further Reading
External references, writing and tools for WebGL, GLSL and generative art, checked and updated from the workshop's own reading list.
Links collected from the workshop’s further reading list, checked and with the dead ones replaced.
Where This Fits
External material only — nothing is explained here. Every link was fetched and resolved at the time of writing, and the two that had rotted since the workshop are noted where they appear.
Shaders and GLSL
- The Book of Shaders — Patricio Gonzalez Vivo and Jen Lowe. The standard introduction. Each chapter has an editor beside the text, so read it at a machine rather than on paper.
- Shaderific GLSL reference — types, qualifiers and built-in function signatures in one page
- Lesson: GLSL Shader Basics — a short runnable lesson
- Lesson: Custom Shaders in Three.js — the same, applied to a rendering engine
Three.js
- Documentation — the API reference
- Manual — longer prose explanations, better for learning than the reference
- Examples — several hundred demos, each with source
- Editor — a scene editor in the browser, useful for checking an idea before writing it
Maths
- Linear Interpolation — Matt DesLauriers on
lerp, which is the single most useful function in this whole area - math-as-code — mathematical notation with the equivalent code beside it. Worth having open when reading graphics papers.
Generative Art
- Generative Artistry — tutorials that rebuild well-known generative pieces step by step
- Anders Hoff — writing on generative systems, more essay than tutorial
- Tyler Hobbs — writing on generative art and its aesthetics
- Matt DesLauriers — writing on creative coding, by the author of the workshop these notes come from
Collections
- awesome-creative-coding — a large curated list across languages and tools
- graphics-resources — papers and study material, more academic
- stack.gl packages — the modular WebGL ecosystem that glslify came out of
Modules
GLSL modules, usable through glslify:
- glsl-noise — simplex and Perlin noise
- glsl-random — pseudo-random values
- glsl-aastep — anti-aliased
step() - glsl-hsl2rgb — HSL to RGB conversion
- glsl-dither — ordered dithering
JavaScript modules that come up repeatedly in generative work:
- canvas-sketch-util — randomness, maths, geometry and colour helpers
- eases — the standard easing functions
- riso-colors — Risograph ink palettes
- nice-color-palettes — a thousand palettes, for when picking colours by hand stalls a piece
- chromotome — hand-picked palettes, more curated than the above
- pack-spheres — sphere packing, for filling a volume without overlaps
- load-asset — loading images and other assets with async/await
Tools
- cubic-bezier.com — a curve editor, paired with bezier-easing to use the result in code
The Workshop Itself
- WebGL & GLSL — A Primer — the interactive guidebook. The demos are the reason to visit; they carry material that does not survive as text.
- Workshop repository — guides, code snippets and the demo sketches
- Advanced Creative Coding: WebGL and Shaders — the Frontend Masters course the guidebook accompanies
Communities
The workshop’s creative-dev Slack invite no longer resolves — it was hosted on a Heroku free dyno, and those were shut down in November 2022. The hashtags it also listed, #plottertwitter, #generative and #webgl, are still in use, now spread across Mastodon and Bluesky as well as X.
See Also
- WebGL and Shaders — how these topics fit together
- Shader Modules and Reuse — installing the GLSL modules above
- canvas-sketch Workflow — the harness most of this material assumes
Source: WebGL & GLSL — A Primer by Matt DesLauriers