Profile picture
Maurice Meilleur @MauriceMeilleur
, 30 tweets, 9 min read Read on Twitter
1/ So, the story of reverse engineering a Girard design starts with something one of my students brought to class one day: a water bottle. Specifically, this one:
2/ Anyone who knows or follows me would assume, correctly, that I'd be interested in knowing more about the design. I'm a sucker for serial geometric anything. So, off I head to the SIGG website, looking for bottles with Herman Miller patterns. No joy: must be discontinued?
3/ Searching images for 'SIGG' and 'Herman Miller' gets me to this Japanese website branded with the name 'Stendig Design'—odd, because Stendig was bought out in the early 70s. (The famous Stendig calendars are today printed in Kentucky under license.) stendig.bi.shopserve.jp/smp/item/sigg_…
4/ But that's the bottle! Google Translate to the rescue: I read that the design is a collaboration between SIGG and presumably Herman Miller (no shit, or someone's getting sued for that H-mark and name) to use 'Circle Sections' by someone named 'Girardo'.

'Girardo'?
5/ Mistake, or a translation artifact—probably the latter. Because the only artist or designer I know who worked in connection with HM with a name like that is 'Girard'. That is, Alexander Girard. And this totally looks like the kind of thing he'd make.
6/ Sure enough: here he is, making away. He's working on a series of 'environmental enrichment' panels Girard made for Robert Propst's Action Office—the first modular, reconfigurable office design system. (The photo is dated c.1972 and appears in Todd Oldham's Girard monograph).
7/ To his left on the wall is 'Circle Section A'. (Note to self: call something that, and there must be a 'B', a 'C', … so where are they?) Here's an isolated shot, again from Oldham's book.
8/ Of course I want to recreate this. I start by defining the vocabulary of shapes Girard applied in arbitrary/random order to make a field. There are 33 shapes: 1/2 and 3/4 circle, mirrored 'opened' circles, mirrored 'J's, a 'U', and an 'L'—each in 4 orientations—and a circle.
9/ These can all appear as positive shapes, or negative ones knocked out of a square ground.
10/ Now, I could just copy Girard's design with these shapes, but that's no fun. I want to figure out how to generate my own. Time for Python and @drawbotapp.
11/ My first sketch included a function, 'quadrant', with paths for drawing all 33 shapes, and a toggle to draw them figure/ground. I choose the number of rows and columns; the code generates a list of r×c random numbers from 0–32, then draws a grid of shapes.
12/ The code then defines an r×c matrix and draws a shape in each cell with the quadrant function. It uses the random numbers one at a time to tell the function which shape to draw in which cell, and uses the cell position to draw it positive/negative.
13/ Girard used the rule of alternating the shapes figure/ground, so the code does too. Here's the result. Success?
14/ Not so fast. Look closely and you'll see a bunch of these little forms, which don't appear in any of the versions of Girard's design I found in print or online:
15/ Clearly, Girard didn't populate his fields randomly, because if he had done that these forms would be all over his prints as well. There were more rules to figure out.
16/ There had to be rules for which shapes could touch which other ones, in which directions. I don't know whether Girard wrote these down or not.
17/ Jochen Eisenbrand, in his essay that accompanies his and Mateo Kreis's edited catalog for the 2016 Vitra exhibition of Girard's work, A Designer's Universe, frequently notes Girard's systematic approach and attention to detail, so probably he did.
18/ But I would have to reconstruct them. I wrote a small sketch that drew and labeled each possible pair of shapes in the design's shape vocabulary: horizontally …
19/ … and vertically. That's 1089 unique pairs in each direction, or 2178 total pairs. Someone more savvy than I at topology and Python could probably describe what I was looking for in code. Me, I made .pdfs and looked at each pair, noting where I saw the little horn of fail.
20/ Then I started revising. I made a list of all 33 shape names, and two dictionaries, each sorted by shape, of which shapes could not touch a given shape to its right, or below it.
21/ (Did I see patterns in these lists? You bet. Their exact configurations would be in part artifacts of the order in which I had generated and named them, but they were there.)
22/ These exclusion lists were where Girard's rules about touching shapes—the ones I had reverse-engineered by looking at all the pairs of shapes—were encoded. Then I had to figure out how the code would look up those rules as it drew the field of shapes.
23/ I had the code keep a tally of each shape it had drawn in a given row. The function would check to see what the position (row and column) the shape it was being asked to draw was in. If the shape was in the first row and column it would pick a shape at random:
24/ The code would then record what shape it had drawn by appending it to the tally. For all subsequent shapes in the first row, the code would choose a shape at random from the set of all shapes *minus* the shapes that could not touch the last shape drawn to the left:
25/ This gives the first row of shapes and a tally of shapes in the row. In the next and subsequent rows, the first shape would be chosen at random from the set of all shapes *minus* the shapes that could not touch the bottom of the shape in that column in the previous row:
26/ And all subsequent shapes would be chosen at random from the set of all shapes *minus* the union of the set of shapes that could not touch the bottom of the shape in that column in the previous row, and the set of shapes that could not touch the right of the last shape drawn:
27/ Again, the code updates the tally after it draws each new shape. In this way, each shape gets drawn only after looking up the rules for the shapes before it that it will have to touch. No more little horns of fail.
28/ Of course, we don't have to stick to Girard's original format: the code can handle fields of arbitrary numbers of rows and columns:
29/ So, there you have it. Next steps: first, cover my office door with Circle Section A. Second, animating it. Stay tuned. /fin
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Maurice Meilleur
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($3.00/month or $30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!