Tech Experiments

   1595   8   4
User Avatar
Member
6 posts
Joined: Dec. 2017
Offline
Hi there,

I am new around here but i would like to start posting some of the latest stuff i've been doing with houdini.



First an experiment doing a procedural tentacle (procedural model and animation). This one was done by using a path deform i made as well with vex (more details about the path deform in this video: https://vimeo.com/247656989)

This tentacle was done in 3 steps:

First step, the tentacle movement made with only points, a vex wrangler was used for that using some neat sin equations.

Second step, the geometry of the tentacle was made using segments that can be copied several times, then they are merged and the thickness is changed along the axis with a ramp.

Third and final step, the vex path deform was used to deform the tentacle geo along the tentacle curve that was created using the points of the first step.

Hip File to Download:
http://www.joleanes.com/uploads/3/0/6/8/30680865/tentacle_001.hip [www.joleanes.com]

If you want to know more about how i design tools, i am using a similar process used in “System Development Life Cycle” which is the process used for software development, at the end of the day doing stuff in Houdini is the same as programming, but with nodes and scripting.

So before i even open Houdini i write a document with the requirements and design of the tool. Then after that i make the implementation in Houdini. I have found that is the fastest and most organized way to develop tools because you are not wondering around in the middle of the process in Houdini to know what to do next, because everything is already planned from the beginning. If something big need to be changed in the middle of the implementation or afterwards it's better to go back to the design document and make the change there.

Here is the Requirements & Design document for the tentacle tool:
http://www.joleanes.com/uploads/3/0/6/8/30680865/tentacle_requirements_design.pdf [www.joleanes.com]

Here a wikipedia link with some info about “System Development Life Cycle”:
https://en.wikipedia.org/wiki/Systems_development_life_cycle [en.wikipedia.org]
User Avatar
Member
169 posts
Joined: Feb. 2013
Offline
Wow, lovely work. Thank you for sharing.

For some reason the attribute wrangle “tentacle_points” fails to compile in 16.5.330 because of the line
float PI = 3.1415926535897932384;
Seems to work normally upon changing the variable name.

But that's the same way it's defined in the expression cookbook. Anyway, I'm going to have to spend some more time playing around with this neat system you've designed.
User Avatar
Staff
3010 posts
Joined: July 2005
Offline
cool stuff!

why not just use PI?
it's a predefined variable see -> Edit Aliases and Variables
Michael Goldfarb | www.odforce.net
Senior Technical Director
SideFX
www.sidefx.com
User Avatar
Member
6 posts
Joined: Dec. 2017
Offline
Hi guys thanks for commenting!

Actually i was not using that PI in the code anymore but i forgot to remove it. And yeah now i can see i can use it like this: $PI, instead of defining a variable.

I did that first because i saw an example in the houdini help using the variable definition, but yeah that looks ugly.

Thanks for the tip!
User Avatar
Member
6 posts
Joined: Dec. 2017
Offline

Now the next step of the experiments, put some collisions!. I got some cool advice from Hernan Llano to setup the constraints https://vimeo.com/hernanllano [vimeo.com]

the next step was setting up the RBD sim, creating some hard and spring constraints, and then i made a sop solver with vex to inherit the movements of the animation.

No stretch behaviour for now, maybe later.

Good exercise for practicing encapsulation!, with that i mean a concept used a lot in object oriented programming, really good way to keep the scene neat, clean and organized:
https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)
Edited by joleanes - Dec. 31, 2017 14:29:29
User Avatar
Member
6 posts
Joined: Dec. 2017
Offline

Then again doing some tech experiments for fun this time with the sentinels.

First Step: doing the tentacles animations using some sin equations. and attaching them all to the sentinel head.

Second Step: doing some particle animations following a curve using the pop curve force operator, then some trails were created.

Third step: the trails were used to control the deformation several sentinels, one for each trail, i used again the path deform that i did in vex.

There is still some collisions between the sentinels that have to be done, maybe the next time.
Edited by joleanes - Jan. 21, 2018 23:42:28
User Avatar
Member
6 posts
Joined: Dec. 2017
Offline

Now coming back with another fun experiment, this time procedural centipedes, i have to confess these ones are a little hard to watch, i feel a bit uncomfortable.

Similarly with the sentinels, i had to use some trails and make a curve out of them to deform the centipedes, but this time the trails are not made with the trajectory of particles, because i needed to make the body collide with the other centipedes, so this time a similar setup of the tentacles was used, several pieces joined together with some hard constraints, then the head will have a random movement and the other pieces will try to follow the piece above the chain.

Then i take a distance value to feed the motion of the legs, those are controlled with an ik that uses a clamped sin equation for vertical movement and a sort of “zig zag” equation for horizontal movement.

And finally i use the path deform to deform the centipedes with the curves from the rbd simulation.
User Avatar
Member
130 posts
Joined: Feb. 2017
Offline
Thankyou very much for the Path Deform file, btw. With all the explainations and everything.
User Avatar
Member
6 posts
Joined: Dec. 2017
Offline
Hi, thanks vusta, i'm glad you found it useful.

Here i come again with a new experiment.



I am trying a different approach for making little nasty creatures, this time using the FEM system of houdini for Soft Bodies.

The approach is basically to use the restP attribute which controls the “default” position of the solid object, so that the mesh will try to keep it's initial shape, but that value could be animated and updated inside the sim using a sop solver. That restP attribute can be defined by vertex so that it can be transformed using the pivot of the tetrahedrons, so a “local transform” per each tetrahedron could be achieved, in this case contracting or expanding.

Then the rest is up to the FEM sim.

HIP file of one Slug with some comments inside:
joleanes.com/uploads/3/0/6/8/30680865/slug_001.hip

A few videos i used for reference:
youtube.com/watch?v=nUbETibPwBo
vimeo.com/81994340
  • Quick Links