MakeHuman

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
MakeHuman
300px
Developer(s) The MakeHuman team.
Initial release 2000; 24 years ago (2000)
Stable release 1.0.2[1] / August 15, 2014; 10 years ago (2014-08-15)
Written in Python
Operating system Windows, Linux, Mac OS X
Type 3D computer graphics
License AGPL[2]
Website www.makehuman.org

Makehuman is an open source 3D computer graphics software middleware designed for the prototyping of photo realistic humanoids. It is developed by a community of programmers, artists, and academics interested in 3D modeling of characters.

Technology

MakeHuman is developed using 3D morphing technology. Starting from a standard (unique) androgynous human base mesh, it can be transformed into a great variety of characters (male and female), mixing them with linear interpolation.

For example, given the four main morphing targets (baby, teen, young, old) it is possible to obtain all the intermediate shapes.

File:Age sequence.png
Interpolation of makehuman characters (1st, 3rd, 5th and 7th are targets, the others are interpolated)

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 main 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 humans, 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.[3]

License

MakeHuman is fully Open Source. The character output of MakeHuman is released to public domain under CC0, in order to be freely used in commercial and non-commercial projects. The database and the code are released under the GNU License Affero GPL.

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.[4] 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 (with a small C core) and to release it as MakeHuman 1.0 pre-alpha. Development continued at a pace of 2 releases per year.

Version 1.0.0 was officially released March 14, 2014.

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.

File:Three hands.png
Evolution of the hand topology
File:Head evolution.png
Evolution of head topology along the years

The initial mesh occupies a middle ground, being neither pronounced masculine, nor pronounced feminine, neither young nor old and having a medium muscular definition. An androgynous form, 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.

Since the first release of MakeHuman (2000) and the first release of makeHead (1999), the challenge had been to construct a universal topology that retained all of these capabilities but added the ability to interactively adjust the mesh to accommodate the anatomical variety found in the human population. This challenge could have been addressed by dramatically increasing the number of vertices for the mesh, but the resultant, dense mesh would have limited the performances on machines. The model developed for MakeHuman is:

  • Light and optimized for subdivision surfaces modelling (15128 verts)
  • Quads only. The human mesh is completely triangles free (use of Catmull-Clark subdivision to get extra resolution for the base meshes)
  • Only E(5) Pole and the N(3) Pole, without holes and without 6-edge poles.

The first prototype of a universal mesh (head only) was done in 1999 in the makeHead script, and then adapted for the early MakeHuman (2000). HM01, the first professional model, was realized by Enrico Valenza in 2002. The second remarkable mesh (K-Mesh or HM02) was modelled by Kaushik Pal in 2005. The third mesh was modeled by Manuel Bastioni upon the z-mesh or HM03. Upon the experience gained on the preceding versions, the fourth mesh was modeled by Gianluca Miragoli (aka Yashugan) in 2007 (Y-Mesh or HM04). The fifth mesh build upon the previous one by Gianluca Miragoli and Manuel Bastioni (HM05). The sixth mesh was also by Gianluca Miragoli. In 2010, was released another version of the mesh (by Waldemar Perez Jr., André Richard, Manuel Bastioni). Latest mesh, released in 2013, is actually the state of the art and was modeled by Manuel Bastioni.

Research usage

Because of the freedom of the license, Makehuman software is widely used by researchers for scientific purposes.

MakeHuman mesh is used in industrial design, where it is necessary to verify the anthropometry of a project,[5] and in virtual reality research, to quickly produce avatars from measures or camera views.[6][7][8][9][10][11]

MakeHuman characters are often used in biomechanics and biomedical engineering, to simulate the behaviour of the human body under certain conditions or treatments.[12][13][14][15][16]

The software was used for visuo-haptic surgical training system development.[17] Visuo-haptic simulations combine the 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 also been performed with this tool.[18]

Makehuman has also been used to create characters to perform Sign Language movements.[19][20]

The human character model for the project of the construction of artificial mirror neuron systems[21] was generated by MakeHuman.

See also

References and Related Papers

  1. http://www.makehuman.org/blog/makehuman_102_is_ready.html MakeHuman 1.0.2 release announcement
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Still online, but stopped in 2004: http://projects.blender.org/projects/makeh/
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.

External links