Rise and Shine, Part 1


I wanted to create a ‘peaceful’-feeling wall, so I decided to use an image of a tranquil boat on the coast. I began by constructing an Arc on the XY plane, with sliders parametrically controlling the radius and start/end angles. This curve was then plugged into an Extrude node with a Unit Z vector to establish the wall height. To automate the panel density, I implemented a formula using Division and Round nodes that derives the U and V inputs from the arc’s total Length and the wall’s height, ensuring panels remain nearly square regardless of dimension changes. I then used the Panel Quad node to divide the surface. A major challenge was ensuring a 1-to-1 mapping for the image data; I resolved this by applying an x-1 expression to the Range components and adjusting the Graft logic on the Construct Point node to align the sampling grid with the panel order. Finally, I used an Image Sampler and Custom Preview to project the image colors onto the interior face of the wall.

Rise and Shine, Part 2


For this project, I transitioned to creating a serpentine wall that projects the colors from this beautiful image of lilypads. I began by using an Expression node to generate a sine wave logic for the base curve, which was then extruded in the Z direction. A key departure from the previous task was using an Image Sampler to drive physical relief. I used Remap Numbers and Bounds to translate the data. To ensure the bricks projected correctly from the curved surface, I used Evaluate Surface and Area nodes to extract the local Normal vectors for each panel's extrusion. The main challenge involved synchronizing flattened data streams to ensure the Custom Preview correctly mapped both color and thickness to the 3D bricks.
Gonna Need Shades


I modeled a two-level parametric building starting with a centered Rectangle using Construct Domain logic (x/2, -x/2). The lower walls were Extruded, then Offset and Moved vertically to establish the second-floor footprint. To create the curtain wall, I used Length and Round (Ceiling) nodes to derive the U count for the Panel Quad node, ensuring the glass panes remained a single unit tall. For the environmental analysis, I utilized Ladybug to generate sun_vectors based on specific location data. I used a Merge node to combine both floors into a single data stream before calculating the Dot Product between the sun and the panel Normals (extracted via EvalSrf). To visualize the solar "directness," I mapped these values through a Gradient component. For my location I used Palo Alto’s coordinates and I set the time to November 11th at 4am (this was picked arbitrarily). One challenge was in figuring out how to download Ladybug for a non-Intel macbook, which required some extra steps looking through forums/blog posts on the issue (ultimately the solution was a Python and Rosetta2 installation).
