MakeHuman


MakeHuman is a free and open source 3D computer graphics middleware designed for the prototyping of photorealistic humanoids. It is developed by a community of programmers, artists, and academics interested in 3D character modeling.

Technology

MakeHuman is developed using 3D morphing technology. Starting from a standard androgynous human base mesh, it can be transformed into a great variety of characters, mixing them with linear interpolation. For example, given the four main morphing targets, it is possible to obtain all the intermediate shapes.
Using this technology, with a large database of morphing targets, it's virtually possible to reproduce any character. It uses a very simple GUI in order to access and easily handle hundreds of morphings. The MakeHuman approach is to use sliders with common parameters like height, weight, gender, ethnicity and muscularity. In order to make it available on all major operating systems, beginning from 1.0 alpha 8 it's developed in Python using OpenGL and Qt, with an architecture fully realized with plugins.
The tool is specifically designed for the modeling of virtual 3D human models, with a simple and complete pose system that includes the simulation of muscular movement. The interface is easy to use, with fast and intuitive access to the numerous parameters required in modeling the human form.
The development of MakeHuman is derived from a detailed technical and artistic study of the morphological characteristics of the human body. The work deals with morphing, using linear interpolation of both translation and rotation. With these two methods, together with a simple calculation of a form factor and an algorithm of mesh relaxing, it is possible to achieve results such as the simulation of muscular movement that accompanies the rotation of the limbs.

License

MakeHuman is free and open-source, with the source code and database released under the GNU Affero GPL. Models exported from an official version are released under an exception to this, CC0, in order to be widely used in free and non-free projects. These projects may or may not be commercialised.

Awards

In 2004, MakeHuman won the Suzanne Award as best Blender Python script.

Software history

The ancestor of MakeHuman was MakeHead, a python script for Blender, written by Manuel Bastioni, artist and coder, in 1999. A year later, a team of developers had formed, and they released the first version of MakeHuman for Blender. The project evolved and, in 2003, it was officially recognized by the Blender Foundation and hosted on http://projects.blender.org. In 2004, the development stopped because it was difficult to write a Python script so big using only Blender API. In 2005, MH was moved outside Blender, hosted on SourceForge and rewritten from scratch in C. At this point, version counting restarted from zero. During successive years, the software gradually transitioned from C to C++.
While performant, it was too complex to develop and maintain. Hence, in 2009, the team decided to go back to the Python language and to release MakeHuman as version 1.0 pre-alpha. Development continued at a pace of 2 releases per year. The stable version 1.0.0 was officially released March 14, 2014. MakeHuman 1.1.0 has been released May 14, 2016, around two years later. The most recent intermediate version is 1.1.1, as of March 5, 2017.
A community website was established June 2015 featuring a forum section, a wiki, and a repository for user contributed content for the program.

Evolution towards a universal model topology

The aim of the project is to develop an application capable of modeling a wide variety of human forms in the full range of natural poses from a single, universal mesh. For this purpose, the design of a 3D humanoid mesh that can readily be parametrically manipulated to represent anatomical characteristics has been pursued, the mesh includes a common skeleton structure that permits character posing. MakeHuman Team developed a model that combines different anatomical parameters to transition smoothly from the infant to the elderly, from man to woman and from fat to slim.
The initial mesh occupies a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. Goal was to depict a fair-built androgynous form, named the HoMunculus.
The current MakeHuman mesh has evolved through successive steps of MakeHuman project, incorporating lessons learned, community feedback and the results of considerable amounts of studies and experimentation.
Evolution of the mesh for the human model:
Since the first release of makeHead and MakeHuman, a challenge had been to construct a universal topology that retained all of the capabilities but added ability to interactively adjust the mesh to accommodate anatomical variety found in the human population. This could have been addressed by dramatically increasing the number of vertices for the mesh, but the resultant, dense mesh would have limited performance on processing computers. Technically, the model developed for MakeHuman is:
Because of the freedom of the license, MakeHuman software is widely used by researchers for scientific purposes:
MakeHuman mesh is used in industrial design, to verify the anthropometry of a project, and in virtual reality research, to quickly produce avatars from measures or camera views.
MakeHuman characters are used in biomechanics and biomedical engineering, to simulate the behaviour of the human body under certain conditions or treatments. The human character model for a project of the construction of artificial mirror neuron systems was also generated by MakeHuman.
The software was used for visuo-haptic surgical training system development. These simulations combine tactile sense with visual information and provide realistic training scenarios to gain, improve, and assess resident and expert surgeons' skills and knowledge.
Full-body 3D virtual reconstructions have been performed using MakeHuman, and 3D analysis of early Christian burials.
The tool has also been used to create characters to perform Sign Language movements.