Rise and Shine
Stage 1 Part 1
For this part, I created a simple arc with number sliders to determine the radius, and the start and ending angles of the arc. This arc then gets extruded in the z-direction by a height parameter also controlled by a number slider. I created a number slider to control the number of u divisions. Then to figure out the corresponding v value, I took length of the curved arc then divided it by the (height of the arc / number of u divs). This would give me almost perfect square panels. I then followed one of the example in order to sample the panel colors from an image input. I noticed that the image was rotated 90 degrees, but since I provided a image of a flower in a portrait orientation, I felt that it was ok to leave it as is if only to maintain the stretch/aspect ratio of the original image.
Stage 1 Part 2
This part was very similar to part 1, but I changed the base curve to be based on a cosine wave. I have sliders for the wall length in the x direction, the number of waves, and the height of the waves. To make sure that I have the appropriate number of waves I have the curve function be the following (waveHeight * cos(2 * PI * numWaves / wallLength * x)). I also have sliders u divisions and the height of the wall as in part 1. From this point, the only thing that really changed was that I sampled the images for their brightness and based on the brightness, extruded the panels on the serpentine wall in the positive y direction, properly scaling for the workspace units (feet). Note, that for each of these image inputs, I pre-rotated them 90 degrees clockwise in order to achieve the right orientation for the final output. I really enjoyed this part of the assignment, and spent a long time trying out different images. I ended up choosing these three images: a painting of a scene from How to Train Your Dragon, an acrylic paint marbling image, and a screenshot from a game I play.
Gonna Need Shades
Sun Position 1 (X-Axis Rotation: 37, Position on Curve: 0.581)
Sun Position 2 (X-Axis Rotation: 134, Position on Curve: 0.505)
Sun Position 3 (X-Axis Rotation Angle: 37, Position on Curve: 0.861)
This was the hardest part of the assignment by far, and I definitely made it a bit more difficult on myself by taking on this type of folding panel. I also at some point switched to Dynamo to get it working but ended up coming back to here. Most of this was done by following some of the TA videos (Example: Changing Panel Appearance Based on Orientation in Grasshopper) as well as the Parastorm Lab tutorial (Example: Folding Sunshade Panels in Grasshopper).
I think the most tedious part of this stage was dealing with all of the walls individually instead of in one go. This means that there’s a lot of duplicated node logic in my project file and it’s was a bit difficult organizing everything. I did my best, but there’s a lot of crossing nodes and this was definitely the most nodes I’ve dealt with in a software like this. Regardless, while I did follow the videos I do have some implementation notes as follows.
To simulate the sun path, I modified the example nodes in the TA video, to take a base arc that can change the radius as well as the angle at which it’s rotated around the x-axis.
For the sun directness, I also modified the logic that the TA example had, and instead of taking the dot product of purely the sun position and the face normal, I instead took the dot product between the face normal and the sun position minus the center point of the panel. This way, I would have variation of the dot products across the same face. This is why you might see complete white on a corner of one side of the wall and then the rest is a gradient to a light brown. To speak on the color choices, I control this with the sun directness and map that to the lightness in a HSLA color picker. The hue and saturation are standard across all walls, at 35 degrees and 0.8 saturation. If lightness is 1.0 (ie in direct sunlight), the color of the panel will be white or very close to white. If it’s not directly in sunlight, but also not directly opposite, it will be a nice brown. If it’s directly opposite, the color of the panels look almost black.
And finally, this is somewhat implied in the implementation of this, but the shades control points scale are affected by the sun directness, hence why the panels opposite of the direction of the sun are very open and the ones in direct sunlight are closed.
(Note: I also have some nodes that are not being used because I initially was going to do the rotating, louvre, and/or scaling framed shades. I ended up settling on the really pretty triangle one because I felt the others just didn’t look right or didn’t manage to complete them).