Burning my Claude Max limits to the ground
I was working on a project and hated the design because I'm a terrible designer. I asked Claude to generate a few options. That worked well enough that I wondered: What if I described a design using a bunch of different dimensions and let Claude go nuts? And once you have a few options why not make a thousand?
I started with 35 dimensions. Color theory, typography style, visual density, cultural influence, UI paradigm, you name it. I figured more control meant better results. You can see all of the insane dimensions here.
Turns out randomly combining 35 dimensions produces chaos. "Brutalist + playful + corporate + neon + Japanese minimalist" is not a coherent design brief. The results were... wacky. Some interesting and fun to look at, but nothing you would actually use (maybe).
My first really good "batch" (see below) minimal-100 uses just 5 dimensions. The agent picks everything else to create a coherent design. Turns out throwing a few constraints at Claude Code and letting it figure out the rest produces much better results.
Dimensions I Used:
Everything else like typography, spacing, colors, shapes, etc. was filled in by the agent. The results were better. It might be fun running the model with another set of core dimensions than I ran.
Sure. At the top of each design is supposed to be some instructions for AI Agents to interpret the design and apply the design to a project (sometimes the subagent misses and doesn't give instructions). If you happen to use one of these designs and it works pretty well, give me a shout at hey at dunn dot us. I don't claim to own any of these.
Here's how this repo takes a design from random numbers to a real HTML file:
Python picks random values for each dimension, creates a unique seed, and generates a creative name.
Claude Code reads the manifest and launches parallel subagents. Each one takes a design spec and generates a complete HTML file.
Each design goes through validation before being moved to the final folder.
You can still use all 35 dimensions if you want to experiment. There are 412 possible values total, including 158 different functional directions. Some of these matter a lot, some maybe don't matter at all.
The code is on GitHub. I've only used this with a Claude Max subscription. One of these days I'll run with other models. Or it may be fun to park it for a year and run it against new models.
# Generate a manifest with 20 designs (all 35 dimensions) python design_vibes.py manifest --count 20 --name "my-batch" # Generate with just 5 core dimensions (recommended) python design_vibes.py manifest --count 20 --name "my-batch" --core-only # In Claude Code, generate the designs "Generate designs for outputs/2026-01-07-my-batch"
Here's all of the "design runs" I ran. Click to expand and see the approach used.
Generate design #{id} for 1000 Design Vibes.
Read the design guide at DESIGN_GUIDE_MINIMAL.md and manifest for this batch.
Design: {name}
Tagline: {tagline}
Core Dimensions:
functional_direction: {value} ← PRIMARY: this MUST look like a {value}
design_era: {value}
emotional_tone: {value}
industry: {value}
color_mode: {value}
You choose all other design details (typography, colors, spacing, etc.) to create a coherent design.
Write to: outputs/2026-01-08-the-250/.staging/design-{id}.html
Generate design #{id} for 1000 Design Vibes.
Read the design guide at DESIGN_GUIDE_MINIMAL.md and manifest for this batch.
Design: {name}
Tagline: {tagline}
Core Dimensions:
functional_direction: {value} ← PRIMARY: this MUST look like a {value}
design_era: {value}
emotional_tone: {value}
industry: {value}
color_mode: {value}
You choose all other design details (typography, colors, spacing, etc.) to create a coherent design.
Write to: outputs/2026-01-07-minimal-100/.staging/design-{id}.html
First really successful batch. The minimal approach produced much more coherent designs than specifying all 35 dimensions.
Generate design #{id} for 1000 Design Vibes.
Read the design guide at DESIGN_GUIDE_LOOSE.md first.
Design: {name}
Tagline: {tagline}
The functional_direction "{value}" is PRIMARY - this page MUST look like a {value}.
All 35 Dimensions:
ui_paradigm: {value}
design_era: {value}
density: {value}
color_theory: {value}
color_temperature: {value}
... (30 more dimensions)
functional_direction: {value}
Write to: outputs/2026-01-07-functional-100/.staging/design-{id}.html
Generate design #{id} for 1000 Design Vibes.
Read the design guide at DESIGN_GUIDE_LOOSE.md first.
Design: {name}
Tagline: {tagline}
All 35 Dimensions:
ui_paradigm: {value}
design_era: {value}
density: {value}
... (32 more dimensions)
Write to: outputs/2026-01-07-batch-100/.staging/design-{id}.html
Used Haiku model for speed. Produces wacky, sometimes conflicting designs. Interesting but often not usable.
Generate design #{id} for 1000 Design Vibes.
Read DESIGN_GUIDE_LOOSE.md first.
Design: {name}
Tagline: {tagline}
Dimensions (weighted sampling - prefers common values):
ui_paradigm: {value}
design_era: {value}
... (33 more dimensions)
Write to: outputs/2026-01-07-test-weighted/.staging/design-{id}.html
Generate design #{id} for 1000 Design Vibes.
Read DESIGN_GUIDE_MINIMAL.md first.
Design: {name}
Tagline: {tagline}
Core Dimensions:
functional_direction: {value}
design_era: {value}
emotional_tone: {value}
industry: {value}
color_mode: {value}
Write to: outputs/2026-01-07-test-minimal/.staging/design-{id}.html
Generate design #{id} for 1000 Design Vibes.
Read DESIGN_GUIDE_LOOSE.md first.
Design: {name}
Tagline: {tagline}
All 35 Dimensions:
ui_paradigm: {value}
design_era: {value}
... (33 more dimensions)
IMPORTANT: Include extensive HTML comment documentation at the top of the file
for LLM readability. Document design choices, CSS variables, and usage patterns.
Write to: outputs/2026-01-07-test-doc-improvements/.staging/design-{id}.html
Generate design #{id} for 1000 Design Vibes.
Read DESIGN_GUIDE_CORE.md first.
Design: {name}
Tagline: {tagline}
Core Dimensions (you choose the rest):
functional_direction: {value}
design_era: {value}
emotional_tone: {value}
industry: {value}
color_mode: {value}
Write to: outputs/2026-01-07-test-core-only/.staging/design-{id}.html
Quick test batch to verify navigation script stripping works correctly.
DESIGN_GUIDE.md → (strict version)
Generate design #{id} for 1000 Design Vibes.
Read DESIGN_GUIDE.md first (strict version with detailed requirements).
Design: {name}
Tagline: {tagline}
All 35 Dimensions:
ui_paradigm: {value}
design_era: {value}
density: {value}
... (32 more dimensions)
Write to: outputs/2026-01-06-full-test/.staging/design-{id}.html
Generate design #{id} for 1000 Design Vibes.
Read DESIGN_GUIDE_LOOSE.md first.
Design: {name}
Tagline: {tagline}
All 35 Dimensions:
ui_paradigm: {value}
design_era: {value}
... (33 more dimensions)
Write to: outputs/2026-01-06-ab-test-loose/.staging/design-{id}.html
A/B test: designs 1-5 used Haiku, designs 6-10 used Sonnet. Sonnet produced significantly better results.
Generate design #{id} for 1000 Design Vibes.
Read the design guide and manifest, then create a complete HTML file.
Design: {name}
Tagline: {tagline}
Dimensions:
ui_paradigm: {value}
design_era: {value}
... (33 more dimensions)
Write to: outputs/2026-01-06-test-batch/.staging/design-{id}.html
The very first test run. Just seeing if the whole thing would work. It did!