Matt Lane · Notes← All notes
2024-12-26 · Products & systems

Generative Design

Good design defines a space of possible physical configurations, not one specific configuration.

Provide so much latitude that it could lead the team or your future self to arrive at a configuration nobody could anticipate (because we can’t know until the realities of a project unfold), while *still* satisfying the system of relationships that make it fulfill its purpose.

It's one thing to say: "Design a kitchen."

It's another thing to say, "Here are the specific and fixed-scope blueprints of the kitchen; go build it."

And it's yet another thing to say: "A good kitchen has windows giving light from two sides. The counters are long and generous along the south side to get the light. Place a big table in the middle and light it from above to create an eating atmosphere."

The latter is a very limited example of a better working description that can enable your future self and/or others to work within constraints while leaving the specifics open according to the realities of the project.

Enough latitude to enable breakthroughs. Firm boundaries to enable agreement. Specifics when hard-earned knowledge informs decisions. Trust when we know that capable people can work it out themselves.

Images courtesy of Christopher Alexander.

3. Generative Design Writing

Discussion

**Generative Design Writing**

**Key Idea:** Emphasize *relationships* (the “why” and “how”) instead of prescribing exact forms.

- **Decomposition:**

- Breaks complex designs into *key centers* and describes how these centers connect or interact.
- Identifies the sub-elements of the design by focusing on *relationships* first, then refining details later.
- **Abstraction:**

- Moves away from final “forms” (the specifics of UI, layout, etc.) to the *conceptual logic* of connections among elements.
- Creates flexibility so new ideas can emerge without being pinned down prematurely.
- **Pattern Recognition:**

- Encourages spotting repeated structures in relationships across different parts of the system or problem domain.
- Helps you describe “relational patterns” that appear in multiple contexts.
- **Algorithm/Procedure:**

- More of a *conceptual guide* than a strict step-by-step process.
- In practice, the *rules of relationship* can be encoded into design constraints once the relationships are well understood.