Thursday, October 25, 2007


Just to let anyone know that may care. I'm still waiting for feedback on the current state of the plugin before I update to the new version.

Also a few comments on what people get wrong.
  • Yes you do need to divide the meshes up finely. But not that fine. As long as each vertex is about a particle size away your fine. I have seen some meshes with 10k+ vertex's. Thats too fine unless particle size is smaller that .001
  • Normals pointing in the wrong direction. It seems that there are few issues with normals. Use approximated polygon objects, convert to triangle mesh and then set smooth shading.
  • You need a lot of particles to get a "good" fluid. 10,000 is not a lot. Rendering time still dominate in my experience.
  • Time steps are too large. If the fluid just disappears, its because the simulation blew up.
So unless i get comments to the contrary I will work on the following.
  1. Remove the need for subdivided meshes. This should fix the normal problems too. This is however quite a bit of code.
  2. Some small adjustments to the GUI, but they won't be big. Yet.
  3. Try to get some adaptive time steps in there. This will be a experimental feature.
Please keep the feedback coming.


Nik777 said...

Hey Bob,

I must confess I haven't pushed too hard on making a "proper" fluid video. I'll try again over the weekend. :o)

So hopefully I can give you some feedback in a few days!

Thanks again for all the work :o)

I posted a link to one of the SF posts to friends in Germany, and got back the question "What is a fluid plugin?". A short explanation and a link to my most recent animation left them quite impressed. :o)


TroY said...

Hey :)

Current workflow with your plugin: Pretty good imo. You already know my proposal concerning combo boxes in the objects list - that's the only "big" issue in your GUI. Ah, and one little thing: The message box which appears at "Reset simulation" really needs a "Cancel" button. :D

"Auto-subdivision" is idd a good point to start. But I'd find it useful to keep the possibility to manually edit these subdivided meshes - or to turn off auto-subdivision. Why? I ran into one problem by blindly subdividing my objects: Vertices aren't evenly distributed over the object. So, sometimes I needed to remove some vertices. I also illustrated this issue in pictures some time ago (don't care about the text), although I'm quite sure that you know what I mean :)

If you have some time left, an updated documentation would be great!

Concerning further development: I'd rather like to see "adaptive particle sizes" than "adaptive time steps". You know, large particles at a pool's bottom and small particles at it's surface for splashes. It doesn't even have to be done fully automatically - maybe take an object and let the user distribute vertices over it. Your plugin then adjusts the particles sizes to keep the object more or less evenly "filled" with fluids. Dunno if that's possible, it's just a thought. :)

Finally, some of my pics/vids using your plugin:

Icy glass with a splash (made it to "picture of the week" in the german forum "bryce board"!)

Little octopus (seperate objects used as boundary for the ink)

Some animations (old link, but new videos - mostly rendered with aoi's raster-renderer due to "no time!" ;)

Keep your good work up - it's a huge enhancement for AoI!


Anonymous said...

This plugin is great !

But it would be good to have better control over flow-rate and its variation over time.

smappler said...

hi bob.

i read on SF having an arrow showing direction of flow. i think that would be a great feature. also the speed at which particles are released.

apart from that it seems great.


vidiot said...

Bob, I´ve already said that I liked the previous Gui better. But I can live with the new one also.
Maybe I just need to be convienced.

Troy has done a fantastic german tutorial - fully usable with some background explanations:

Beside that I love the mesh option - it´s much faster for rendering.

And fluids are the next best things to let me make animations! Never thought to much about animations in the past - but that has changed.


bob said...


Yes the idea from you GUI suggestion will be in the next version.

A cancel button would be a great idea on the warning dialog. I can't believe i did one of those warning dialogs (Everything will be deleted [ok] ) where the not ok button!!

The new code once done will not use particle boundary. It will use polys. So subdivision won't be needed. but the old option will be available, since it can produce more "correct" results.

Documentation.. Well I say this to others too, So i do understand. I will put more effort into that when i know things won't change too much.

Adaptive particle size: This is much harder than it looks. Its done a lot with compressible media, but because the particle mass is constant, its not too hard. But a fluid is incompressible and so changing the particle size will also change the mass. This is HARD. The math gets tricky and getting particles to exchange mass accurately is imposable (you loose perfect mass conservation). There are other issues with turbulent flow as well.

First up will be global adaptive time steps and then perhaps some local adaptive time steps. So the bottom of the pool where the water is moving slowly can have large time steps...

Flow velocity is in units per sec. Flow density should be set to about 0.8. The final flow rate depends on the conditions around the emitter. Thats the physics of it. Even real flow does not provide accurate flow control, just approximate.

Animating the parameters over time is something i want to add. Its on the todo list.

The normal factor is the speed. The density of 0.25 is a little low though. 0.8 seems to work better. As for direction, well i could add something I guess, but i feel that display of normals is something for the core AoI. I will think about it.

First comment i have had about the mesh option. How do you find the quality. I find it pretty bad. Perhaps if people use it I will finish it properly. By the way this could be adapted to all implicit object in AoI.

Love the tut. Its a shame my German is not that good yet. But I can read most of that... Kinda. My daughter has good German. Hopefully this year i will get much more time to practice.

One comment. To get better looking fluid from the emitters. Try higher density. about 0.8 is pretty good.

TroY said...

"The new code once done will not use particle boundary. It will use polys."

So the "mesh" as a whole will be an obstruction to fluids? That would be great! :)

@preview meshes: Forgot that one - it's really handy imo. Ye sure, the result is a bit more "blocky" but it speeds up rendering a lot, it's about 4-5 times faster on my machine. I like it. ;)

I'll try to translate the tutorial during the weekend, shouldn't be that much work. Most of the important things could be obsolete in your next version, but that doesn't matter imo (it's a good practice for me anyway).

btw, seems like I found a new "bug": Sometimes, fluids leave their domain and get calculated "forever". I can't reproduce it yet, but I'll let you know if I can do so.

So long,

bob said...

The Bug sounds like numerical instability. Try a smaller time step size.

Anonymous said...

Hi Bob,
I left a question over at SF regarding modeling with your plugin.


Anonymous said...


somehow I am not able to find any link for the blender/aoi fluids code...
It would be nice, if anyone can point me to a link!?


Anonymous said...

Bob/Deltor I hope you and your familiy will have a nice christmas season and a happy new year!

Harald (Vidiot)

Anonymous said...

Just to let you know:
There will be a consumer camera from Casio with 1200 fps mode.

Those stunning things can be done with the fluid plugin as well (maybe in the near future I hope)
Look at the movies: