Solar Position
Experimenting with various plug-ins for solar calculations, I found Daniel Da Rocha’s robust implementation of the solar position algorithm in vb.net. It calculates the solar angle of any place and time. Although it’s written in the old vb.net component, it still works great. I’m trying to create a fast and easy workflow to optimize Grasshopper models based on solar directions. This is done by projecting faces to the solar planes and checking how much of their area is included in that direction. After this check, I added a color gradient to see the results (based on the calculation of projected face area / original face area. If it’s 1.0 it means that the face is directly facing the sun at that particular time and day.)
The animations below simulate the daily solar cycle of Antalya on March 16th. I’ve picked the coordinates (latitude and longitude values) from google maps.
Here is the Grasshopper file; [GHX: 0.8.0066] that includes Daniel Da Rocha’s sun position script with a couple of additional components to show the solar vector and calculate the face directions; and the Rhino file here: [3DM: Rhino4]
Edit: Somehow, it crashes Rhino if you select a planar (flat) surface as a base, be careful about that, it has to be a curved surface.
Edit: Solar position script is not working on Rhino 5 / Grasshopper 0.9.0061 anymore. Maybe I should check this out in the future.