Preview
The animation loops from t = 0 to t = 1 over the chosen duration. The same seed is used for every frame, so random() stays consistent while t moves.
Checking video support...
Code Editor
Write a function named draw(svg, W, H, t, random). t runs 0 to 1. random() is seeded, so the same seed gives the same shapes every frame.
Helper API
svg.background(color) - svg.circle(cx, cy, r, fill) - svg.rect(x, y, w, h, fill) - svg.roundRect(x, y, w, h, r, fill) - svg.ellipse(cx, cy, rx, ry, fill) - svg.line(x1, y1, x2, y2, stroke, width) - svg.path(d, fill, stroke) - svg.polygon(points, fill) - svg.polyline(points, stroke, width) - svg.text(x, y, str, size, fill, font)
Export
MP4 is H.264 with faststart, 30 fps, at the width above. Height follows the canvas aspect ratio. SVG and PNG export the current frame.
Log in to see your monthly export usage.
About EPS export
The EPS writer covers basic filled and stroked shapes (rect, circle, ellipse, polygon, polyline, line, and simple paths with M, L, C, Z). Text is written with the standard Helvetica font. Gradients, opacity, and filters are not exported.
Prompt Builder
Pick the options and copy the prompt into ChatGPT, Gemini, or Claude. Paste the draw() code it returns back into the editor above. You can leave any option on Auto.
Batch Generator
Runs the current code once per file, each time with a different seed, and downloads one ZIP of SVG files. Tick PNG to also include a 2000 px wide PNG render per file.
Saved Projects
Save the current code and settings to your account. Log in to use projects.
Metadata CSV
Generates one CSV row per platform (Adobe Stock and Shutterstock) for the current design. Keep the title short and the keywords comma separated.