License opinion query

If your topic doesn't fit anywhere else, put it here.

Moderator: joepal

Re: License opinion query

Postby ingeras82 » Tue Sep 16, 2014 4:07 pm

Manuel wrote:Anyway I suggest you to don't spend much time on the mhx importer. Our main formats in future will be collada and fbx.

Hmm, that makes my importer relatively useless :). Collada and FBX are pretty ubiquitous so I can move past the import phase. Didn't know how well implemented the exports are, but I did a few tests and didn't find problems. Thanks for the heads-up.

duststorm wrote:But if you use the proxy fitting data in your software, or try to reverse engineer the proxy data from the exported mesh (similar to targets), then you are working with AGPL'ed data and you will have to license your software accordingly.

Well, there wouldn't be much reverse engineering since the formula to be applied on the proxy data is shown on your site. You just need the mhclo file and the exported mesh. I suppose that by proxy fitting data you mean the mhclo file. Anyway, changing proxies in a third party software (even if the result would be CC0) would just add an unnecessary step in the workflow since you already need to use Makehuman and it can do that also.

Thanks guys.
ingeras82
 
Posts: 13
Joined: Tue Aug 19, 2014 9:21 pm

Re: License opinion query

Postby duststorm » Wed Sep 17, 2014 12:10 am

ingeras82 wrote:there wouldn't be much reverse engineering since the formula to be applied on the proxy data is shown on your site.

That's why it's open source software. There are no secrets.

ingeras82 wrote:You just need the mhclo file and the exported mesh.

Yes, but the data is copyrighted and licensed under a certain license. It is this that we protect.
Reverse engineering indeed is just as simple as taking the inverse of the known formula (not even, just use the makeclothes algorithm) and obtain from the exported mesh again the data to be used for fitting.
But this data is essentially the same as the one that was originally defined as the clothes proxy data, which is, as stated before, released under certain license conditions. Reverse engineering it does not discard the copyright or license.

Think of the lengths some artists go through to prove that some piece of their music they own the copyright to was stolen, copied, mimicked and slightly altered. ;)

We just ask that no parts of MakeHuman are taken and reused to create a closed source product that does a similar thing. Apart from that we release the meshes you create with the software from any limiting license, so you have ultimate artistic freedom to do with them and use them in any way you see fit (that includes using them in commercial products).

If you modify MakeHuman, or create spin-offs of it, you should release the source code under the same open source license.

ingeras82 wrote:I suppose that by proxy fitting data you mean the mhclo file.

Exactly
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: License opinion query

Postby ingeras82 » Wed Sep 17, 2014 3:59 pm

@duststorm: I understand the reasoning and I have no problem with releasing AGPL software. But certain types of applications need a closed-source component. This brings me to my next question:

Suppose I make a command-line application that uses some parts of Makehuman code and/or data. Even an unofficial plugin. I must license it under AGPL and also the exported content would be AGPL- I can live with that.
This command-line tool would be used to export some information extracted form Makehuman data. For example: arm length, head circumference or how much the age slider has been moved (say a percentage), what hairstyle or piece of clothing was applied. This processed information would not include meshes, rigs and so on. Would this kind of information fall under AGPL in your opinion?
To give a specific example: a physics engine would approximate the head to a sphere so it would need a center point and a radius. If the application running the physics engine would call the AGPL command line tool to ask for center and radius would the application also need to be AGPL? I hope the example is clear enough :). If you need clarification I can elaborate.

I believe this touches the "aggregate" issue: http://www.gnu.org/licenses/gpl-faq.htm ... ggregation. The last part is the most important I think:
But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

So, in your opinion, arm length, age slider percentage, proxy applied would fall in the category of complex internal data structures?
ingeras82
 
Posts: 13
Joined: Tue Aug 19, 2014 9:21 pm

Re: License opinion query

Postby duststorm » Sun Sep 21, 2014 6:11 pm

You are correct that this falls in the "how intimate is the communication" discussion category.

We at MakeHuman consider a software component to be "communicating intimately" with MakeHuman software if it is exchanging data between running processes. Comandline use in the usual way in which GNU unix tools are used is allowed (execute the program, containing only GNU compatible code -- that means plugins too must be released under GNU license, with commandline arguments, let it run and produce output data, saved to disk, and exit).

I have written down in detail how the MakeHuman team interprets the AGPL license here: viewtopic.php?f=9&t=1705&p=23649&hilit=+license+intimate#p23649

in your opinion, arm length, age slider percentage, proxy applied would fall in the category of complex internal data structures?

I see no reason why measurements taken from the CC0 output mesh of mh would fall under a restrictive license. The important question would be: where do you calculate these measurements? If you do it from a MH plugin, that plugin should be licensed to the community (you would help out a lot of people by creating a good measurement plugin, it's a feature on our roadmap but due to lack of resources it's something for the further feature).
If you are not ok with releasing your measuring code, then you have to use makehuman to save your mesh to disk, exit makehuman, and make a completely separate program load the exported mesh and measure it. There is no way in which you can interactively model/manipulate the MakeHuman mesh, and run a closed source tool to generate measurements in real-time while doing that. This is considered "intimate communication" between the two programs.

I don't exactly understand what you mean with "proxy applied", so I can't give an answer to that question. I can only tell you that the meshes that the exporters export (possibly with clothes, hair, ..., textures, materials) have no restrictions (CC0).
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: License opinion query

Postby ingeras82 » Mon Sep 22, 2014 1:50 pm

Thank you duststorm. I've also checked the provided link. Based on our discussions so far I've made a plan that I think/hope would suit everybody. Here it goes:
1) Go full AGPL with the game client. This way I have complete freedom. The downside is that the content generated (mesh) would be also AGPL;
2) Create a command line application that imports the content created by the game client. This command line application would run on a server. Since the content is AGPL, the command line application would be also AGPL. Since it would run on the server, it wouldn't be distributed along with the client, but the source code would be made public since it's AGPL.
Now we get to the hairy part:
I see no reason why measurements taken from the CC0 output mesh of mh would fall under a restrictive license.
Well, in this new case the output mesh would be AGPL. It depends if you consider this measurements, slider percentages or the names of the applied proxies to be complex internal data structures. An example of output from the command line application would be:
Code: Select all
head_center = 10.30, 4.60; head_radius = 0.15; arm_length = 0.56; arm_circumference =0.20; age = 30; proxies = green_eyes, blue_pants, black_hat

Mesh data would be used to generate the measurement information, but it would not pass through the command line application. Basically it would be the same as reporting the size in bytes of an AGPL licensed file I guess...
In my case I would need information to generate a simple shape replica of the imported mesh: a sphere for the head, some cylinders for the arms and legs and parallelepipeds for the body/palms. Quite impossible to reverse engineer the basemesh/morphs out of that I think. Knowing that the head of a max_height adult fits in a 0.25m radius sphere and a min_height adult fits in a 0.15m radius sphere is not very usefull for a high-jacker.
3) Closed source sever that would run the command line application when the client uploads a mesh. The command line application generates an output file (of the sort described earlier) which is loaded by the server. The measurements would be used to create a simple model in a physics engine and the sliders and names of the proxies added would be used in role-play mechanics and such.

In conclusion: the whole idea stands on point 2) - the command line application that would load AGPL data and provide generic information about it. In your opinion this generic information should also be licensed as AGPL or it can be non-restrictive? Of course, we can go into detail about what exactly is and what isn't "generic".
ingeras82
 
Posts: 13
Joined: Tue Aug 19, 2014 9:21 pm

Re: License opinion query

Postby duststorm » Fri Sep 26, 2014 12:01 pm

I see no issue with measuring simple data from the mesh as you illustrated. If the application that does the measuring adheres to the AGPL license (in the case you want to interactively model and measure your mesh).

I assume at some point in your game you will have a visual character creator, based on MH data. This part of the code can only be AGPL. I will assume this happens in the client code, so if the client is AGPL licensed, that's fine. Note that it is perfectly possible to release the game engine under an open source, while the game assets (story, models, environments, textures) are closed. There's some MMORPGs out there that serve as an example of this model.

If the client sends out these measurements as data (circumference, center, etc) to the server, then there is no problem -- as an added bonus, the data sent between client and server is very small.

I'm not sure about your proposed solution 2: The server communicates with an AGPL tool via commandline, but I assume that in some way data will go back and forth between client and server, before going to the commandline application. You are fuzzy about what type of data will pass through the server ("import content created by game client" is not clear).
Keep in mind: MakeHuman has the CC0 exception for output meshes generated by the exporters. If you export other source data, that data is still AGPL licensed. So you are free to transmit regular exports from MH to your server, but not the modeling or proxy data from MakeHuman.

You might want to rethink this solution, as I see it you are better off calculating the measures in the client and only sending those to the server.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: License opinion query

Postby ingeras82 » Fri Sep 26, 2014 4:08 pm

You are fuzzy about what type of data will pass through the server
- the whole architecture is a bit complicated. Please bare with me.
Basically there would be 3 pieces of software involved:
1) The game client. It is the only one that interactively modifies the mesh. It would include a Makehuman "clone" for character customization. Containing this Makehuman clone makes it AGPL.
It also generates content - basically an equivalent of an FBX or an MHX export from Makehuman but tailored to my specific needs. This content is also AGPL. This content would be uploaded in final form to Server number 1. From a gamer perspective, you use the game client to create your character/avatar and then you register it (to Server number one 1, but the gamer doesn't care about extra info).
2)Server number 1. It receives uploads from game clients, analyzes them for the measurements and details explained in the last post and stores this processed information (measurements, slider percentage and name of proxies applied) in a file or a database.
I feel I need to go into detail again here: vertex position is used to determine the final information but it would be unusable to create a mesh or a morph. If someone thinks of a similar solution and basically dumps the vertex positions in a database... it would be potentially dangerous.
Anyway, I would not intend to make available to the public this processed information. I don't know if I am forced to do so given that I am obtaining it from AGPL content. Regarding the code for Server number 1, the AGPL license states this (http://www.gnu.org/licenses/agpl-3.0.html):
To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

Since I don't want to make available the processed information, I am not "conveying" or "propagating". To put it plain: you send the Makehuman basemesh (raw or morphed) to it, and it stores arm length, age and what hairstyle did you choose in a database undisclosed to the public. Should Server number 1 code be licensed? I don't know, since it doesn't communicate directly with the public. But I am willing to make it available since as you said it would help people who need measurements. I can't monetize it anyway and since it runs on my machine people can't cheat in the game :).

3)Server number 2. This doesn't have to be on the same machine with Server number 1. They will operate separately. Server number 2 receives commands via HTTP from the game client and gives feedback to them. Before I give some examples, I would like to specify that Server number 2 is not aware of the Makehuman mesh. It would include a physics engine that knows only of spheres, cubes, cylinders and such, simple shapes for performance issues. How does this relate to Makehuman? Well, it would generate this spheres, cubes, cylinders based on the processed information stored by Server number 1 in the database or file. Some examples of communication between the game client and Server number 2:
a) Game client sends message: "I have registered my avatar". Server number 2 searches if Server number 1 has stored the processed information in the database and answers: "Found it" or "Didn't find it, there was some error".
b) Game client sends message: "I'm moving forward". Server number runs the physics engine and answers "Play animation with id 1" (Game client should know the id's of the animations).
Server number 2 should be closed-source since it doesn't operate with anything resembling a Makehuman mesh or morph and it also doesn't send mesh or morph information back to the client.

That would be it. Since all the game mechanics would involve Server number 2 it should be closed-source for cheating and boting issues. In your opinion, would I be forced to release the source code for Server number 2 under the current description?
A side note: I don't intend to sell the code or instances of Server number 2.
Thank you for your patience.
ingeras82
 
Posts: 13
Joined: Tue Aug 19, 2014 9:21 pm

Re: License opinion query

Postby duststorm » Sun Oct 05, 2014 12:14 pm

ingeras82 wrote:Should Server number 1 code be licensed? I don't know, since it doesn't communicate directly with the public. But I am willing to make it available since as you said it would help people who need measurements.

The client communicates with server1, so it is bound to the AGPL conditions.

I believe that if client and server1 sources are made available, you would not be violating the license, as long as the data passed to server2 is only what is included in the CC0 exception of the MakeHuman license (that's basically the mesh data, not the morphs/targets of fitting data).
Performing simple measurements on this mesh is of course allowed as well.

This way you would not just be taking from MakeHuman, but you would be offering the community an open source client/server application in which MakeHuman can be used for character modeling.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: License opinion query

Postby RgNtnStudioTR_NC » Tue Jul 28, 2020 10:03 pm

As seen above, depending some variables, the output can be CC0 or AGPL.
If it's CC0, it can stay CC0. If it's AGPL, it must be AGPL'd, as derived product.


Are all default clothes in makehuman without community assets AGPL? Also, does that mean helper derived meshes that are completely changed: i.e. made from square mesh to diamond mesh in meshlab still AGPL? Also how can I be sure if something posted as CC0 in community asset library isn't AGPL derived? Also .mhclo files generated by makeclothes have outdated license links. Is it ok to update them with the github link and make it clear that output file can be CC0 according to license? Does doing this prevent me from releasing my assets as CC0?

Example:

Art is CC0
Link to my site
Code is AGPL
Links to makehuman github license file and makehuman community website
Art released as CC0 according to makehuman dual CC0/AGPL3 license
RgNtnStudioTR_NC
 
Posts: 1
Joined: Mon Jul 06, 2020 1:42 am

Re: License opinion query

Postby nomorecookies » Thu Aug 06, 2020 12:21 pm

It is seriously making me ill trying to decipher what i can and cannot do.

All i want to do is use makehuman to make a character. i will use the sliders while in makehuman to make it look like i want.
then i will export/transfer the finished character to blender.
in blender i will make my own shape keys to change the size of the nose, the eye spacing, the body weight etc. from scratch i will make these shape keys.
i will bind these shape keys that i made to the model and export to UE4.
within UE4 i will have a character customization screen, where people can use the shape keys i made to further customize the model that was exported from makehuman and altered in blender.
None of the sliders for shape keys/ morph targets/ blend shapes, what ever you want to call them, are from makehuman, they are all hand made by me in blender.
the person in my game can then hit finalize, and it 'bakes' the slider values and allows them to play with the character look they choose.

Is this ok in a closed source game, or am i in violation of the license.


I know you are sick of these license questions, but after all the reading of the license text, and the conversations that have been had over the years, i still do not fully understand.
So i ask these straight forward questions, so i can continue to move forward, or stop using MakeHuman.
Thank you, and be well.
nomorecookies
 
Posts: 82
Joined: Thu Jul 30, 2020 1:34 pm

PreviousNext

Return to General discussions about makehuman

Who is online

Users browsing this forum: No registered users and 1 guest