How to assure quality of algorithms and plugins

Hi all,

I’m new here, although my colleagues are using Honeybee/Grasshopper/Ladybug for a while now. We discovered how wonderful Honeybee and Ladybug work, and the rich possibilities of these tools. I understand a major part of the quality depends on how you implement it into your project. We also understand the way the software works and we can implement it to our projects.

But to me, that also raised some questions on how the quality of plugins and codes is being assured.

Are the codes/algorithms being checked on laws of physics? How are plugins being checked before they are published? Are errors/bugs that are discovered collected somewhere in a kind of list so anyone knows what to look out for?

Just some questions, but since we would like to use these tools more often in our projects it is useful for me to explain this to fellow project partners.

I hope some of you can help me on this. Thanks a lot in advance!

The tools are mainly interfaces for the widely used and validated simulation engines. The physics is taken care of by those engines.

The plugins are constantly under development. The development process is driven by the feedback and the issues posted by the users on the forum

You can visit the Github repositories for the plugins and go to the issues. That should be a good starting point.

1 Like

I would also add in addition to what @devang has already mentionned that the core python libraries in particular are being developed with some pretty strict automated unit testing to ensure code produced behaves as expected. You can review the code tests on the github repositories for each plus library. Let us know if you would like to know exactly where to find those tests and I will happily give you a quick walk through.

Here are the libraries with tests in place at the time where this post is published:

It’s worth noting the tests aim to assert the capacity of the libraries to interface with validated physics engines, not the validity of the physics engines or any assumptions made by the code.