Exact, editable geometric vector art, written as plain SVG by a small Python program (standard library only), plus seamless looping motion backgrounds rendered to MP4 in the browser.
Text-to-image models are good at texture and bad at geometry: their "vectors" are usually traced pixels, full of broken curves and stray nodes. Vector Studio goes the other way. Every artwork is built from exact geometry (arcs, polygons, Voronoi cells and smooth Bezier curves), so each shape is one clean filled path that a designer can select, recolour or reuse. Shapes are grouped into named layers (background, sky, sun, mesas, tiles, accents...) that open as labelled groups in a vector editor.
Try it in your browser: open index.html (or the project's GitHub Pages site, once it is switched on). It runs studio.py with Pyodide, shows the batch, lets you leave out any piece and downloads a zip. Nothing is uploaded.
motion.html draws seamless looping backgrounds and encodes them frame by frame to H.264 MP4 with WebCodecs and mp4-muxer. Every moving term completes a whole number of cycles per loop, so the last frame leads straight back into the first. It needs a current Chrome or Edge.
Sizes: 1920 x 1080, 3840 x 2160, vertical 1080 x 1920 and 2160 x 3840, square 1080 x 1080 and 2160 x 2160; 5 to 60 seconds at 25 or 30 fps. Vertical and square clips get their own seeds, so they are new designs rather than crops of the landscape ones.
| style | what moves |
|---|---|
waves |
layered wave bands in a two-colour gradient, flowing sideways |
halftone |
a hexagonal grid of dots whose sizes ripple outward from a focus |
contours |
topographic contour lines (with index contours) flowing outward |
tiles |
Bauhaus tiles (quarter circles, semicircles, triangles, rings) turning a quarter at a time |
blobs |
soft blurred colour blobs drifting |
bokeh |
glowing out-of-focus lights rising slowly on a dark ground, twinkling |
synth |
retro 80s synthwave: a perspective grid moving toward a striped sun, optional stars and mountains |
sunburst |
retro sunburst rays turning, with a pulsing centre |
stripes |
groovy 70s wavy stripes flowing diagonally |
plexus |
a network of drifting dots, linked by lines that fade with distance |
Rendering downloads one .mp4 per kept clip and an Adobe Stock CSV (Filename, Title, Keywords, Category, Releases). Filenames stay within Adobe Stock's 30 characters (mv2_motion_* for HD, mv2_4k_*, mv2_vert_*, mv2_v4k_*, mv2_sq_*, mv2_sq4k_*).
Seventeen vector styles, each with variations and fourteen hand-picked palettes:
| style | what it is | seamless |
|---|---|---|
bauhaus |
grid of quarter circles, semicircles, triangles, rings and stripes | no |
boho |
boho wall art: rainbow arches, rising sun with rays, leafy branches, circles | no |
cairo |
Cairo pentagon tiles with grout lines (exact tiling, optional rounded corners) | yes |
desert |
flat desert: banded sky, sun with halo or moon and stars, mesas, dunes, saguaro cacti | no |
groovy |
70s groovy wavy stripes (seamless both ways) or wavy concentric rings | stripes: yes |
halftone |
radial, linear or wave halftone dots | no |
landscape |
flat mountain landscape: banded sky, plain or retro striped sun, jagged ranges, rolling hills, pines | no |
memphis |
Memphis-style squiggles, triangles, rings, crosses and dot grids | yes |
mosaic |
stained glass or mosaic from a seamless Voronoi diagram, sharp or rounded | yes |
organic |
abstract organic cut-out shapes: blobs, leaves, half discs, arches, squiggles, dot grids | no |
seigaiha |
Japanese wave scales of concentric circles | yes |
star |
eight-pointed star and diamond tile pattern | yes |
terrazzo |
stone chips and speckles, wrapped across the edges | yes |
topo |
topographic contour lines with index contours | no |
truchet |
interlocking quarter-ring arcs, optional checker ground | yes |
tumbling |
isometric cubes (tumbling blocks) | yes, three-tone mode |
waves |
layered wave bands in a two-colour gradient | no |
Each file is a 4000 x 4000 px artboard (16 MP), RGB hex fills only, with no strokes, text, images or scripts. That meets Adobe Stock's technical rules for vectors (AI, EPS or SVG, 15 to 65 MP, strokes outlined, organised into layers and groups).
python studio.py list
python studio.py one --style desert --seed 7 --out desert.svg
python studio.py build --out out --batch 1 --per-style 3
build writes svg/*.svg, a contact.html sheet to review the batch in a browser, adobe_stock.csv (Filename, Title, Keywords, Category, Releases) and a draft freepik.csv (File name; Title; Keywords; Prompt; Model). Titles and keywords come from the style and palette. A batch number changes every seed, so batches never repeat each other.
python -m unittest -v test_studio
The tests check every style for valid SVG, artboard size, fills, named non-empty layers, metadata limits and determinism, and check the geometry itself (the Voronoi cells and Cairo pentagons tile the plane exactly). For the motion page they check that it uses the same palettes as studio.py, that its script's brackets, strings and regular expressions are well formed, and that every style, palette list, frame size and filename fits the rules above.
Versions: studio.py reports the vector generator's version (0.3.0); motion.html shows its own at the bottom of the page (0.4.0).
Vector Studio and the artworks and clips it produces were made by AI agents working for MV2 of Munim, Inc. If you upload its output to a marketplace, label it the way that marketplace requires (Adobe Stock: "Created using generative AI tools").
Code: Apache-2.0, see LICENSE. By MV2 of Munim, Inc. (munimversion2@gmail.com). mp4-muxer (loaded from jsDelivr by motion.html) is Apache-2.0 licensed by Vanilagy.