Modifying Ladybug Tools Components and AGPL

You’re very welcome, @chojje ,

In honesty, our choice of AGPL was driven by the fact that some software vendors in our past used our code in commercial products and web services without attribution or any type of compensation, which put us in a vulnerable position since we’re still building a self-sufficient company that can maintain Ladybug Tools long into the future. Your case here of making a free open source plugin or extension off of the Ladybug Tools work is something that we want to encourage and we don’t want the license to hinder. So, as long as your distribution on Food4Rhino doesn’t include the Ladybug Tools core libraries (having people install Ladybug Tools separately) so that it doesn’t give vendors the impression that Ladybug Tools is MIT, then you really can go ahead and make your components MIT. Using the Ladybug Tools components as inspiration does not count as a derivative work and the choice of license is yours.

Granted, if you choose a GPL license, this may make things easier if you want to distribute your work through channels other than Food4Rhino. For example, I would point you to @edpmay 's work on Honeybee-PH. He has used the recommended ways for extending the Ladybug Tools core libraries by building a honeybee-energy extension package called honeybee-ph, which he distributes through PyPI as well as in his Grasshopper plugin. You could similarly build a honeybee extension that injects properties and methods onto things like constructions and materials so that you can track embodied energy and carbon of those materials as models are constructed and edited. And this may make your work easier to maintain, easier to reuse in environments other than Rhino, and easier for other software developers to build on your work.

However, because PyPI automatically distributes the dependencies along with your package, you really should be choosing a GPL-style license if you want to distribute through PyPI since people will be getting a copy of the ladybug tools core libraries when they use pip install honeybee-lca or something like that. So that’s all just something to keep in mind.

To answer this:

The AGPL states that you should give attribution if you’re distributing Ladybug Tools or copy/pasting it’s source code into your own. From our perspective, it’s always nice to be appreciated but we aren’t sticklers for this type of thing unless we see someone deliberately trying to avoid crediting us or claiming our work as their own. The fact that you’re asking these questions on a public forum already shows us that you’re not that type of person. So please try to credit us but don’t beat yourself up if you forget :slight_smile: .

1 Like