reverse engineering windows

He, okay not actually Windows, but windows. A follow on from this bunch of window photos. The idea is to design a meta-window that can be evaluated to as many real world windows as possible. We're not trying to represent all windows (Gaudi and Seattle library), just as larger fraction as we can.

So the basic idea is to construct a recursive nesting of graphs that are used as extrude paths for the window frames:

Each nesting represents a different window aspect (stone surround (blue, above), wooden frame (red) and leaded (green) glass (cyan) ). Here's a rather silly example of this:


The point here is, they do look silly, but they are undeniably windows. (A side point is that the shape of the windows in the test-house influences the shape of the door and roof to add style, a normally elusive concept!). A couple of hours playing around in blender creates the following:

The thing about this, is that in-between stages also look like windows (Georgian I think?). However when close to a certain form, such as being rectangular, the design falls into an uncanny valley (first definition of uncanny valley for windows...?) and looks very wrong.

This system represents a large range of windows. To do better we have to get more complicated and less intuitive. For example, we can't represent the following window (similar to the designs in many churches around Glasgow), because the frame isn't a simple path, it's two combined paths. This means we have to deal with intersection and other not-so-clean methods of beveling and extruding shapes.


We often see several window together that share a frame. For example, here's a chapel on the Stanford campus:

stanford chapel

The windows share an outer frame with a complex form. It would be difficult with the methods described so far, to outline of the entire window is geometrically complex. We can modify the scheme (grammar?) further thuswise:


One set of outlines (blue arches in the above) become the primary definition as they are the easiest to define geometrically. These then become part of our recursive hierarchy of frames, but not at the top. Instead they define a mid-level of the frame hierarchy. The exterior frames (green dashed line in the above) can then be extended from them (without further subdivision). As before the interior frames can be shrunk and subdivided to form the window details.

Thinking outside of an individual windows, several other concepts appear:

window abstractions

i) Doors and windows are very geometrically similar. These windors/portals only have a few distinctions:
  • filler - window, door or nothing (archway)
  • window cill or door step!
  • location - doors are usually at ground level
  • details such as door handles etc...
ii) Window frames are often composed of features that are used as general frames (for example pillars framing a side of a building). Perhaps the windor concept should just be a frame, that can contain anything (including more windors).

iii) Most frames have horizontal symmetry. This concept is best expressed as an edge component (ie the pillar from ii)) that is reflected for the opposing side of the window. Sometimes this edge component is all there is (a circular window), sometimes it is just combined with a base (an arched window) and sometimes it is combined with a top and a base (square window). These top and bottom components need some discrete representation.

meta-note: I'm starting to understand the continual perversion of L-systems. You come up with a nice clean idea, but in order to extend it to real world systems you have to start engineering. This causes lots of ugly lumps and bumps on the design and you end up with something that is hard to understand, and difficult to find the beauty of.