Primitives-Library-First: When Brand Exploration Becomes a Design System
The first batch of any generative-identity project is exploratory: one direct attempt per reference style, no shared abstractions. Once the designer signals "I like these 20 — let's go deeper," there is a fork:
- Continue variant-by-variant — write more one-offs in the same loose style. Linear effort, no compound benefit.
- Switch to primitives-first — extract the recurring techniques from the favorites, write them as a primitives library, then compose the next batch on top of the library.
The latter is the moment a brand exploration becomes a design system.
When to apply
- The first exploratory batch has shipped, the user has picked favorites, and they want 30+ more at higher quality.
- Multiple favorites share the same underlying technique (boolean unions, slice cuts, paired capsules) — there is a real abstraction to extract.
- The brief asks for breadth rather than narrowing to one direction.
Mechanism
- Read the favorites for techniques. Group them by what's actually doing the work: boolean union, slice, capsule-pierce, mixed-typeface, etc. Each recurring technique becomes a candidate primitive.
- Extract primitives. Each is a pure function over SVG paths, parameterized minimally — start with 2–4 knobs, expand only when a real composition demands it.
- Expand tokens. Mono-only is fine for batch 1; batch 2 needs the full palette. Add 6–8 color tokens. Variants ship in both mono and color.
- Compose on top. New variants are short scripts that call primitives. A variant file should be readable in 10 seconds.
- Keep the design record. The exploratory batch is not deleted. Old variants stay in
out/; new variants land alongside with a clear naming convention (e.g.batch-2/).
Why this matters
A primitives library is the difference between "shipping more logos" and "shipping a system." The next time the brand needs a sub-mark, an animated lockup, a packaging variant, or a sibling brand — the library is the starting point, not 125 disconnected SVG files.
Example — second batch on a real exploration
After 78 variants in the first batch, the designer picked 20 favorites and structurally edited them: boolean unions consolidated complex compositions into single paths, decorations were added, a new monogram concept was invented by hand (a serif glyph with two slash-capsules piercing horizontally).
The pivot: stop generating more one-offs. Build the design system first.
- 6–8 color tokens (hot pink, orange, neon green, electric blue, yellow, violet, black, cream).
- Primitives extracted from the favorites: blob-merge, slice, capsule-pierce, mixed-typeface, monogram-with-capsules, etc.
- 30 new logos as compositions on the primitives library.
The compounding starts here. The 79th logo costs less than the 78th. The 100th costs less still.
Pitfalls
- Premature library. Extracting primitives from batch 1 before user signal is the same mistake as premature abstraction in code. Wait for "these I like."
- Library too rigid. Primitives parameterized too tightly produce only variations of the favorites and miss the next direction. Leave one or two knobs that let a composition deliberately misuse the primitive.
- No record. Overwriting batch 1 with batch 2 destroys the comparison the designer needs. Keep both.
Pairs with
- programmatic-identity-generation — the methodology this sits on top of.
- generative-logo-design — a concrete design system that hit this fork.