A mandala is a radially symmetric ornament: rings of shapes — petals, bezier loops, circles, dots, stars, paisleys, and lotus fans — repeated around a centre with N-fold symmetry. Every ring's shape, radius, size, jitter, colour, and line style come from one seeded random stream, consumed innermost ring first, so the same seed always draws the same mandala, and raising the complexity grows the rim without disturbing the inner rings.
On top of that base, each ring carries its own decorative layer, rolled from a seed-derived sub-stream: gradient fills that glow from the inner edge, two-tone inner petals, gold outlines, small paisley, lotus, teardrop, diamond, and crescent motifs interleaved between the shapes, and connector rings — beads, diamonds, halos, and scalloped bands — that tie the layers together. The rings paint outermost first, so each inner layer overlaps the one below it and the centre medallion sits on top; a thin gold frame closes the rim, and the deep ground takes its hue from the palette's darkest colour so the field always harmonises with the piece. A soft glow — its strength is adjustable — makes the gold read as light. The Diwali and Peacock palettes are tuned for that festive look.
On load and for each new mandala the mandala draws itself in from the rim toward the centre; the toolbar's animation button replays it, and the settings menu can switch it off. The shuffle button rolls a fresh random mandala: a new seed, symmetry, complexity, palette, and ground all at once, while the menu's New Random Seed button rolls just the seed. Pin one in the settings menu: the seed, the symmetry fold count, the ring count, the palette, and the background — or leave the palette on Random and let the seed roll its own. Save PNG exports the current mandala at 4096×4096, ready to print.
This toy was built using AI-assisted development with OpenCode, powered by the oMLX framework running the Qwen3.8-Flash-Next-MLX-4bit-MTP model locally.