Ladybug Tools for Sverchok and Blender
For those unaware of Ladybug tools, Ladybug tools is a suite of visual programming nodes that allow users to easily use otherwise rather technical building physics software, and link them to parametric designs. There are four related categories of nodes. Ladybug allows like EPW weather analysis, shadow studies, solar, psychrometric charts, Honeybee does daylight analysis with Radiance, energy models with OpenStudio, and envelope heat flow with Therm. Butterfly hooks into OpenFOAM. Dragonfly models large-scale climate phenomena, such as urban heat island, climate change, and local climate factors such as topography. Together, they form Ladybug tools. I stole this intro from their website, which you should check out here: https://www.ladybug.tools/
The creator, @mostapha , has previously posted about the distinction between the pure FOSS Ladybug libraries, and the currently proprietary Ladybug visual programming interfaces - shipped as a set of nodes for Rhino + Grasshopper, and for Revit + Dynamo. The idea was floated around that it is possible to port it to Blender as most of the code is platform agnostic (which is the hardest part, so a huge thank you to @mostapha !). I'm excited to say that I can finally announce some progress on this.
For those who prefer the bugtracker, this is the Github issue to watch (and yes, contains links to repos with experimental code). In the meantime, here are some screenshots of the first prototype. After this prototype matures, it will be possible to generate nodes in bulk, so the entire node suite would be ported over in one go, and continue to reflect changes upstream. Many thanks to @nikitron - where this initiative would not be possible without the Sverchok add-on to Blender.
In short, watch this space! (Or, join in and code!) Also, when a bunch of nodes come available, especially for those already familiar with Ladybug, please test!
Comments
I have been thinking about running the ladybug directly on IfcOpenShell entities, to run some automated ladybug scripts without a GUI. But Sverchok looks really cool! Ever since the cycles node editor I have been wondering why this is not used more generally in Blender.
we're (slowly)beginning to adapt ladybug tools in freecad too. really the tools are very well made, all the interesting stuff is in the gui-less foss parts, with a good structure.. very handy to use. the main issues i'm facing now is that the analysis tools (honeybee) mostly need an analytic model, which we still don't have very clearly defined in freecad, so we need a bit more homework before venturing further
Sorry for my rather basic question but, what is an analytic model?
Thanks in advance.
A good, high level description...
https://autodesk.typepad.com/bpa/2013/12/from-bim-to-bpa-what-is-an-energy-analysis-model-eam.html
Per the following post, we're potentially looking for a dedicated team member to run an 'energy analysis' on the evolving design.
https://community.osarch.org/discussion/197/funding-open-source-development-a-stab-at-an-open-and-distributed-method-of-profit-sharing/p1
Would think this residential design might be a great test bed for this Ladybug/Blender integration.
@theoryshaw it would be great if somebody could take that role! For the moment, though, I'm only focusing on Ladybug - the energy analysis tools are primarily in Honeybee, I believe, which is still in the queue.
Some progress: now the full suite of nodes are generated from JSON, there are just over 60 nodes in total for Ladybug, and a bit more geometry visualisation has been implemented. Most nodes apparently now magically Just Work, so it needs more stress testing by environmental guys soon.
This is great!
Noob question about energy analysis : wich wall surfaces are taken into account, inside ? outside ? axis ?
@stephen_l noob answer coming up (disclaimer: I am not trained in energy analysis, but I have helped a couple times to prepare some basic 3D zones on projects)! When I've prepared zones, external walls are outside, for internal walls it depends whether it's between conditioned and non conditioned spaces, and if it is conditioned, whether how large it is (i.e. internal partition walls may be ignored). If the internal wall is not ignored, I have divided it at an axis. Also the zone will be broken up further that don't correlate to walls - it will be broken up based on proximity to facade, as well as be capped at a certain floor area (a large space will be broken into different zones).
This picture shows how a locus is drawn inset parallel to the facade, as well as breakups into zones:
Hopefully someone who actually knows energy analysis will give a much better answer :)
Each country and standard has its own rules… For example, France, Germany and Switzerland have different rules…
In Switzerland for heating energy analysis you take outside except it is a wall between 2 different heated zone then you take axis… But for an hourly energy analysis for heating and cooling you need both interior and exterior… The standard which explains how to measure building element for energy analysis in 64 pages long…
(Yes all the … means I wish someday same rules will apply everywhere based on a common scientific model)
So the short answer is that you want to be able to retrieve every possible metric and use the appropriate one depending on the country rule and standard you are running your analysis against.
At least an european ISO should be nice to have.
So to summarize, we need to provide inside, outside and axis surfaces under condition + sub volumes for large areas (near outside / to slice space) to cover every needs.
Now still left to define rules for each country.
More progress - getting closer to packaging. Images below show:
Good job Dion! Have waited for IFC nodes too
Announcing that Ladybug Tools for Blender v0.0.200927 is now released for testing. Please do not advertise this to the wider public, as it is expected for the software to be in alpha quality state, and only those who are OK with testing should be trialing this. Do not expect a finished product. Do expect bugs.
Installation steps:
Things to be aware of:
WARNING: geometry <...> not yet supported in Sverchok
please ignore. However, if you seeWARNING: geometry <...> not yet supported in Blender
, please report as a high priority. You may safely ignoreTODO: interpolate this line
messages.LB Out
node to bake Ladybug Geometry, or to extract unbaked verts, edges, and faces for further Sverchok progressing. Right now, it bakes directly to the scene collection with no garbage collection, so it can make your scene a bit messy, but was the simplest implementation to show that things work for now.Alt-Space
to search.Please report bugs here: https://github.com/ladybug-tools/ladybug-blender
Questions may be asked in this thread.
I will find some time tonight to make a short video recording.
Now we need some json examples for import.
Hi everyone. One question: How to access the "Ladybug to Sverchok" node? I can't find it. It seems to be a key to getting output into blender. I tried LB Out, but was unable to get it to work.
Also, I understand this uses the latest blender 2.9 if that helps anyone else.
EDIT: "LB out" works, it is just a matter of knowing what to feed it.
it is the same node
@edwinguerra glad to hear you worked it out! Indeed, some nodes output geometry, others do not. The LB Out node will only work if you connect a node that outputs geometry and it has geometry within it (e.g. some geometry will only be generated if the node can validly calculate input data). In Grasshopper, Grasshopper actually just always calculates geometry which is why you don't need to do this explicit step (under the hood, apparently it actually copies the geometry again and again - which may be inefficient).
I recorded a short video, hopefully it helps:
It was my first time with Blender and Ladybug Tools but it worked! Thanks for the video @Moult
Now it's time to learn more the basics of Blender and I'm looking forward to the Honeybee migration, in order to run OpenStudio simulations,
Honeybee is next in the list!
@nikitron out of curiosity how is Sverchok pronounced? I checked on Google Translate and if I pick Ukranian it sounds like "Sver-jok". If I pick Russian it sounds like "Sphere-joke" :)
Ok, I code in Ruby in order to develop SketchUp plugins but I haven't tried Python yet. But if you need some help, let me know.
it is not joke )))
It is Russian word, in ukrainian cricket is tsvirkun (similar to sverchok spelling). Mostly people in Ukraine speak Russian, so the name in Russian.
Sv,er`tʃɔ:k
I followed @Moult 's video, but when I open the file again it's broken. Is it just me?
@Aldo can you share your file and report a bug on https://github.com/ladybug-tools/ladybug-blender please?
Sure
In my case I got a yellow ground without shadows. Any idea why?
[EDIT] I rushed into this, I already found the explanation in the video
When I got to this setup I got an error:
from space_view3d_point_cloud_visualizer import PCVControl
ModuleNotFoundError: No module named 'space_view3d_point_cloud_visualizer'
@bitacovir In the end I got a similar result:
It sounds like the 3d point visualizer is not installed? Download it and install like you installed blenderbim. https://github.com/uhlik/bpy/blob/master/space_view3d_point_cloud_visualizer.py