prototype.st

designs grow from initial conditions

seed:

scroll to germinate
01 / origin

Every design starts
as a single seed.

prototype.st is a studio for procedurally-grown design systems. We treat the brief as a set of initial conditions and let the work emerge — branch by branch, leaf by leaf — through algorithmic iteration.

02 / emergence

Recursive subdivision, Voronoi tessellation, Fibonacci spirals. Not as ornament — as the working method.

03 / divergence

No two visitors see the same hero illustration. No two prototypes branch the same way. Reproducibility comes from the seed, not the output.

Initial
conditions
matter.

specimen archive

Field notes from the studio

Six specimens. Each one a different set of initial conditions, growing along its own branch.

№ 01 Recurva minor recursive branch · depth 7

Recurva minor

seed
A1F-3
angle
±27°
ratio
0.71
iterations
7

A balanced recursive branch with conservative angle variance. Used as the studio baseline.

№ 02 Voronoi tropica voronoi · 24 cells

Voronoi tropica

seed
B7C-2
cells
24
relaxation
3 passes
palette
complement

Tessellated reef structure — cells relaxed via Lloyd's algorithm to evoke organic packing.

№ 03 Spira fibonacci phyllotaxis · golden angle

Spira fibonacci

seed
F1B-9
angle
137.5°
nodes
144
scale
√n

Phyllotactic arrangement using the golden angle. The same algorithm a sunflower runs.

№ 04 L-systema coralis L-system · 5 generations

L-systema coralis

axiom
F
rule
F→F[+F]F[-F]F
generations
5
angle
22.5°

Classic Lindenmayer system. Five generations is enough; six is too dense to read.

№ 05 Diffusio limita DLA · 2,400 walkers

Diffusio limita

seed
D4A-7
walkers
2,400
step
1px
stickiness
0.85

Diffusion-limited aggregation — particles random-walk until they touch the cluster, then stick.

№ 06 Reactio diffusio Gray-Scott · 4000 steps

Reactio diffusio

F
0.0367
k
0.0649
steps
4,000
pattern
coral

Gray-Scott reaction-diffusion. The same maths Turing used to explain how a leopard gets its spots.

tap or focus a card to read its parameters

studio process

From seed to specimen

  1. 01

    Plant a seed

    A seed is the brief: domain, audience, constraints, three adjectives. We hash it into a 12-character signature.

    seed = sha1("…").slice(0,12)
  2. 02

    Set conditions

    Angle range, branch ratio, depth, palette anchor. Six numbers, locked. Everything downstream is determined by these.

    conditions = derive(seed)
  3. 03

    Let it grow

    The generative engine runs. Recursive subdivision, then leaf placement. We watch — we do not steer.

    grow(root, conditions)
  4. 04

    Press the specimen

    When the form settles, we freeze it: rasterize, label, archive. The seed plus the conditions reproduce it exactly.

    press(form) → archive
  5. 05

    Cross-pollinate

    Pairs of specimens become parents. New seed = mix of two — the next generation inherits, mutates, branches.

    cross(a, b) → seed'
marginalia

Notes from the field

"Three recursive calls. After the third, you can no longer tell which is the parent."

— studio log, week 14

"The leaf isn't where the algorithm ends. It's where the algorithm decides to end."

— studio log, week 22

"A reproducible seed is a kindness to the people who will work on this after you."

— studio log, week 31