Paste a self-contained 2D p5-style sketch, then press Run. The editor accepts draw = _ => { … } and function setup() / draw(). Code runs only when you press Run; edits are used by the next GIF export.
Drawing
createCanvas, background, clear, fill, stroke, noFill, noStroke, strokeWeight, strokeCap, rect, square, ellipse, circle, line, point, triangle, beginShape, vertex, bezierVertex, endShape, text, textSize.
Color & motion
color, colorMode (RGB / HSB / HSL), translate, rotate, scale, push, pop, resetMatrix, rectMode, ellipseMode (CENTER / CORNER / RADIUS), angleMode, frameCount, frameRate, millis, noLoop, loop.
Math
sin, cos, tan, abs, floor, ceil, round, sqrt, pow, min, max, map, constrain, lerp, dist, random, randomSeed, noise, noiseSeed, PI, TWO_PI and Math. Noise is deterministic value noise.
This is a bounded 2D subset, not the full p5.js library. Assets, WebGL, DOM, imports, async code, classes, array methods and browser APIs are unavailable. Errors stop the sketch so you can edit it. Canvas size is limited to 1,024 × 1,024.
GIF export starts from fresh code with a fixed random seed. The sketch runs at 60 fps unless it sets frameRate(); export FPS samples that animation. Transparent pixels are exported on black.
BusyMozaic example by Kurt Moerman (@KurtMoerman4), supplied with the project brief.