The Evolving Gallery
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

  1. 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.
  2. 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.
  3. 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.
  4. Score. Fitness = a transparent blend of critic scores, human votes, and a novelty bonus (to prevent mode collapse). Weights are shown on every piece.
  5. 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 & balanceanthropic/claude-haiku-4.5
Color & harmonygoogle/gemini-2.5-flash
Originality & surpriseopenai/gpt-4o-mini
Emotional resonancegoogle/gemini-2.5-flash