René

2016

Specify what you want to explore, watch every variation materialize. Built in 2016 to answer: what if designers could declare intent and let computers handle the combinatorial explosion? Turns out, you stop copying artboards and start actually designing.

Built with:

Design is divergence and convergence. You explore possibilities, then narrow down to what works. The process repeats in increasing fidelity until you're done—from sticky notes to wireframes to high-fidelity mockups.

In 2016, design tools still worked like they had since 1984. One-to-one manipulation. One font size, one color, one border radius at a time. Direct mapping between brain and screen—marvelous, but exploring variations meant manual labor.

Picture a design review: "Try these 4 typefaces in 4 sizes, 4 weights, 3 positions." That's 192 variations. Add body copy options—20,000+ permutations. No designer artworks all those. We skimp. Fall short of exploring the full space because our hands are slow even though our brains and computers are fast.

I wanted to shift from imperative to declarative. Stop telling the computer how to design what's in your head. Start telling it what you want to see. Let it generate the permutations.

René was built around Cartesian products. Specify sets of properties—fonts, sizes, colors, spacing. The tool multiplies them together, shows you all combinations. Not brute-forcing everything in existence. Exploring the specific range you declared. Sweet spot: 4-64 variations per iteration. Enough to see patterns, few enough to comprehend.

The workflow: diverge by generating permutations, converge by selecting what works, diverge again at higher fidelity. Hours of copying artboards collapsed into seconds of reviewing options.

Built it in React and Redux. Released as a working prototype. People could explore button variations, article layouts by declaring intent instead of manually producing every version.

Technical implementation: straightforward. Computers have variables and loops. But the philosophical shift mattered more. Design tools should handle mechanical exploration. Our "thinking time" shouldn't be spent on clerical work—searching, calculating, plotting, preparing to decide. Licklider wrote about this in 1960. Still true in 2016.

Another reason I built René this way: collecting data on how people made design decisions. Structured around divergence and convergence because I wanted to model that process, train something on it. Incredibly early—years before the tooling existed to make it feasible. But the architecture reflected where I thought things were headed.

Some tools are about solving today's problem. Some are about asking questions for tomorrow.