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.