how to integrate with makehuman with my project?

MakeHuman python API, python plugins, etc

Moderator: joepal

Re: how to integrate with makehuman with my project?

Postby Manuel » Tue Apr 15, 2014 7:46 am

yfjelley wrote:i use the version 1.0.0, how to load a human model in makehuman?


What do you mean?
Manuel
 

Re: how to integrate with makehuman with my project?

Postby soz_psych » Fri May 02, 2014 12:42 pm

Hi,
a web-interface would be a more than welcome addition for this project. If anybody is working on this project I would be willing to contribute. Regarding the license I have one small question. I think I have to publish the program, I'm going to use to access the web-interface. However since this will probably a short one (around 100-200 lines) and very specialized, I don't want to open a full-blown project on source-forge or something like this. Would it be ok, just to post the complete source code in the forum?

soz_psych

PS: The link to the api at the beginning to to forum doesn't seem to work.
soz_psych
 
Posts: 5
Joined: Fri May 02, 2014 12:20 pm

Re: how to integrate with makehuman with my project?

Postby 7yl4r » Mon May 05, 2014 4:00 pm

soz_psych wrote:Hi,
a web-interface would be a more than welcome addition for this project. If anybody is working on this project I would be willing to contribute. Regarding the license I have one small question. I think I have to publish the program, I'm going to use to access the web-interface. However since this will probably a short one (around 100-200 lines) and very specialized, I don't want to open a full-blown project on source-forge or something like this. Would it be ok, just to post the complete source code in the forum?

soz_psych

PS: The link to the api at the beginning to to forum doesn't seem to work.


I like the MH-server idea as well. Some applications may currently be able to utilize make-human via command-line (currently in dev) https://bitbucket.org/duststorm01/makehuman-commandline, and maybe that is a good starting point for a web interface as well. I'm going to give this a shot myself later today, though presently I'm not sure in what format to pass the .mhm file input and mesh file output...

I've had some issues digging through the api documentation myself... It seems that an outdated version is here (http://makehuman.sourceforge.net/API/), but the directory structure and module explanation page here (http://www.makehuman.org/doc/node/direc ... dules.html) is potentially more helpful I think.
7yl4r
 
Posts: 15
Joined: Fri Apr 18, 2014 3:44 pm

Re: how to integrate with makehuman with my project?

Postby Manuel » Mon May 05, 2014 4:18 pm

@ soz_psych

Yes, the code is under AGPL, so you have to publish it somewhere.
If you are used to HG, you can just fork our repository on bitbucket. Then when the feature will be ready and if compliant with MH standards, it will be merged in the official.
The alternative is to zip your code and put it here, but it will make more difficult for us to handle it.

@ 7yl4r

The API you linked are very old. They are not usable for the current code.
what format to pass the .mhm file

What do you mean? It's ascii.
Manuel
 

Re: how to integrate with makehuman with my project?

Postby duststorm » Mon May 05, 2014 4:33 pm

You're free to use MakeHuman in opensource spirit, just make sure you keep MakeHuman open and don't create closed source clones or variations of it.

Here is how we interpret the license:
Clarification on the MakeHuman license by the MakeHuman development team wrote:MakeHuman's source code for blending mesh properties and the source data of those morphs is licensed under the AGPLv3 license.
This means that using MakeHuman as a separate tool to generate humans, and copy the output file is fine (MH as a blackbox that
receives input, is started and executed, outputs a file, and exits).

Commandline use, for example, is fine, as long as you contribute your commandline modifications of MakeHuman back to the
community under the same license. And the software license of your MMO makes clear mention of these included opensource components
(comes with the license.txt) with a link to the (modified) source code.

But wrapping a user interface around MakeHuman for interactively manipulating the mesh, and streaming back (partial) geometry data to
another application, or leaving a MakeHuman process running in any way (for example as a server) while communicating with it from
another process, is considered "intimate communication" (mentioned in the GPL FAQ) and the AGPL applies here.

The license for MakeHuman is not GPL, it is AGPL (Affero GPL), which also protects against using the application as a server for
communicating with. If you create a web or network application using MakeHuman, you have to share the source code of that application
with your users.

We want the MakeHuman application to remain free for everyone. The GPL philosophy dictates that if you create variations of the software,
or integrate it in another piece of software, that you have to share these changes and your software back to the community.

A random crowd generator would be possible, for example (commandline use). But if you want an interactive visual character editor in your MMO,
then you will have to open source the MMO engine (otherwise you'd basically be trying to create a closed source spin-off of MakeHuman with a
different user interface).

MH is a tool that integrates into your pipeline, you can use the output in any way you want. But if the MakeHuman application becomes part of your editor,
the editor has to be shared back with the community (I am certain that many other small or independent game developers will be interested in such a tool).



Someone who wanted to integrate MakeHuman into his closed source MMORPG as an interactive visual character creator, which is not allowed by our license,
kept asking. I'll share our answer here:
Question wrote:What if the Makehuman derived character generator server was a separate AGPL server, but could be "intimately manipulated" by an MMO server?
The situation would be such that any other MMO could not only use the same code, but could even use the existing running servers, if given access by the admins.

Formal answer wrote:MakeHuman is not intended to be used as a library. (otherwise we would have LGPL licensed it)

If you link to it as a library, your application (the one that does the GUI rendering and is the final endpoint for interaction to the user) will have to be shared in the same
free spirit as the one under which the MakeHuman application was made available to you.

Making a thin wrapper around the application to try and circumvent the AGPL, even if the wrapper is released under the AGPL, is not very respectful and is generally considered
unfair/a violation of the license. It is sure to raise eyebrows among many advocates of free software.

Where is the contribution in offering a small patch that serializes MH data to a network socket, only to open it up to closed source user interfaces? What benefit does this offer
to the community other than furthering your own personal agenda?

An honorable alternative that would be appreciated, however, is if someone would make a webGL port of the MH application. That would make MakeHuman accessible to larger
audiences.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: how to integrate with makehuman with my project?

Postby duststorm » Mon May 05, 2014 4:46 pm

We welcome any contribution if you want to attempt to create a (opensource of course) web version of MakeHuman. :)
Perhaps an interactive WebGL version? That's something I hope we can achieve one day.

Note though, that for a responsive application that allows interactive modeling, the commandline interface will not be enough. You will need to modify MakeHuman somehow so that it can run as a server or communicate with a server through a socket. Due to the license, the complete server infrastructure and the GUI that controls MakeHuman in this way will have to be released under the AGPL license.

I'm saying this up front: this is not an easy undertaking, if you're looking for something quick and easy, this is not for you.
Designing and compressing the data that is streamed to the web client so that it is small enough to allow for decent speeds and responsiveness requires careful consideration of how server and client will comunicate, and will require good knowledge of MakeHuman's internals to implement.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: how to integrate with makehuman with my project?

Postby 7yl4r » Thu May 08, 2014 12:25 am

Manuel wrote:@ soz_psych
The API you linked are very old. They are not usable for the current code.
what format to pass the .mhm file

What do you mean? It's ascii.


Sorry, I meant that I'm not sure how command line arguments are interpreted by MH. I'm guessing `python makehuman.py /my/mh/file.mhm /resulting/obj/path.obj` or... I think I read somewhere that the cmd only outputs .fbx currently. I'm not sure, I'm new to this.

As for the API, I know it's old, but it is all I have found. Where is the updated documentation?
7yl4r
 
Posts: 15
Joined: Fri Apr 18, 2014 3:44 pm

Re: how to integrate with makehuman with my project?

Postby duststorm » Thu May 08, 2014 12:41 pm

makehuman --help will tell you all there is to know about the interface.
If you are using the official MH you will note that there are no output options at all.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: how to integrate with makehuman with my project?

Postby 7yl4r » Thu May 08, 2014 12:51 pm

duststorm wrote:makehuman --help will tell you all there is to know about the interface.
If you are using the official MH you will note that there are no output options at all.


ah, of course. thanks.
7yl4r
 
Posts: 15
Joined: Fri Apr 18, 2014 3:44 pm

Re: how to integrate with makehuman with my project?

Postby 7yl4r » Thu May 08, 2014 2:54 pm

7yl4r wrote:
duststorm wrote:makehuman --help will tell you all there is to know about the interface.
If you are using the official MH you will note that there are no output options at all.


ah, of course. thanks.


Oops, nope. `-h and --help` don't work. At least not when running from python source. It's giving `TypeError: not all arguments converted during string formatting` in the log, which (I've learned) actually means that the argument isn't recognized. I was able to figure it out by looking at the source though. `python makehuman.py myInputFile.mhm -o outputFile.mhx`
7yl4r
 
Posts: 15
Joined: Fri Apr 18, 2014 3:44 pm

PreviousNext

Return to Python scripts

Who is online

Users browsing this forum: No registered users and 1 guest