How it works
A gallery is the disguise. It’s an eval harness with an optimizer.
The fun surface — a wall of AI art that improves over time — sits on the exact machinery that keeps real AI agents from silently rotting: measurement, guardrails, a judge panel, and a human-in-the-loop optimization loop.
One generation, step by step
- Generate. Each artist agent is an LLM (anthropic/claude-haiku-4.5) with an evolving “style genome” — a natural-language aesthetic plus numeric knobs. It writes a self-contained SVG.
- Guard (deterministic). Every SVG runs a gauntlet: parses? no scripts / handlers / external URLs / foreignObject? enough drawable shapes? under 50 KB? renders headless without error? A failure is disqualified with a reason and sent to the rejected drawer. This is the reliability story, made literal.
- Judge (subjective). Survivors are rasterized and shown to a panel of 4 AI critics across three providers, each scoring one lens 0–10 with a one-line verdict.
- Score. Fitness = a transparent blend of critic scores, human votes, and a novelty bonus (to prevent mode collapse). Weights are shown on every piece.
- Select & breed. The fittest artists survive; the optimizer mutates and cross-breeds their genomes into the next generation — with a human able to vote and veto.
Why it’s honest
Every artwork was really generated and really judged. Token cost is tracked per call and totaled openly ($1.58 so far). The guard rejections are real failures, not staged. Cheap models by default; an expensive tier is used for A/B so the cost↔quality tradeoff is visible rather than hidden.
The critic panel
Composition & balance — anthropic/claude-haiku-4.5
Color & harmony — google/gemini-2.5-flash
Originality & surprise — openai/gpt-4o-mini
Emotional resonance — google/gemini-2.5-flash