Solar Envelope component for shading design (for outdoor spaces)

Hi all,
I have a design problem that I have been working on and would like to get some advice if anyone has the time. It’s a long post, but hopefully interesting !

I am designing a shade canopy ‘system’ , where the form of the canopy is optimised for the sun path of the particular location it’s located in. The idea is to have a flexible grid (probably made from steel cables) that can be manipulated into the form defined by sun vectors it needs to block. Textile panels would fill in the grid spaces. Here’s an image that i hope helps to explain what I mean. I did not do it parametrically and its purely conceptual right now but it gives an idea.

This post is specifically on creating a script that defines the form the grid should take at different latitudes and in different urban contexts.
one extra thing - ideally i would like to create a form that keeps the surface as perpendicular to the sun as possible across the day because the textile I intend to use is retroreflective at angles close to perpendicular.

My steps so far:

  1. Model site and conduct UTCI analysis of site for the whole year
  2. Average the the UTCI values of the test grid and extract HOYS for when average hourly UTCI is above 35°C
  3. Use the HOYS to produce the solar vectors for these periods using the sunpath component.
    • Feed vectors into Solar Envelope component set to Solar Rights to produce a boundary mesh. The geometry input is the shade canopy dimensions and the ‘obstacles’ input is the boundary of the area I want shaded. Since the solar rights mesh is showing you the surface under which you can build without shading the surrounding context I think the resulting surface is more or less the minimum form that will block the sun vectors.

This approach kind of works - i cant get the perpendicular angles but it allows me to account for different contexts and define some of the canopy dimensions.However it doesnt allow me to set a minimum height (just max) , it lowers the entire boundary rather then sloping the boundary if lower sun vectors are introduced. I dont understand exactly how it’s calculating the resulting mesh so I’m wondering if anyone has thoughts on this approach?

Other options:

  • is this a problem better solved with generative design? I.e genomes are xyz lcoation for each intersection point of the grid and the fitness values are maximise shaded area and minimize UTCI?

-I’m also trying another method where I turn the vectors into curve geometry, then find the interesection of these curves with a dome mesh that represents the dimensions of the canopy I want. I was then trying to panelize the dome so I can group the vectors based on the similarity of the angle they hit the panels (using K means clustering form Lunchbox) thus finding the average/optimal angle the panel should be orientated at. Then i would have to turn this into my grid surface. Anyway it was becoming a bit complicated (for me).