Geometry Nodes Windows
By Austin W. Dunham, V
Background
Just a note, this is my first Blender Tutorial!
This may be overkill, but one of the things I find tedious to create are windows. They have a surprising number of fiddly details, whether they are old fashioned 1920s single hung windows, or even relatively recent single paned commercial windows with metal trim.
What if one could simply define the height, width, and number of panes in the windows? We’re going to accomplish this with geometry nodes.
This tutorial will focus on 1900s style double hung windows. The methodology should carry over to other window types.
Planning
It’s one thing to quickly rough out a window for a model one’s actively working on. Going through the trouble of defining something with geometry nodes warrants getting it as close to structurally accurate as possible. This requires looking up how the windows are actually built.
Diagrams
Daniel Kanter has a good diagram from The Old-House Journal.
Fine Homebuilding also has a good diagram.
Fine Woodworking has a good diagram of the muntin. I believe the muntin is the horizontal and vertical supports when a window has four panes of glass instead of one. I believe 1/2 a muntin is used along the rails to give the routered look to the window framing. I am not a woodworker. If there are mistakes on naming the parts of a window, they are likely mine.
Old Window Restorer has an excellent guide on window muntin.
A Note on Window Muntins
One thing I wasn’t sure about is how the muntin was assembled. The vertical bars in the muntin are continuous. They have holes worked into them where the horizontal muntin go. The horizontal muntin have toggles that slot into those holes. From the inside the back of the muntin just forms a square that’s a little wider than the window pane. The glazing for the window goes on the outside face of the window.
We’re not going to try to duplicate all of that, but where this does make a difference is making the vertical bars continuous and having the horizontal bars have cut outs. The outermost muntin still needs to be cut at a 45 degree angle.
Measurement Notes
A Blender Unit is a meter. Even if one changes measurements to imperial units, internally Blender stores units as meters. There are a lot of places where geometry nodes only accepts floats. This means one needs a “To Inches” node.
A quick web search shows me that 1 meter is about 39.3701 inches. Getting the industrial leaf blower out to dust off my math skills I get a formula that looks something like:
X * 39.3701 = Y
X is inches. Y is meters. To see how many meters a single inch is, divide Y by 39.3701. To do this in Geometry Nodes one needs a value node, and a math node set to divide.
Group those nodes by pressing <ctrl+G>.
In geometry nodes that looks like:
Press <tab> to exit the group, create to inches functions for all the variables, and one gets:
The Structure of the Inner Part of the Window
The innermost bits of this window look like: There are 5 cubes for both the upper and lower window. The wood pieces above and below the glass are called rails. The wood to the left and right of the glass are called stiles. I will also sometimes refer to the wood around the windowpane as a sash. Technically I believe the window sash refers to all the components of this inner part of the window frame.
The cubes are:
- The upper and lower rails
- The right and left stiles
- The windowpane itself
There is an upper and lower window pane, for a total of 10 cubes. I believe the upper and lower frames are the same size, so it may be possible to duplicate them.
Where they meet at the center they overlap. I believe the upper and lower rail have the same height.
The lower window is offset by the depth of the stile.
If one does not offset a cube when creating it in Geometry nodes it is centered at the world origin.
To create this window sill we are going to need to do a lot of dividing by two and adding or subtracting.
A lot of the window structure is either mirrored on the X axis, or on the Z axis. So let’s create a mirror group for each of those.
The Z axis mirror looks like: Notice that the transform for scale on Z is -1. The X axis mirror will be the same, except X will scale by -1 instead of Z.
Once one of the mirrors is created, press <tab> to get out of the node group. <shift-D> to duplicate the group. Then, and this is important, click on the number by the shield so that one may change one of the groups without changing the other.
Before one does this the two node groups will look like:
After pressing the number, and renaming the group, it should look like: