New Solar Envelope Component Release

Hello Ladybuggers!

We have just released a new solar Envelope component for Laybug called SolarEnvelopeAdvanced! The component offers two envelopes -

Solar rights - A 3D envelope which defines the maximum height of built volume which would not violate the solar access for defined surroundings given filtered sun vectors.

Solar Collection - A complementary 3D envelope which defines the lowest heights from which a new built volume would receive solar access, given a built context and filtered sun vectors.

The new component harnesses ladybug’s SunPath tool to determine relevant sun positions based on input from an .epw file. The simulation also takes into account surrounding buildings if provided or a self envelope if omitted, with the goal of adding control and flexibility in conjunction with a more accurate simulation.

A video tutorial is available here -

An example file is both attached and accessible through here -…

The component takes as an input a filtered list of sun vectors, a base surface which represents the site border and a list of curves, representing the surrounding context


and outputs a point cloud and a polysurface -


which in turn can be closed and further evaluated (On the left - solar collection, on the right - solar rights) -

By Boris Plotnikov and with the assistance and guidance of Prof. Guedi Capeluto, based on SustArc model. The component could not have be alive without the invaluable help of the awesome Chris Mackey and Mostapha Sadeghipour Roudsari in development and integration, also a big thanks is due to Abraham Yezioro for testing and advising on usability.

For further reading it might be worth taking a look at Ralph Knowles’s work, e.g -…
and G. Capeluto and E. Shaviv’s, e.g -
the component relies to a great extend on the concepts described there.

Thanks for reading and enjoy! (414 KB)

This is great deal tool Boris. Good job and thanks.

I’m sure the community will enjoy this a lot. Highly recommended.


Agree with that. Very useful tool!
Thank you for sharing it.


great work Boris!

Been playing around with this, love it. Thanks Boris!


Thank you for your sharing.

There is a problem when i simply replace breps and surface.

something wrong with Solar right.

Can you help me?

mytest.3dm (849 KB) (401 KB)


Your file is working fine for me AS IS.

It makes me thing that it could be a Tolerance issue. Change it in rhino to, say, 0.001 and re-run your file.

I would also increase the grid size. 1mt is very high resolution and i’m not sure it will make any difference, at least for this specific case.


Thank you very much, Boris, for this very useful tool!

Well done, Boris! This is going to make some waves in urban planning and design!

Hey ChenXin,

Could you try this file ? What worked for me is exploding the obstacle surfaces to individual obstacle curves (397 KB)

Hi Boris !

I’m having issues modifying the obstacle curves in my file. Fore some reason I’m not being able to select them properly, neither in your example file nor in mine.

How does one assign them? I’m working with context made up of an extruded polylines (now a polysurface), should they be solids ?

Thank you !


Hi Angie,

Mind sharing the GH definition?

In the example file they are internalized curves.

If you’re passing surfaces or solids that would be a problem, I would suggest that you extract the relevant curves, explode them and then pass these curves to the obstacle curves input.

If it still doesn’t work let me know and i’ll try to help out!

Thank you for this great tool.

If I understand correctly, the method here relies on geometrical dependencies with the Sun Vectors.
Could it be applied with dependencies to simulation results such as the VSC component?


Hi Boris and group members,

Thanks a lot for so great component, Boris.

I got a small problem by making a closed volume, which you can see below. I checked the envelope there was no error, but when to use the BBX to check the intersective boundary line, there was a gap.

So, could you please help me out ?

Thank you in advance.

2 Architecture_Solar Enevolope& (494 KB)

Hi Xiaojian,

Please find attached file.

-Devang (488 KB)

Hi Devang,

That did a great help. Thanks a lot.

Best regards


Hi Boris,

First of all, great tool!!! very interesting.

I would like to ask something. I didn’t have the opportunity to test the tool yet, so sorry if it’s stupid.

Is there any way to create the mesh for the solar rights under the condition of the surroundings getting just 1h of sunlight?

I am thinking on a very restricted area, so how to get the minimum sun rights without reducing too much the available volume for your development.

I get that it can be tested just for 12:00 as the most vertical sun position, but sometimes the urban morphology is quite tricky and another hour may be better for the solar access.


Hi Julia,

First of all, not a stupid question at all.

We’re thinking of implementing something similar but for now there isn’t an automated way to do that. You could set something up with a bit of grasshopper though, especially as you’re just interested in one sun hour and each iteration shouldn’t take that long (though that also depends on the context and the test surface).


Thanks Boris,

I guess it may be worthy to check the best timing for each volume with the ray-tracing tool and then running your tool during those hours… I think its something worthy to test.

So interesting!