Module 4 - Rise or shine
For this project, I created a shelter structure that can be modified/adapted by the user. I decided to map one of Monet’s paintings of the “Falaises d’Etretat” -close to my hometown- as shown in figure 1 below.
Figure 1: Falaises d’Etretat - Claude Monet
The following section shows the results I obtained for this assignment. Figure 2 is the normal image mapped onto my structure. Figures 3 and 4 show both the debossed and embossed surfaces. Finally, figures 5 to 7 show how the panels adapt to the sun's directness.
Figure 2: Normal image mapped onto the surface
Figure 3: Debossed image
Figure 4: Embossed image
Figure 5: Adaptive panels based on sun directness at 7am - low panel density
Figure 6: Adaptive panels based on sun directness at 1:45pm - low panel density
Figure 7: Adaptive panels based on sun directness at 4:30pm - high panel density
The following steps describe my modelling approach for this assignment.
Step 1: Gather user input and start creating guides for the structure
For this part, I wanted to modulate a sine wave to put on top of the shelter. For that, I created a line from two points, as shown in the Starting points sine curve group. The points are modifiable using the sliders in the User inputs group. Then, I remapped the line using reference points as shown in the Remapping group. I then applied a sine function to these points to modify their heights and mimic a sine wave. The wave amplitude and the number of waves can easily be adjusted. This sine wave will be used to create the overall shape of the structure (detailed in Step 2.).
At the end of the project, I created a User inputs group. This group allows the user to change the structure easily, like its length, height, base width, horizontal base offset, and sine wave horizontal displacement.
Step 2: Create guides for the structure (continued)
The second step for this project was to create four straight lines to guide my structure. As shown in the Structure straight lines groups, a line is created under the Create baseline node, and it is then offset in the y- and z-directions through the Offset line nod. Finally, the Sine Curve Definition group shows how the sine curve was created on top of the structure. The points previously created are split into their x, y, and z coordinates, where the latter is offset by the sine function described in Part 1. The node NurbsCurve.ByPoints creates the sine curve from the newly created points.
The group Create wire structure allows to combine all the curves into one list. It wan then be lofted to create the final surface of our structure.
Step 3: Panelise the surface and import + orientate the image
The image chosen was imported into the project as shown in the Get image file data group.
In the mean time, the surface create in Part 2 was panelised using the Panel.PanelQuad node. A number of U and V panel was chosen and is free to be modified by the user - more panels = better definition. The points resulting from the Panel.PanelQuad node were then used to place the panels, in this case the React-Seamless as shown in the Family Types node. The panels (defined as adaptive components) will later be used in part 4 to create the coloured panels corresponding to our chosen image.
The following logic shows how the image was flipped to obtain its desired orientation. For that, we used List.Reverse and List.Transpose nodes to flip the image around. A user-friendly interface was produced in order to allow the user to flip the image to its liking
Step 4: Define the panels and assign colours to mimic the image
This step allows to customise the appearance of the panels. We assigned each panel a colour as shown in the Override colours group. Then, the thickness of each panel was adjusted to create the embossed/debossed effect. Lighter panels would appear smaller for the debossed image, and vice-versa for the embossed image. We allow the user to choose between a normal, embossed, or debossed image, as well as the intensity of the effect and the thickness of the panels.
Step 5: Adapt panels according to the sun’s directness
For this part of the project, we use the same code used until step 2. We input the lofted surface, along with the family type, and U/V parameters of the panels to create a grid of panels as shown in the Create panels group. Then, the sun's directness and how it affects the panels was determined using a custom node Panels.ComputeSunDirectness. This node helps determine the light intensity on the panels according to the sun position in the sky, and how the building is facing. We then assigned a colour range to the panel using another custom node Panels.ColorBlueToRedByValue. Panels more exposed to the sun will be assigned a redder colour, and panels less exposed a more bluish colour. Then, we modified the openings of the panels according to the sun’s directness on the panels. Once again, the more exposed they are, the more open they would appear, and the less exposed the more closed. The results are shown in figure 5 to 7 in the Results section, with examples at different times of the day and different panel densities.