Skip to main content
DOMAIN 04

Creative Code & Generative Systems

p5.js, GLSL, Three.js, TouchDesigner - build living visual systems, not static files, and prove each one with a running artifact.

25 skills 55 activities 30 free resources levels 3 → 9

0 of 25 skills marked done · saved on this device

Where do I start?

Start where the work stops being trivial and stops being impossible. That's your tier — jump in below.

Foundation tier

Know it, name it, reproduce it. Lowest cognitive load - worked examples first.

L3 · Basic Application 4 activities

Creative Coding Foundations (Processing)

First visible artifact - the on-ramp that makes coordinate space, loops, state, and randomness real instead of abstract.

Walk away with: Public p5.js editor link + a notes block naming what setup vs draw do and where the origin (...

Recreate the official p5.js 'Get Started' bouncing/animated sketch in the web editor, then annotate every line with a comment explaining setup(), draw(), and the coordinate system.

Exercise constraints

Free p5.js Web Editor only; under 40 lines; no copy-paste without a comment per block.

You walk away with

Public p5.js editor link + a notes block naming what setup vs draw do and where the origin (0,0) sits.

Follow one Coding Train beginner video (e.g. mouse interaction or simple motion) and rebuild it from scratch without scrubbing back, then write 3 sentences on what broke.

Exercise constraints

Time-box 45 min; rebuild from memory after one watch-through; free tools only.

You walk away with

Working sketch + a short 'what broke and how I fixed it' debugging log.

Build a generative poster sketch: a 1080x1350 canvas using shapes, a color palette, and randomness seeded so it is reproducible. Export 3 stills.

Exercise constraints

One fixed random seed for reproducibility; 3-5 tunable parameters at the top of the file; export PNG.

You walk away with

3 exported stills + the sketch with a parameter block and the seed documented.

Port the same poster sketch to Processing (Java mode) to feel the difference between p5.js and Processing, and note one thing each does better.

Exercise constraints

Free Processing IDE; keep visual output equivalent; under 60 lines.

You walk away with

Processing .pde file + side-by-side screenshot vs the p5.js version + a 2-line comparison note.

Working tier

Apply it to your own project without a guide; debug under constraint.

L4 · Real-World Use 3 activities

Algorithmic Drawing (Generative Art)

Loops, randomness, and math become a visual language - the leap from drawing-by-hand to systems that draw for you.

Walk away with: Exported still/GIF + a param table showing 3 distinct looks from the same code.

Build a flow-field sketch: thousands of particles steered by Perlin noise, leaving trails. Recreate the Coding Train flow-field study, then change the noise scale and step size and observe.

Exercise constraints

p5.js; expose noiseScale, particleCount, and stepLength as top-of-file params; free tools.

You walk away with

Exported still/GIF + a param table showing 3 distinct looks from the same code.

Design an original generative grid/tiling system (e.g. Truchet tiles or recursive subdivision) that produces a different composition on each run, with deliberate aesthetic intent stated up front.

Exercise constraints

Original (not a tutorial copy); write a one-paragraph artistic-intent statement before coding; reproducible via seed.

You walk away with

Original artifact + decision log: intent statement, the rules you chose, and what you rejected.

Publish the generative system to OpenProcessing with the code public, then write the rule-set as a short 'how this works' so another person could reproduce variants.

Exercise constraints

Code must be forkable; explanation under 200 words; free hosting only.

You walk away with

Public OpenProcessing link with forkable source + a reproducible rule-set writeup.

L5 · Solid Control 3 activities

Generative Text & Language Art

Rule-based and model-driven text systems - poetry bots and narrative generators built on grammars, not vibes.

Walk away with: Repo/sketch with grammar file + 10 distinct generated outputs pasted into the readme.

Build a context-free-grammar text generator (Tracery-style): define rules in JSON and expand them into generated poems or quips, with at least 3 nested rule levels.

Exercise constraints

Pure JS/p5.js, no external LLM; grammar in a separate data file; reproducible from a seed.

You walk away with

Repo/sketch with grammar file + 10 distinct generated outputs pasted into the readme.

Repair a brittle generator: take a grammar that produces grammatically broken or repetitive output and fix article/plural agreement and add weighted rule selection.

Exercise constraints

Document the before/after failure cases; keep changes minimal and explained.

You walk away with

Before/after output samples + notes on the 3 specific failures you fixed.

Add an evaluation pass: write a simple filter/scorer that rejects low-quality outputs (too short, repeated tokens) so the bot only surfaces its best lines - treating quality as a system, not luck.

Exercise constraints

Define explicit accept/reject criteria; no manual cherry-picking of outputs.

You walk away with

Scorer code + a log showing rejected vs accepted samples and the criteria.

L5 · Solid Control 3 activities

Generative Typography & Text Art

Type as a programmable material - point manipulation, text-on-path, and procedural letterforms.

Walk away with: Animated sketch + exported GIF showing the dissolve/reform cycle.

Use p5.js textToPoints() to convert a word into points, then displace/animate those points with noise so the letterform dissolves and reforms.

Exercise constraints

Load a free/open font; keep word legible at rest; expose displacement amount as a param.

You walk away with

Animated sketch + exported GIF showing the dissolve/reform cycle.

Build a procedural poster layout system: feed in a headline + body string and have code lay out type on a grid with generative color/scale variation, producing 5 unique posters from one input.

Exercise constraints

Original layout logic; 1080x1350; reproducible via seed; free tools.

You walk away with

5 exported posters + a decision log on the layout rules and constraints.

Repair a kerning/overflow bug: take a generative type sketch where long strings overflow the canvas and fix wrapping + auto-fit sizing under constraint.

Exercise constraints

Test with 3 string lengths (short/medium/long); document the fix.

You walk away with

Before/after screenshots at all 3 lengths + notes on the wrapping logic.

L5 · Solid Control 3 activities

Node-Based Visual Programming (TouchDesigner)

Wire complex realtime systems with little typed code - the installation/VJ workhorse for rapid multimedia prototyping.

Walk away with: Saved .toe file + a screenshot of the labeled node network + a screen-capture of the output.

Install TouchDesigner (free non-commercial) and build the canonical first network: a Noise TOP feeding a Transform and a Level, animated by an LFO CHOP, output full-screen.

Exercise constraints

Free non-commercial license; follow the official docs/curriculum; keep the network tidy and labeled.

You walk away with

Saved .toe file + a screenshot of the labeled node network + a screen-capture of the output.

Build an audio-reactive patch: route an Audio Device In CHOP through an Audio Spectrum CHOP to drive a visual parameter, so the visuals move with the music.

Exercise constraints

Map at least 2 audio bands to 2 distinct visual params; document the mapping intent.

You walk away with

Demo video with audible audio + a mapping worksheet (which band drives what and why).

Debug and optimize a laggy network: profile a patch that drops frames, find the expensive operator, and cut cook cost (resolution, selective cooking) to hit 60fps.

Exercise constraints

Record FPS before/after; change one thing at a time and log impact.

You walk away with

Before/after FPS readout + a notes list of each optimization and its effect.

L5 · Solid Control 3 activities

Physical Computing (Microcontrollers)

Code meets the physical world - sensors in, lights/motors out, the basis of every interactive object.

Walk away with: Photo of the circuit + the sketch + a short clip of the LED responding to the sensor.

Wire and program a potentiometer (or photoresistor) to control an LED's brightness via PWM on an Arduino, reading the sensor over Serial.

Exercise constraints

Use the official Arduino docs; breadboard only; print sensor values to Serial Monitor.

You walk away with

Photo of the circuit + the sketch + a short clip of the LED responding to the sensor.

Bridge hardware to visuals: send sensor values from Arduino over Serial into a p5.js sketch (Web Serial) so a physical knob drives an on-screen generative parameter.

Exercise constraints

Free tools; handle the case where the port is disconnected without crashing.

You walk away with

Demo video of the knob driving the sketch + code for both sides + a note on the disconnect handling.

Repair a noisy/flickering sensor reading: add debouncing/smoothing (moving average) and document the before/after stability.

Exercise constraints

Compare raw vs smoothed on the same Serial plot; keep latency acceptable.

You walk away with

Serial-plot screenshots raw vs smoothed + notes on the filter and latency tradeoff.

L5 · Solid Control 3 activities

Web Creative Coding (WebGL & JS)

Ship art that runs anywhere with a URL - no install, the most shareable creative-code surface.

Walk away with: Deployed page (free static host) + the commented source showing the shader pipeline.

Work through MDN's WebGL tutorial to draw and animate a colored, rotating 2D shape in raw WebGL (no library), understanding the vertex+fragment shader handshake.

Exercise constraints

Raw WebGL via MDN; no Three.js; comment the shader-attribute wiring.

You walk away with

Deployed page (free static host) + the commented source showing the shader pipeline.

Read the 'WebGPU in production' issue, then port one small WebGL effect to a WebGPU/WGSL equivalent (or run the MDN WebGPU compute sample), noting where the APIs differ.

Exercise constraints

Acknowledge WebGPU is the emerging path; gate behind a WebGL2 fallback; free tools.

You walk away with

Deployed page that runs WebGPU when available and falls back to WebGL + a short API-difference note.

Repair a resize/aspect-ratio bug: take a WebGL canvas sketch that stretches on window resize and fix the viewport + projection so it stays correct across sizes.

Exercise constraints

Test at 3 aspect ratios incl. mobile portrait; no library to mask the bug.

You walk away with

Before/after screenshots at 3 sizes + notes on the viewport/projection fix.

Advanced tier

Teach it, template it, ship it under real constraints.

L6 · Advanced Control 2 activities

Computer Vision for Interactive Art

Turn a camera into an input device - faces, bodies, and gestures driving art in installations and performance.

Walk away with: Demo video + sketch source + the privacy/consent note for an installation context.

Build a webcam motion-detector in p5.js: compare consecutive frames (pixel diff) and trigger a visual response where motion is detected, with a tunable threshold.

Exercise constraints

Free, browser-only; explicit privacy note (camera stays local); expose threshold as a param.

You walk away with

Demo video + sketch source + the privacy/consent note for an installation context.

Use a free body/hand-pose model (e.g. ml5.js / MediaPipe in-browser) to drive a visual: a tracked hand position moves a generative element on screen.

Exercise constraints

Free in-browser model; handle no-detection gracefully; document latency.

You walk away with

Demo video showing tracking + a checklist others can reuse to calibrate it.

L6 · Advanced Control 3 activities

Data Visualization Programming

Translate datasets into honest, aesthetic visuals - clarity and craft, not chart-junk.

Walk away with: Deployed page + linked dataset source + a note on the scale/encoding choices.

Build a custom interactive chart in D3.js from a real open dataset (CSV/JSON): bind data to SVG, add axes/scales, and a hover tooltip.

Exercise constraints

Use D3 v7 from d3js.org; real data with a cited source; chart must read correctly without color alone.

You walk away with

Deployed page + linked dataset source + a note on the scale/encoding choices.

Write a reusable, documented chart component/template (e.g. a configurable bar or line module) so a non-author can drop in new data and get a correct chart.

Exercise constraints

Templatize config (margins, accessors); include a README with a worked example.

You walk away with

Forkable repo with the reusable module + README + 2 different datasets rendered from it.

Repair a misleading chart: take a viz with a truncated y-axis or bad aggregation, fix the distortion, and write up why the original misled.

Exercise constraints

Keep the same dataset; document the specific distortion and the fix.

You walk away with

Before/after charts + a short integrity note explaining the correction.

L6 · Advanced Control 2 activities

Game Engine Scripting for Art

Use Unity/Unreal as an art tool - scripting expressive, non-gameplay experiences with real-time rendering.

Walk away with: Built/playable scene (or capture) + the script + a note on the artistic intent.

In a free Unity (or Godot) project, script a generative behavior: spawn objects via code that drift/respond to time, forming an evolving non-gameplay scene.

Exercise constraints

Free personal/edition license; behavior driven by script, not just the editor; keep scope to one scene.

You walk away with

Built/playable scene (or capture) + the script + a note on the artistic intent.

Document a reusable interaction template: a small script + setup steps another artist could drop into a fresh project to get the same effect.

Exercise constraints

Engine-version noted; steps verified on a clean project; free tools.

You walk away with

Repo/gist with the script + a step-by-step setup checklist + a screenshot of it working.

L6 · Advanced Control 3 activities

Interactive 3D Graphics (OpenGL/Three.js)

Code navigable 3D scenes - transforms, cameras, lights, and input, the backbone of web 3D.

Walk away with: Deployed interactive scene + commented source.

Follow the Three.js manual to build your first scene: a lit, textured rotating mesh with OrbitControls so the user can navigate.

Exercise constraints

Use the official manual/docs; free static host; comment the scene/camera/renderer setup.

You walk away with

Deployed interactive scene + commented source.

Build an original interactive 3D artifact: instanced geometry (hundreds+ objects) arranged by an algorithm, with a custom material and mouse-driven camera.

Exercise constraints

Use InstancedMesh for perf; original composition; keep a stable framerate on a laptop.

You walk away with

Deployed scene + decision log: layout algorithm, why instancing, perf notes.

Make it teachable: write a short tutorial + starter file that takes someone from empty page to your scene's core technique in under 20 minutes.

Exercise constraints

Starter file forkable; tutorial tested on someone unfamiliar (or self-test cold).

You walk away with

Forkable starter repo + the written tutorial.

L6 · Advanced Control 2 activities

Networked Art & IoT Projects

Connect devices and remote participants into one artwork - art that lives across a network.

Walk away with: Deployed multi-client demo + a clip of two windows syncing + a note on the reconnect logic.

Build a shared-canvas web app: two browsers connect over WebSocket (free tier) and both see each other's strokes/parameters live.

Exercise constraints

Free hosting/WS tier; handle reconnect; cap message rate to avoid flooding.

You walk away with

Deployed multi-client demo + a clip of two windows syncing + a note on the reconnect logic.

Connect a microcontroller to the network: have an ESP32/Arduino publish a sensor value to a free broker (MQTT) that a web visual subscribes to.

Exercise constraints

Free broker; document the topic schema; fail safe if the broker is unreachable.

You walk away with

Diagram of the topology + demo video + the topic/schema doc.

L6 · Advanced Control 2 activities

Parametric Design (Algorithmic CAD)

Drive geometry by parameters and rules - the computational-design mindset for adjustable, generative form.

Walk away with: Saved .blend + a screenshot of the node graph + 3 renders from different parameter sets.

Model a parametric form in Blender Geometry Nodes (free): a structure whose count/spacing/twist are driven by node parameters, so sliders reshape it.

Exercise constraints

Free Blender; at least 3 exposed parameters; document the node graph intent.

You walk away with

Saved .blend + a screenshot of the node graph + 3 renders from different parameter sets.

Recreate the same parametric idea in code (p5.js or Three.js) to prove the rule transfers across tools, and note where node-based vs code-based each wins.

Exercise constraints

Equivalent visual result; reproducible params; free tools.

You walk away with

Code artifact + side-by-side with the Blender version + a tradeoff note.

L7 · Expert 2 activities

Augmented Reality Development (AR)

Anchor digital content to the real world via web/mobile - tracking, placement, and interaction.

Walk away with: Deployed AR page + a screen-recording on-device of placing the object + notes on hit-test re...

Build a WebXR AR scene (Three.js + WebXR) that hit-tests a real surface and places a generative 3D object the user can re-place by tapping.

Exercise constraints

WebXR over HTTPS on a real device; graceful message if AR unsupported; free tools.

You walk away with

Deployed AR page + a screen-recording on-device of placing the object + notes on hit-test reliability.

Write a production case study: ship the AR piece as a real shareable URL and document the constraints (lighting, tracking drift, device support) and the tradeoffs you made.

Exercise constraints

Real deployment; honest limitations section; measured on 2+ devices.

You walk away with

Live URL + case study with constraints, tradeoffs, and per-device results.

L7 · Expert 2 activities

Live Coding Visuals

Improvise evolving graphics in real time - performance coding synced to sound or audience.

Walk away with: Recorded 2-min take + the final Hydra code snippet pasted in notes.

Learn Hydra: from the live editor, build a layered audio-reactive patch (osc + modulate + feedback) that reacts to mic input, then record a 2-minute improvisation.

Exercise constraints

Free Hydra browser editor; mic-reactive; one continuous take (no edits).

You walk away with

Recorded 2-min take + the final Hydra code snippet pasted in notes.

Ship a performance case study: do a short live set (even solo to a recording), document your 'safe' starting patches, the transitions you rehearsed, and what you'd cut under pressure.

Exercise constraints

Real-time only (no pre-render); document fail-safes; honest post-mortem.

You walk away with

Performance capture + a set-list/patch sheet + a post-mortem on what held up live.

L7 · Expert 2 activities

Procedural Geometry & Modeling

Generate 3D form by algorithm - fractals, L-systems, and meshes too complex to model by hand.

Walk away with: Deployed/rendered structure + the L-system grammar + renders at 3 iteration depths.

Implement an L-system in code that grows a 3D plant/branch structure (Three.js or Blender scripting), with rules and iteration depth as parameters.

Exercise constraints

Original rule-set; cap iteration depth to stay performant; document the grammar.

You walk away with

Deployed/rendered structure + the L-system grammar + renders at 3 iteration depths.

Ship a production-grade procedural mesh as a case study: generate geometry, export it (glTF), and document poly-count/perf tradeoffs and where the algorithm broke.

Exercise constraints

Exportable, reusable output; measured poly count; honest constraints section.

You walk away with

Exported glTF + case study with tradeoffs, perf numbers, and failure notes.

L7 · Expert 3 activities

Shader Programming (GLSL)

Compute per-pixel on the GPU - the engine behind real-time effects, materials, and generative motion.

Walk away with: Public Shadertoy link to your original shader + notes mapping each technique to a Book of Sh...

Work through The Book of Shaders chapters 1-6 and recreate the shaping-function and color exercises live in Shadertoy, then build one original gradient/pattern shader.

Exercise constraints

GLSL fragment shaders only; original final shader (not a copy); free tools.

You walk away with

Public Shadertoy link to your original shader + notes mapping each technique to a Book of Shaders chapter.

Write a ShaderMaterial in Three.js (custom vertex+fragment) that animates a mesh's surface over time using a uniform, proving you can wire GLSL into a real scene.

Exercise constraints

Custom GLSL (not built-in materials); time uniform driven from JS; deployed.

You walk away with

Deployed Three.js page + the GLSL source + a note on the uniform wiring.

Ship a production case study: a reusable shader effect (e.g. a configurable noise/distortion) documented with its uniforms, perf cost, and a fallback, so others can drop it in.

Exercise constraints

Reusable + documented uniforms; measured perf; honest constraints.

You walk away with

Forkable shader + case study: uniforms, perf numbers, tradeoffs.

L7 · Expert 3 activities

Simulation & Emergent Systems

Code simple rules that produce complex behavior - flocking, automata, fluids, the heart of generative life.

Walk away with: Live sketch + a short clip showing how changing each weight changes the flock.

Implement Reynolds boids flocking from The Nature of Code (separation/alignment/cohesion) in p5.js with the three weights exposed as sliders.

Exercise constraints

Original implementation following the book; sliders for the 3 forces; reproducible seed.

You walk away with

Live sketch + a short clip showing how changing each weight changes the flock.

Build a second emergent system (Conway's Game of Life or a reaction-diffusion shader) and write up the rule-to-behavior relationship - why these rules give that pattern.

Exercise constraints

Different class of system than the boids; document the ruleset; free tools.

You walk away with

Live artifact + a written rule-to-emergence explanation.

Ship a production case study: take one simulation to a stable, performant interactive piece with tuned constraints (particle cap, timestep) and document the tradeoffs.

Exercise constraints

Stable framerate under load; documented timestep/caps; honest limits.

You walk away with

Deployed piece + case study with perf numbers and the stability tradeoffs.

Frontier tier

Fuse across domains and extend the field. Earned, not entered.

L8 · Cross-Domain Mastery 1 activity

C++ Creative Coding (openFrameworks)

Drop to C++ for performance the browser can't give - high-throughput multimedia with low-level control.

Walk away with: Compiling oF project + a benchmark table (oF vs p5.js particle counts) + the port notes.

Prerequisite chain

Requires solid C++ (build systems, memory, pointers) plus prior creative-coding experience in p5.js/Processing - do those ladders first.

Install openFrameworks, build an example, then port one of your earlier p5.js sketches (e.g. the flow field) to oF and benchmark particle counts the browser couldn't handle.

Exercise constraints

Free oF; document the build setup; measure max particles at 60fps vs the JS version.

You walk away with

Compiling oF project + a benchmark table (oF vs p5.js particle counts) + the port notes.

L8 · Cross-Domain Mastery 1 activity

Custom Creative Tool Development

Build the tool, not just the artwork - libraries/plugins that extend what other artists can make.

Walk away with: Published/forkable package + docs + 2 demos built on the API.

Prerequisite chain

Requires advanced programming plus deep knowledge of the target creative field - you must have shipped enough art to know what's missing before you build a tool for it.

Package a reusable creative-coding library: extract a generative technique you've built into a documented, installable module (npm or a forkable repo) with examples and an API.

Exercise constraints

Real install path + README + at least 2 example sketches using it; semantic versioning.

You walk away with

Published/forkable package + docs + 2 demos built on the API.

L8 · Cross-Domain Mastery 1 activity

Interactive Installation Development

The software backbone of physical installations - sensors in, displays/sound/actuators out, running unattended.

Walk away with: Demo video of the running installation + a setup diagram + calibration and run-of-show notes...

Prerequisite chain

Requires physical-computing and creative-coding experience together - build the microcontroller and TouchDesigner/code ladders first; installations fail on integration, not on any single piece.

Build a sensor-reactive installation prototype end to end: a sensor (camera or microcontroller) drives a TouchDesigner or web visual, with a calibration step and a written run-of-show.

Exercise constraints

Must survive an unattended 30-min run; document space/calibration/latency/safety per the installation checklist.

You walk away with

Demo video of the running installation + a setup diagram + calibration and run-of-show notes.

L8 · Cross-Domain Mastery 1 activity

Machine Learning for Creative Applications

ML as a controlled creative material - dataset, license, and evaluation literacy, not 'use AI'.

Walk away with: Working demo + a data/model card: dataset provenance, license, eval metrics, and failure mod...

Prerequisite chain

Requires programming proficiency plus basic ML concepts. The bar here is data/license/evaluation literacy - building a controlled system, not calling a generation API.

Build a controlled creative ML pipeline in the browser with ml5.js: train a tiny model on YOUR own labeled data (e.g. pose-to-sound or sketch classifier) and document the dataset source, license, and an evaluation of where it fails.

Exercise constraints

You must own/clear the training data and state its license; include an explicit eval (accuracy + failure cases); free in-browser tools.

You walk away with

Working demo + a data/model card: dataset provenance, license, eval metrics, and failure modes.

L8 · Cross-Domain Mastery 1 activity

Robotics & Kinetic Art Programming

Program motion in physical space - drawing machines and moving sculptures merging mechanics with code.

Walk away with: Video of the machine drawing + a physical output + the coordinate-feed code + a safety/limit...

Prerequisite chain

Requires physical computing plus basic mechanics. Moving hardware can injure people/itself - do the microcontroller ladder and understand your motors/limits first.

Build a 2-axis drawing machine (plotter) driven by stepper/servo motors from an Arduino, fed coordinates from a generative sketch so the machine draws your algorithm on paper.

Exercise constraints

Soft/physical limits to prevent over-travel; e-stop or power-cut plan; document the motion/safety setup.

You walk away with

Video of the machine drawing + a physical output + the coordinate-feed code + a safety/limits note.

L8 · Cross-Domain Mastery 1 activity

Virtual Reality Development (VR)

Build immersive VR with code - hardware, 3D interaction, and the performance budget that protects presence.

Walk away with: Deployed VR page + capture/recording + a performance + comfort writeup.

Prerequisite chain

Requires 3D graphics programming plus understanding of VR hardware. Frame-rate drops break presence and cause nausea - the Three.js/3D ladder is a hard prerequisite.

Build a WebXR VR scene (Three.js + WebXR) the user can look around and interact with via controller, holding a stable framerate, with a comfort consideration (no forced motion).

Exercise constraints

WebXR over HTTPS on a real headset or emulator; budget for 72/90fps; comfort note documented.

You walk away with

Deployed VR page + capture/recording + a performance + comfort writeup.

L9 · Visionary 1 activity

Generative Image Models (GANs & Diffusion)

The frontier - GANs/diffusion for novel imagery, demanding model, data, license, and evaluation rigor to be a contribution, not a gimmick.

Walk away with: Public repo: training code, model card, sample outputs, and an evaluation section documentin...

Prerequisite chain

Requires ML fundamentals + image-processing knowledge, and ideally the ML-for-creative-applications ladder first. Visionary-level: the goal is an original method/tool/body of work, with full data-provenance and license discipline - not prompting a hosted model.

Train or fine-tune a small open diffusion/GAN model on a dataset you have the rights to, then publish an open artifact: the code, a model card (data provenance, license, intended use, limitations), and an honest evaluation of outputs.

Exercise constraints

Cleared/owned training data with explicit license; reproducible training script; model card + eval are mandatory; open-source the result.

You walk away with

Public repo: training code, model card, sample outputs, and an evaluation section documenting strengths and failure modes.

Free Resource Library

Everything Here Opens. No Cost to You.

30 curated, free-to-open references. Filter by what you need.

p5.js Reference Docs

Canonical API reference - shape, color, transforms, math/noise, 3D, shaders, events.

p5js.org/reference
Three.js Documentation Docs

Full API for core, addons, and TSL (Three.js Shading Language).

threejs.org/docs
Three.js Manual Docs

Fundamentals tutorials - scene/camera/renderer, geometry, materials, lights.

threejs.org/manual
The Book of Shaders Docs

Free step-by-step GLSL fragment-shader guide by Patricio Gonzalez Vivo & Jen Lowe.

thebookofshaders.com
WebGPU API (MDN) Docs

Emerging high-end browser GPU path - pipelines, WGSL, render and compute.

developer.mozilla.org/en-US/docs/Web/API/WebGPU_API
WebGL API Tutorial (MDN) Docs

Raw WebGL baseline - context, shaders, textures, lighting, animation.

developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial
TouchDesigner Documentation Docs

Official Derivative wiki - operators, Python, curriculum, licensing.

docs.derivative.ca
openFrameworks Documentation Docs

C++ creative-coding toolkit core + addon API reference.

openframeworks.cc/documentation
p5.js Web Editor Tool

Zero-install browser IDE - write, run, share p5.js sketches instantly.

editor.p5js.org
Processing Tool

Free, open-source sketchbook IDE for Java-based creative coding.

processing.org
Shadertoy Tool

In-browser GLSL fragment-shader editor and community gallery.

shadertoy.com
Hydra Tool

Free browser live-coding video synth for performance visuals.

hydra.ojack.xyz
Three.js Editor Tool

Browser-based scene editor for prototyping Three.js scenes.

threejs.org/editor
openFrameworks Tool

Open-source C++ toolkit for high-performance multimedia apps.

openframeworks.cc
Arduino IDE & Docs Tool

Free toolchain and reference for microcontroller physical computing.

docs.arduino.cc
Blender Tool

Free 3D suite - modeling, geometry nodes, simulation, render.

blender.org
The Coding Train Course

Daniel Shiffman's free p5.js / Processing tutorials and coding challenges.

thecodingtrain.com
The Nature of Code Course

Free CC-licensed book - forces, agents, cellular automata, fractals, physics.

natureofcode.com
WebGL Fundamentals Course

Free articles teaching raw WebGL from first principles.

webglfundamentals.org
Khan Academy - Computer Programming Course

Free intro drawing/animation course on a Processing-style JS API.

khanacademy.org/computing/computer-programming
awesome-creative-coding Course

Curated list of frameworks, tools, courses, math, and inspiration.

github.com/terkelg/awesome-creative-coding
r/creativecoding Community

Active sketch-sharing and critique community across tools.

reddit.com/r/creativecoding
r/generative Community

Generative/algorithmic art showcase and technique discussion.

reddit.com/r/generative
OpenProcessing Community

Gallery to publish, browse, and fork p5.js/Processing sketches.

openprocessing.org
Shadertoy (browse) Community

Read and fork community shaders to learn GLSL by example.

shadertoy.com/browse
TouchDesigner Forum Community

Official Derivative forum for TouchDesigner help and patches.

forum.derivative.ca
WebGPU API (MDN reference) Spec

The emerging W3C browser GPU standard - device, pipelines, WGSL.

developer.mozilla.org/en-US/docs/Web/API/WebGPU_API
WebGL API (MDN reference) Spec

OpenGL ES 2.0-based browser 3D rendering baseline.

developer.mozilla.org/en-US/docs/Web/API/WebGL_API
WebXR Device API (immersiveweb.dev) Spec

W3C Immersive Web standard + samples for browser AR/VR, no install.

immersiveweb.dev
Three.js Shading Language (TSL) Spec

Node-based shading abstraction targeting both WebGL and WebGPU.

threejs.org/docs/#api/en/Three.js-Shading-Language