Solar Fan & Solar Envelope Release

I received multiple emails about solar fan and solar envelope and if I want to add this components to Ladybug. Here is how you can calculate both of them with shading designer! (70.8 KB)




How can I add the effect of climate parameters like how much foggy or cloudy is the sky on a specific day & hour of a year?and also the air pollution in a day?

Hi Yasaman, Check importEPW component for hourly totalSkyCover. I’m not sure if you can find the data for the air pollution in a day in the weather file. You can read more about the data in an epw file from this link:…

Hi Mostapha,

Thank you so much,that’s a useful pdf.

I put together two new Ladybug components that have streamlined the generation of the solar fan and solar envelope. They essentially do what the original GH definitions on this page accomplish. I have uploaded the components to the github and you can try them out by syncing with Ladybug 0.0.53. I will upload an example GH file here soon!

Nice work Chris… Also loved the icons. Well done!

Hi Mostapha and Chris,

Nice, both of you!!

I have a question: This works fine with concave shapes. With convex it doesn’t. Specially the Fan Envelope.

Any comments?



Hi Abraham,

Thanks for trying the new components. Do you have an example file? I added the issue to github and we will take a look soon. Thanks, -Mostapha

Hi Mostapha,

Attached an example with the issue in the Envelope option. Can’t reconstruct the fan problem.


-A. (73.4 KB)

Thanks Abraham!

Hi Abraham,

Thanks for letting me know about this. It turns out that what you were experiencing was not specifically related to concave or convex shapes but was a result of a bug in the BooleanIntersect operation of RhinoCommon. Essentially, some solar vectors were being discounted from the generation of the solar envelope because the BooleanIntersect operation was failing. The shape you found that broke the component just happen to have the last booleanIntersect fail and so it output no results.

I have put up the issue I was experiencing in a discussion and we will hopefully get it resolved soon (…). For the time being, you can definitely trust the results of the solar fan but hold off on using the solar envelope until we get this bug in BooleanIntersect addressed.

Thanks Chris,

These are a great couple of components.

Hope there will be an answer from the GH guys … soon



Hi Abraham,

I am happy to report that the issue with the Solar Envelope has been solved and it now outputs a reliable result. The new component has been uploaded to the github and you should feel free to try it out. I ensured that it works on all of the curves in your original file as well as some more.

Thanks for the awesome work-around that made this fix possible goes to Guilio, the author of GHPython. Guilio’s code was also used to pimp-up the solarFan such that it always outputs a single brep.

Enjoy experimenting with solar geometry!

Hi Chris.

Great!! Seems to be working.

Now i’ve found that for some cases (so far, L shapes) some geometry is baked into the rhino model. See attached for that, lower shapes.

Thanks a lot. This is good dtuff.

-A. (84.9 KB)

Hi Abraham,

Thanks again for keeping me posted. The issue that you are having seems to be pretty minor. It looks like you are getting the right result out of the component and the component is just having difficulty cleaning up after itself. I was not able to reproduce your problem with the GH file that you sent me (it’s working fine for a bunch of weather files that I have tried in you GH file). What epw file are you using with Ladybug to generate the solar vectors?

Also, could you let me know if the attached version of your GH file fixes the problem (I just put in another check that helps the component clean up after itself)?


solarFan_solarEnvelopeViewFromSun_For (80.6 KB)

Hi Chris and thanks!

Looks fine now.

The weather file i am using is ISR_Tel.Aviv-Bet.Dagan.401790_MSI.epw. I tested other EPWs too and it works good.

Should i update the component?

Thanks again.


Awesome! If that extra set of checks fixed the problem, then we’re set. I put a similar check into the solar Fan so that hopefully no one ends up with geometry accidentally baked when they use that. I pushed the two new components to the github. Go ahead and sync!