Animating Water in Zero-G

Hey. So I’m trying animate water moving in circles through zero gravity and have been running up against all sorts of problems to try to get it to “flow” in a realistic manner. It seems that when gravity is set to zero the water just likes to sit there as a blob, no matter if you try to give it motion through keys or paths. I have even tried to animate the direction of gravity but found that it was hopelessly complicated thanks to bake time and IPO curves. I have also tried to use meta objects in the place of real water, however animating a bunch of balls individually gets complicated and doesn’t look very real.

As you can see I’ve been fighting this for a while and it keeps throwing me for a loop. As for examples on the web, the closest thing I could find was this youtube video, but it was made in Autodesk. I really liked how the water turned out though.

Anyway, if anyone could give me some help or ideas I would really appreciate it. Thanks guys!

Rather than using a fluid sim, I think I’d probably fake it by using a combination of techniques.

First you’d need to define your water globules or masses as meshes. In zero G, and in the absence of any air drag, they’d stay spherical due to surface tensions unless disturbed in some fashion, even while orbiting. But that would be boring.

So assume some atmospheric drag. One way to accomplish this is by using the Cloth sim, which has settings that account for friction with air. The other settings can be tuned to provide a limited deformation from the sphere.

If you want some oscillation of the surface just for “show,” consider using the soft body sim and some effectors like wind.

Any of these effects can then be converted to shape keys, and another “layer” of physics effects added to them. In this way you could build up a final look, but with more control over it every step of the way than if only doing a fluid sim.

I’ve done something along these lines already, I’ll see if I can whomp up a demo vid and example .blend

Thanks. I haven’t had a lot of experience with the physics side of blender but, I think I follow you. If you do a tut on this I would be your biggest fan!

So basically I would turn my meta spheres into meshes or start out with normal spheres and then apply soft body and cloth physics to them. Following that I would have to place a wind field in the shot, is that what your saying? About the animation, would I have to animate every single sphere individually or is there a way to make one sphere effect the paths of the others? I figure to give the water a smooth gliding feeling I will need to parent it to a curve. The only thing is that if I parent all the spheres to a curve It makes the effect look way to uniform. Also can soft body objects intersect like meta objects. I’d like to make it look as if the blob of water breaks up as it accelerates, and then recombines as it decelerates. I know that’s a lot of questions, but as I said this stuffs a little new to me.

“So basically I would turn my meta spheres into meshes or start out with normal spheres and then apply soft body and cloth physics to them. Following that I would have to place a wind field in the shot, is that what your saying?”
– A lot depends on what you’re actually trying to accomplish. The wind field is just a way to create some response in the soft body physics, you could just as easily use other effectors or key some motion into the soft body object. Since gravity is not a factor, you have to use some other “force” to create a response in the soft-body physics, such as “inertia” (I use quotes because these are not true physics effects in Blender, just near-sims). For example, if you set a mesh for soft body and no gravity or other forces, it won’t do a thing, just stays static. But if you give it a Mass value and then move it, inertia has an effect and the mesh will deform. If you oscillate the mesh, the soft-body sim can create a jello-like wiggle similar to what water does in free-fall.

“About the animation, would I have to animate every single sphere individually or is there a way to make one sphere effect the paths of the others?”
– You can use constraints and/or parenting to have one object control the motions of another. If all the objects also have physics applied, they will respond to those physics as well, creating some individuality in the motion based on the nature of the mesh and the physics specs for each.

“I figure to give the water a smooth gliding feeling I will need to parent it to a curve. The only thing is that if I parent all the spheres to a curve It makes the effect look way to uniform.”
– If you want the objects to follow a general path, then using a curve or path is fine, but you can use that for only one “master” object, and have the rest follow the master via parenting or constraints, Then you’re free to introduce individual motions in each of the child objects so the motion isn’t entirely uniform. This will require some keyframing of the individual objects (but there are ways to do that relatively quickly), but depending on the specs used, the physics can also introduce individualized motion, though this isn’t always 100% controllable.

“Also can soft body objects intersect like meta objects.”
– Not that I know of.

“I’d like to make it look as if the blob of water breaks up as it accelerates, and then recombines as it decelerates.”
– This would be really complicated to fake, and is quite a bit more than just having water globules move in circles in zero-G as you originally described. It sounds like the fluid sim would be capable of this but you say it doesn’t work well with no gravity, so I can’t comment on that part. Meta objects can do this but afaik don’t lend themselves to either individualized shaping or physics, and so are pretty limited for your purposes.

In order to “fake” this kind of thing (in it’s more complicated form :wink: ) you’ll need to define exactly what you want visually, then find combinations of tools that can get you close as possible. It could get pretty hairy depending on what you envision – I had a simpler effect in mind from reading your original post.

If instead you want to just set up a system and let it run to get your effect, then I guess you’ll have to find a way to make the fluid sim work under your conditions, since that’s the only tool that seems to come close to doing everything you want.

I’ll look into the fluid sim (haven’t had a need to use it yet) and see if it suggests any options. But again, so much depends on exactly what you have in mind, that all I could do is offer general suggestions you’d have to try to apply specifically to your project.

I would definitely use the fluid sim to start the effect you are going for. chipmasque is right in saying that layers of effects will achieve the best results.

I am sending up a blend, to achieve nice “antigravity” effects you need to use a control object. Actually taking gravity off will cripple the simulators usefulness. I kept the settings for the simulator to default wherever possible. The only default setting I changed is the control object is set to .8 in strength and velocity. (default is .2)

To run the sim you will need to change the bake directory, and to render you will need to change the output directory. The file is setup for compositing because I am rendering out a quick test of the result which I will throw on youtube later. Obviously you will need your own background image or movie, and an HDRI image for reflections. The slots are there but they are not packed with this blend.

The fluid simulator is quite useful and reliable, once you understand it’s intricacies. The funny thing is that once you understand it’s limitations, you can achieve most things quite easily.

http://wiki.blender.org/index.php/Doc:Manual/Physics/Fluids

I have used 2.49b.

Attachments

water-control.blend (308 KB)

@3dementia – good job! I was getting similar large-scale effects using SB & cloth, but the fluid sim gives much better small-scale surface effects (after all, that’s what it’s for ;)). Your example blend is my new playground/schoolroom :smiley:

Building on 3dementia’s excellent example, I used a Fluid mesh that has 5 droplet components, and tweaked the settings for this result:

5 droplets controlled fluid sim

Better than I expected, and much better than faking it, in terms of getting the fluid to break up & coalesce. This should give the OP something more to work with conceptually.

The .blend and the bake directory (the files set up for relative paths) are in this ZIP archive.

Great work chipmasque! It looks quite nice.

Mine didn’t show up well against the background, and instead of being composited the background plate should be on a shadeless plane to get the much needed IOR that would really sell this shot. If you could capture a sphere image of the environment and then match the camera angle perfectly this would look very realistic. Shadows would be needed as well as caustics. Hope OP posts the final result. I’d like to see it.

Kinda like this?

Controlled fluid with background

Exactly like that. :yes:

Very nice, on a whim I submitted this idea and your zip to Blender Cookie. Thought it was so easy and fun that others might want to try it out, and the Cookie could make a nice tutorial to follow up on their last fluid one.

I agree with putting background on a shadeless plane (in my case, I textured a plane with a video). Getting the lighting to match up with the background can be tricky, though.

On the topic of fluid control, does anyone know how to achieve (or fake) the effect shown at 1:05 in this video? I have a couple of thoughts but I wanted to hear other ideas.

Control Particle from Time-Reverse Fluid Simulation

Thanks!

Wow. Nice job! Sorry I took so long to respond. Your animation is just about what I have been trying to do for the last week. However I have a hard time following how you did it. It seems you parented it to something but what? What exactly is a control object?

Chipmasque, I like how you got the blobs to interact. Did you use the same basic idea as 3dementia? What did you do to give them each more variable paths?

The control mesh is part of the Fluid sim setup – it basically drags the fluid around with it as it moves, based in the specs you give it. The blob interaction is the Fluid sim doing its thing.

My variation on 3dementia’s file was to use a different fluid mesh, this one made up of five discrete component droplets. I also jiggered a few of the Fluid sim settings. Best way to learn about both approaches is to download & dissect the files, as well as reading up on the subject in the Manual. For me, 3dementia’s file made all the Manual language make solid, practical sense.

Awesome. I finally understand how this works! Thanks guys for your help I seriously wouldn’t ever have found this out on my own. So I just had one last question. I like how pulling a control object away from a large body of water creates drops that then fall backward. The only thing is the drops always seem to be “glass of water size” I was wonder how to get a bunch of small droplets to make it look like I am pulling a whole bathtub’s worth of water out of a river and having some of it fall back in. It wouldn’t just be a couple drops, it could be hundreds. I know the baking will take a while for something like this, but I wouldn’t mind if I could get the effect right. If there is a way that might be easier on the computer, like perhaps using some type of particle, that would be great. Anyone have ideas how to do this?

I haven’t used it, but there is a Particles option in the Fluid sims that seems designed for just this purpose. Check the Manual for details, maybe search out some tutorials a well. I’ve seen some neat-o vids on youtube that use them, it looks pretty good.

I am rendering a test of controllers right now - my goal is to make a more natural meniscus (crawling of fluid up the inside edge of a glass instead of pushing away as it does in the fluid sim). Have any of you tried that? It seems that one problem I have is that if the control ( a ring shape) is dipping down into the fluid, it behaves fine but once the control is covered with fluid, it sticks too tight to sag back down and drip off with gravity. No problem except that you need different forces for each so a droplet splashed onto the side of the glass sticks like glue and won’t drip. More experimentation to follow.

Has anyone tried this?

I don’t think there’s enough in-depth fluid physics in the sim to do a proper meniscus without sort of “cheating” it like you tried, since iirc that has a lot to do with the specific surface tension properties of a liquid and the kind of container it’s in, and the fluid sim is more general, concentrating on shape and large-scale interaction effects.

Have you thought about using the Attraction property in reverse? I think you can input negative numbers for a repulsion effect(?), maybe use it to “dimple” the fluid mesh surface? Easy to try, at least.

So here is my test render for the effect I was trying to get (more or less). Thanks for your guys help. I mostly like how the project turned out. A couple things I am trying to figure out is how to get the water droplets to fall at normal speed (they seem slow to me) and how to get the water to feel less jello-y. What do you guys think? Any ideas on how to improve it. I would love to get more droplets falling, I think this is possible with the fluid particles, but I haven’t figured it out yet.