Geometry nodes exploration: Human rig deformation

Current state

https://twitter.com/xeofrios/status/1541880615942819841?s=20&t=8hjnFcrFP3JUn93FKkeumw

Original post

Hi all, I want to share a project I have been working on for the past few weeks. My goal is to simulate believable deformation using Geometry nodes. Right now the results are not too exciting, but I am sure they will improve.

https://imgur.com/a/tn4iZyP

The right image/video is with GN deformation and the left is not.

43 Likes

Inflate in the surrounding is somewhat working

1 Like

If you get it working well, please me know. I’m building out a 100% procedural humanoid (see my portfolio) and this would fit in nicely.

1 Like

Watch this topic to get updates! If I (hopefully) get it to a releasable state I will try to let you know.

Oh, I’ve developed my own. Works really well, just fine tuning it now.

Thanks though.


3 Likes

If you want to see how I did mine, I made a tutorial. It may give you inspiration on your own work. Or feel free to just copy mine. :slight_smile:

3 Likes

This is looking good! I don’t want to sound greedy after getting a whole tutorial on something I’ve been trying to accomplish for years now, but would you mind sharing a picture of the final node setup or the file? I’m having some trouble following the tutorial, and I really want to see if I can recreate this effect in my own characters.

1 Like

Thanks for sharing! It’s interesting to see different takes on a problem.

1 Like

The node group is too big to take a screenshot where you could read any of the nodes.

What I will do is make a generic one that’ll work with any model and upload it somewhere, with instructions on how to use it. But, it’ll take a few days for me to get around to it.

3 Likes

I believe there’s an addon for taking full screenshots of the whole nodetree. Let me find it in a moment.

Edit: here it is, but doesn’t seem to support 3.0+ sadly https://yeetusblenditus.gumroad.com/l/PrtNd

Thanks. That’d be great. :grinning:

I spent a lot of time tweaking the smoothing. It is not perfect but pretty convincing
https://imgur.com/a/C6M2LIL

11 Likes

Looking much better.

It’s going to take longer than expected for torso joints. I can’t figure out how to get the position of the knee/elbow, nor the angle of the hip/shoulder for IK joints. FK is easy.
I think if I added some more math of the foot position, it could recreate the torso angles… but that’ll take time.

I created the node group from ground up a couple of times, improving the falloff and the performance. This demo is a bit on the exggerated side, but it looks quite cool

https://imgur.com/a/hKln2VM

5 Likes

That’s really cool ! well done !!!
Can you share a bit of the theory behind the process ? I’m wondering if it’s possible to use the same technique for other use cases.
I’m working on a procedural flower, do you think it would be possible to prevent petals from intersecting using a similar method ?
I’m very curious about how this work !

The results are really great and natural !

1 Like

I am using raycast to detect intersecting meshes

If the dot product of the raycast and hit normal is more than 0 then the mesh is intersecting. I don’t think this method would work very well with thin meshes. Perhaps you can DM me with your particualr problem so that I can help you out?

I planning on putting the node groups on Gumroad soon-ish

5 Likes

Okkk ! Thanks a lot for the detailed answer !!
Is it possible to use raycast on the same object ?

Thanks a lot for proposing to help with my issue , that’s really cool ! it’s not important enough to bother you with that !


I’m trying to do some growing plants for fun, but it’s hard to add randomization without creating some intersections especially on the petals. But I think I’ll live with it and try to hide the issues on close up shots. Do you think it’s worth trying something ?

4 Likes

That looks really cool! I would suggest using raycast in the +Z direction with a mask at the top parts of the petal. Delete the vertex if the hit distance is less than some threshold. After that you can do some topology test like V+F-E=1 to delete the whole petal

4 Likes

Thanks for the advice !! If I understand correctly you suggest to get rid of intersecting petals ?
That’s a brilliant idea ! but as I plan to animate that, I think it’s not the ideal solution, because they’ll flicker while moving. But it seems complicate to do something that works well… Maybe in the version 2 of my setup :smiley:
Thanks again for the suggestion, I’ll keep that in mind for another experiment !

3 Likes