Jump to content
hopbin9

Can this be done in Houdini?

Recommended Posts

Do you think something like this could be done in Houdini? if so, how?

Oh, oh, a surefire way to get a Houdnik's attention :)

It should be easy to create a POP VOP that calculates and accumulates the basic mass<-> mass forces, the merging of masses might be a bit trickier.

When I first saw that video I started thinking whether it could be sped up with a FLIP philosophy. In fact I do have something working - I'll post on my lab thread.

Share this post


Link to post
Share on other sites

I'm pretty sure that's possible. It may even be fast.

As a first thought I think you could do a gravitational field, similar to what Petz posted in an (open) question a while back about creating a scalar field from a vector field. So, lots of points, or clusters of points, adding their gravitational force to a field and then simply use it as a force in a dopnet.

One day I may try this.

Share this post


Link to post
Share on other sites

Do you think something like this could be done in Houdini?

Yes.

Turing Complete, is Houdini.

QED.

Not quite the clever yoda haiku I had hoped for but oh well. :)

Share this post


Link to post
Share on other sites

Turing Complete !!

Respect.

I would love to take that CS course, where programming language will be H.

As a final group project folks get to choose, to implement killer features of xsi,maya,max,lw in houdini. :D

Cheers,

ps - Is it not true that development of ice module was largely inspired by vops ?

Edited by vectorblur

Share this post


Link to post
Share on other sites

Wasn't some part of Houdini even called ICE at some point? Something weird like that. There's a blog about the history of it somewhere.

Share this post


Link to post
Share on other sites

ps - Is it not true that development of ice module was largely inspired by vops ?

I believe Vops and Thinking Particles as well. They certainly did their research by the looks of how Ice turned out.

Share this post


Link to post
Share on other sites

I'm pretty sure that's possible. It may even be fast.

As a first thought I think you could do a gravitational field, similar to what Petz posted in an (open) question a while back about creating a scalar field from a vector field. So, lots of points, or clusters of points, adding their gravitational force to a field and then simply use it as a force in a dopnet.

Something like this? ;)

Share this post


Link to post
Share on other sites

Yes, it looks like it. You just need the right equations and I think they are not that difficult (I hope).

Those renders look awesome by the way. Very good for.... Rocks!

Share this post


Link to post
Share on other sites

Hi Guys,

I stumbled upon this article by Guillaume Laforge, Not sure if he is on the forum too.

http://frenchdog.wordpress.com/2009/09/12/ice-vs-vop/

What do big boys think ?

Does this comparison still holds fair ? considering it was done ~ 3 years ago.

I am sure there must have been discussions in the past, somewhere deep down in treasure chest.

But things have changed rather changing.

Any insights will be useful for new kids.

Cheers,

  • Like 1

Share this post


Link to post
Share on other sites

@vectorblur, I am also looking for similar comparisons but that's the only one. You would think that by now, there would be many more.

Also that guy seems very biased towards ICE. I mean he used vops, but why not write custom code in vex and see how it compares?

What I would like to see is, this kind of comparison done between a hardcore ICE and hardcore Houdini guy doing their best. :)

Share this post


Link to post
Share on other sites

If you were to create a VOP SOP that applied Newton's Law of gravitation to each particle, then the VOP would need to process each pair of particles. So that the force of attraction is calculated between the two, but the problem is that VOP SOP only performs cooking on each particle.

Is it possible somehow to nest a VOP SOP inside a VOP SOP so that you can work on all the pairs?

I understand this will be exponentially slow the greater the particle count.

Share this post


Link to post
Share on other sites

Just do a point cloud loop inside the voppop. You'll end up doing each pairwise calculation twice, but you'll be killed by the N^2 anyway :)

Share this post


Link to post
Share on other sites

Just do a point cloud loop inside the voppop. You'll end up doing each pairwise calculation twice, but you'll be killed by the N^2 anyway :)

It's the 'just' that makes me suspicious.

Last time I tried it looked like point clouds in vops don't take the op:// syntax.

You'd have to do a pop merge to sops and get them back, that's what various threads suggested.

But this only works once, so you can't do any subsequent lookups.

However I'd like to be wrong here.

Share this post


Link to post
Share on other sites

Thats why you should do it with fields. You do it per particle and then just add. No need for every pair in the system. Just treat fields like functions, conceptually, and it makes sense.

But even pairwise, you can probably dismiss most particles, because their contribution falls off inversely with the square of the distance, and work just on bunches.

If the volumes in which the fields reside are big and the particles create sparse, thin structures you could further speed it up by only calculating relevant areas of the volumes, similar to whats happening in volume shaders where you check density before running a whole lot of code on it (if density!=0 ...)

Edited by Macha

Share this post


Link to post
Share on other sites

Thats why you should do it with fields. You do it per particle and then just add. No need for every pair in the system. Just treat fields like functions, conceptually, and it makes sense.

To which fields to you refer? Metaball fields? and how would you create them?

Share this post


Link to post
Share on other sites

It's the 'just' that makes me suspicious.

Last time I tried it looked like point clouds in vops don't take the op:// syntax.

You'd have to do a pop merge to sops and get them back, that's what various threads suggested.

Or, in a pinch write to disk and read.

If you're not going to do any "Only 100 nearest particles" kind of optimizations, you don't even need point cloud functions, just plain old Get Attribute is enough.

In fact you shouldn't only regard the nearest particles - even though the far-away particles have ever diminishing effects, there usually is a lot more of them, and the accumulated force plays a role in the large scale evolution of the sim.

Here's probably the simplest naive particle-to-particle implementation.

I wish I could post the volume one, but at the moment I can't.

naive_grav_v01.jpg

[.hip]

To which fields to you refer? Metaball fields? and how would you create them?

Two fields, one for accumulated mass and one for the resulting force. See here.

A mid-range option would be to only accumulate the mass, and then calculate an independent force for each particle against the accumulated voxels.

(complexity would particles*voxels, pure volume implementation is voxels*voxels and the naive one is particles*particles)

I think a good idea might be to calculate all the rest with the volumes, but do the nearest ones particle-to-particle?

Share this post


Link to post
Share on other sites

If the volumes in which the fields reside are big and the particles create sparse, thin structures you could further speed it up by only calculating relevant areas of the volumes, similar to whats happening in volume shaders where you check density before running a whole lot of code on it (if density!=0 ...)

Yea, and the bestest way would be to do

.

Share this post


Link to post
Share on other sites

Or, in a pinch write to disk and read.

I see.

Thanks for the file!

Share this post


Link to post
Share on other sites

Yea, and the bestest way would be to do

.

Wow, that's very cool. Show us how to do it!

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×