Ladybug Tools for Sverchok and Blender

edited February 2022 in General

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!

stephen_lJQLbrewskybrunopostleJesusbillnikitronpaulleetheoryshawReD_CoDEbitacovirand 7 others.
«13

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

    brewskynikitronpaulleebitacovirMoultbasweinArvleandrobp
  • @yorik said:
    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.

  • Sorry for my rather basic question but, what is an analytic model?

    A good, high level description...
    https://autodesk.typepad.com/bpa/2013/12/from-bim-to-bpa-what-is-an-energy-analysis-model-eam.html

    xavitron
  • 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.

    baswein
  • @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.

    brunopostlebasweinbitacovirJQLstephen_lbrewskyReD_CoDEleandrobp
  • This is great!

  • Noob question about energy analysis : wich wall surfaces are taken into account, inside ? outside ? axis ?

  • edited September 2020

    @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 :)

    JQL
  • edited September 2020

    @stephen_l said:
    Noob question about energy analysis : wich wall surfaces are taken into account, inside ? outside ? axis ?

    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.

    MoultReD_CoDEstephen_l
  • At least an european ISO should be nice to have.

  • edited September 2020

    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:

    1. More nodes, and evidence that they can connect to each other
    2. Coloured point visualisation
    3. Raycasting! So finally you can actually do some analysis! If you ever wondered the impact of sun hours on the 21st of June in Sydney of a building shaped like a monkey, now you know.

    ReD_CoDEbrunopostlebitacovirJesusbillbrewskystephen_lJQLtlangCyrilbasweinand 5 others.
  • Good job Dion! Have waited for IFC nodes too

  • edited September 2020

    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:

    1. Install Sverchok (scroll down on https://blenderbim.org/download.html - download zip and install like any other add-on)
    2. Install Ladybug Tools (scroll down on https://blenderbim.org/download.html - download zip and install like any other add-on)
    3. Want to display coloured points? Yes you do. Install it.
    4. Restart Blender

    Things to be aware of:

    1. The nodes currently have no documentation. Be prepared to guess, and guess wrongly. The console may give hints.
    2. Look in the console for errors. If you see WARNING: geometry <...> not yet supported in Sverchok please ignore. However, if you see WARNING: geometry <...> not yet supported in Blender, please report as a high priority. You may safely ignore TODO: interpolate this line messages.
    3. These nodes are not the same nodes you will find in Grasshopper. Most users of the Ladybug Tools on Grasshopper are using the older Ladybug Legacy nodes. Ladybug Tools have since rewritten all their nodes from scratch, and this includes node renaming and restructuring of inputs and outputs. If you are using the Ladybug Tools [+] Plus version, then you will be familiar with these nodes. If not, be prepared for a few new things.
    4. These nodes are only Ladybug for now. You will not find Honeybee, Dragonfly, or Butterfly. This is a work in progress.
    5. Use the 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.
    6. Grid size will be ignored in analysis. Blender is a good mesh modeling package, and so I recommend simply using a subdivision modifier (you don't need to apply it) to set the resolution of your analysis.
    7. Too many menus? Use Alt-Space to search.
    8. Objects coming from the scene need to be nested to be used in Ladybug nodes. Use the List join node with the wrap option enabled as shown in this screenshot

    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.

    bruno_perdigaobrunopostlebitacovirstephen_lJQLJesusbillcarlopavCyriltlangbasweinand 6 others.
  • Now we need some json examples for import.

  • edited September 2020

    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.

    nikitron
  • @edwinguerra said:
    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:

    nikitronbitacovirbasweinagonzalezesteveDarth_BlendercarlopavJesusbillleandrobp
  • 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,

    nikitronMoult
  • 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" :)

    bitacovirCGRagonzalezesteve
  • @Moult said:
    Honeybee is next in the list!

    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.

  • edited September 2020

    @Moult said:
    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" :)

    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

    CGR
  • edited September 2020

    I followed @Moult 's video, but when I open the file again it's broken. Is it just me?

    nikitron
  • @Aldo can you share your file and report a bug on https://github.com/ladybug-tools/ladybug-blender please?

    nikitron
  • In my case I got a yellow ground without shadows. Any idea why?

    agonzalezesteve
  • edited October 2020

    [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

Sign In or Register to comment.