ladybug-tools / ladybug-geometry

🐞 📦 A library with geometry objects used throughout the Ladybug Tools core libraries
https://www.ladybug.tools/ladybug-geometry/docs/
GNU Affero General Public License v3.0
23 stars 22 forks source link

Fix Mesh2D Triangulation for four-vertex faces #204

Closed noamgat closed 3 years ago

noamgat commented 3 years ago

Reason being is that _quad_to_triangles return 0 based indices. These indices have to be re-adjusted to match the indices in the "face" object

CLAassistant commented 3 years ago

CLA assistant check
All committers have signed the CLA.

noamgat commented 3 years ago

Thanks for merging! Unfortunately this will probably be my last contribution because of the license. If I understand correctly, if I use it in an internal server, but external users access the results which are affected by the ladybug calculations, it still forces me to open source my entire code, correct?

chriswmackey commented 3 years ago

@noamgat . Opening all of the code on the server isn't a strict requirement to satisfy the AGPL but doing so would certainly be one way to satisfy it.

It might help to clarify that our intention with the license is to prevent people from charging others for access to Ladybug Tools, whether that's through a proprietary desktop application or though a paid cloud service. We may update the license in the near future to make this intention clearer. But, as long as you are not selling software or SaaS that uses Ladybug Tools, our intention is that you are free to use Ladybug Tools as you wish.

noamgat commented 3 years ago

I have to say Affero GPL is probably the most confusing license I've found so far. We are considering two scenarios, and I wonder if there is any difference Scenario A: I use Rhino+Grasshopper + Ladybug plugin for grasshopper (for loading EPW files and the like), and I serve an automation C# script I wrote to users (commercially) Scenario B: I use a python server that uses this library to load EPW files, and I serve results that were affected by the EPW to the users. Assuming both solutions are commercial, are they both violating AGPL if I don't release the source code of the entire backend? (Grasshopper graphs + C# Script / Python code)

chriswmackey commented 3 years ago

@noamgat , Sorry for the late response. I promise that there are more confusing licenses because we have been researching them 🙂 . And, as I said, we are very likely going to change the license in the near future to clarify our intentions so you can refer to the following statement to make plans going forward:

To summarize our intentions, we really don't care if Ladybug Tools is used for commercial purposes or not. There are tons of architects, engineers, and consultants who use Ladybug Tools for commercial services and we want to encourage this as much as possible. What we want to avoid is people selling SOFTWARE or SOFTWARE SERVICES that use Ladybug Tools. So, from our perspective, you are perfectly in the clear to put Ladybug Tools on a server as long as you aren't selling access to that server through a web service. If you are just rendering typical architectural, engineering, or consulting services for a client and those services include a server-based tool that you use to collaborate with the client using Ladybug Tools, then that's fine because you're selling architectural/engineering services and not a software service. Just don't sell subscriptions to a web service that is using Ladybug Tools or sell a desktop application that you have built with Ladybug Tools.

It may also help to know that the Ladybug Tools license extends to grasshopper definitions built using Ladybug Tools (since they are still software), though it does not cover images or data that have already been produced from Ladybug Tools. So, from your description, it appears that Scenario A and B are the same. The only case that wouldn't be covered is if you used Ladybug Tools locally to build a pre-populated database of images and you served those to the user through the service (so no execution of Ladybug Tools as part of the service itself).

I hope that helps.

noamgat commented 3 years ago

So the bottom line is that both scenarios are violations of AGPL and require to open source all of the code. Thanks for the clarification.

github-actions[bot] commented 3 years ago

:tada: This PR is included in version 1.22.10 :tada:

The release is available on:

Your semantic-release bot :package::rocket: