makehuman.js

This forum is aimed at user contributions, in the form of assets, side projects, code patches and similar.

Moderator: joepal

makehuman.js

Postby markandre13 » Tue Jul 11, 2023 9:30 am

I've been working for some time on a port of MakeHuman 1.2.0 from Python to Typescript called makehuman.js.

It's far from finished but here's a list of what already works:
  • Morph mesh
  • Pose skeleton and adjust mesh
  • Select one of 32 pre-defined facial expressions
  • Render proxy meshes
  • Export the mesh with rig and texture coordinates as Collada for Blender
and I am currently working on using Google Mediapipe and Chordata Motion for posing (which requires an additional daemon).
markandre13
 
Posts: 7
Joined: Mon Sep 28, 2020 6:36 pm
Location: Berlin, Germany

Re: makehuman.js

Postby joepal » Tue Jul 11, 2023 12:40 pm

That's cute. Works pretty well too.

A low hanging fruit would probably be an import/export function for MHM. This way models designed in the JS interface could be exchanged seamlessly with both MakeHuman and MPFB. MHM is a pretty simple format.

I get all kinds of crazy ideas when seeing this. For example, it'd be cool to integrate it online with the asset repository to interactively see a 3d version of how an asset looks.
Joel Palmius (LinkedIn)
MakeHuman Infrastructure Manager
http://www.palmius.com/joel
joepal
 
Posts: 4446
Joined: Wed Jun 04, 2008 11:20 am

Re: makehuman.js

Postby markandre13 » Tue Jul 11, 2023 8:28 pm

joepal wrote:A low hanging fruit would probably be an import/export function for MHM. This way models designed in the JS interface could be exchanged seamlessly with both MakeHuman and MPFB. MHM is a pretty simple format.
Ah! I've been focusing on the tough parts so far. Currently the only thing it saves is Collada. :D
joepal wrote:I get all kinds of crazy ideas when seeing this. For example, it'd be cool to integrate it online with the asset repository to interactively see a 3d version of how an asset looks.


Have you tried the scrollwheel on the comboboxes on the Proxy tab? It's also freakin' fast.
Ah! That version isn't life yet. Sorry... :oops:

Table on the left, model on the right, cursor up and down to toggle through the whole list. :D

I'm glad you like it. Thanx.
Last edited by markandre13 on Wed Jul 12, 2023 1:59 pm, edited 1 time in total.
markandre13
 
Posts: 7
Joined: Mon Sep 28, 2020 6:36 pm
Location: Berlin, Germany

Re: makehuman.js

Postby tomcat » Wed Jul 12, 2023 10:16 am

Interesting project.
markandre13 wrote:for posing (which requires an additional daemon).

Curious how you will assign the animation. After the broken BVH Retargeter it's a non-trivial task.
Export the mesh with rig and texture coordinates as Collada for Blender

Why Collada? And not, for example, the more advanced glTF?
joepal wrote:For example, it'd be cool to integrate it online with the asset repository to interactively see a 3d version of how an asset looks.

Probably it can be done not only through JS.
Last edited by tomcat on Sun Dec 03, 2023 2:10 pm, edited 1 time in total.
Foreigners' reactions to Russian "Bird's Milk" candies
— Are your birds being milked?
— In Russia everyone is milked. Here even the zucchini is used to make caviar.
User avatar
tomcat
 
Posts: 330
Joined: Sun Sep 27, 2015 7:53 pm
Location: Moscow (Orcish Stan), The Aggressive Evil Empire

Re: makehuman.js

Postby markandre13 » Wed Jul 12, 2023 1:56 pm

tomcat wrote:Curious how you will assign the animation. After the broken BVH Retargeter it's a non-trivial task.
I intend to use Google MediaPipe and Chordata Animation to pose/animate the skeleton via poseunits.

As for the "Why?", my goal is to fill this room with people.
tomcat wrote:Why Collada? And not, for example, the more advanced glTF?
Very good point! I already had experience with it and wasn't aware of glTF 2.0, only 1.0.
markandre13
 
Posts: 7
Joined: Mon Sep 28, 2020 6:36 pm
Location: Berlin, Germany

Re: makehuman.js

Postby tomcat » Wed Jul 12, 2023 6:20 pm

markandre13 wrote:I intend to use Google MediaPipe and Chordata Animation to pose/animate the skeleton via poseunits.

I've studied the links. It would be interesting to see a practical implementation. I'm trying to use MakeHuman in gamedev.

You have transferred to your program the ability to build a rig by body. If it would be possible to implement such a feature in the game engine, then it would be possible to realize the character's maturation.

As for the "Why?", my goal is to fill this room with people.

And what would be the next step? :mrgreen:
Foreigners' reactions to Russian "Bird's Milk" candies
— Are your birds being milked?
— In Russia everyone is milked. Here even the zucchini is used to make caviar.
User avatar
tomcat
 
Posts: 330
Joined: Sun Sep 27, 2015 7:53 pm
Location: Moscow (Orcish Stan), The Aggressive Evil Empire

Re: makehuman.js

Postby markandre13 » Sat Dec 02, 2023 2:48 pm

Hello. I've added enough code to makehuman.js to post an update. New functionalities:

  • save and load *.mhm files (morph)
  • save and load *.bvh files (single pose)
tomcat wrote:And what would be the next step?

I now intend to define pose units for the body which approximate 0.9.1-rc1a... and for this I've ported it to the browser so that I can later overlap both meshes: mh091rc1a.js :geek:

As a side effect, makehuman.js' UI may also move closer to 0.9.1-rc1a.

tomcat wrote:Why Collada? And not, for example, the more advanced glTF?

I had a look at glTF 2 and noticed that it only supports triangles. :cry:
tomcat wrote:Curious how you will assign the animation. After the broken BVH Retargeter it's a non-trivial task.

Since I want to go through pose units, I have to come up with something on my own. :mrgreen:
tomcat wrote:You have transferred to your program the ability to build a rig by body. If it would be possible to implement such a feature in the game engine, then it would be possible to realize the character's maturation.

Indeed. Basically it means putting MH itself into the game.
markandre13
 
Posts: 7
Joined: Mon Sep 28, 2020 6:36 pm
Location: Berlin, Germany

Re: makehuman.js

Postby tomcat » Sun Dec 03, 2023 2:04 pm

markandre13 wrote:I had a look at glTF 2 and noticed that it only supports triangles.

Game engines use triangles.
Basically it means putting MH itself into the game.

This would be a great result, but very hard on the hardware.
Foreigners' reactions to Russian "Bird's Milk" candies
— Are your birds being milked?
— In Russia everyone is milked. Here even the zucchini is used to make caviar.
User avatar
tomcat
 
Posts: 330
Joined: Sun Sep 27, 2015 7:53 pm
Location: Moscow (Orcish Stan), The Aggressive Evil Empire

Re: makehuman.js

Postby markandre13 » Mon Dec 04, 2023 1:48 am

tomcat wrote:Game engines use triangles.
Indeed. But I'm not aiming for game engines but for Blender and quads behave better with subsurface division. And from Blender one can export it as glTF2.
tomcat wrote:This would be a great result, but very hard on the hardware.
Disk space maybe. From what I've seen with makehuman.js, which run's in a JavaScript VM on a single CPU core and doesn't even use the GPU for skinning yet, one can change the age modifier on a posed character and still get a smooth animation.
markandre13
 
Posts: 7
Joined: Mon Sep 28, 2020 6:36 pm
Location: Berlin, Germany

Re: makehuman.js

Postby tomcat » Mon Dec 04, 2023 11:35 am

markandre13 wrote:one can change the age modifier on a posed character and still get a smooth animation.

But I need the characters to grow up in the game itself. That is, it turns out I need to cram MakeHuman into Godot. Not a trivial task, IMO.
Foreigners' reactions to Russian "Bird's Milk" candies
— Are your birds being milked?
— In Russia everyone is milked. Here even the zucchini is used to make caviar.
User avatar
tomcat
 
Posts: 330
Joined: Sun Sep 27, 2015 7:53 pm
Location: Moscow (Orcish Stan), The Aggressive Evil Empire

Next

Return to User contributions

Who is online

Users browsing this forum: No registered users and 1 guest