FLIP Fluids Addon: A liquid fluid simulation tool for Blender


(Redfirm) #545

will there be a function for the fluid to push objects around and influence them? this is hugely missed and would be a great addon :slight_smile:

(RLGUY) #546

Looks like for some reason Blender is generating a pink preview for the icon. I’ll need to check this out to figure out why this is happening. The material should not be missing, however, and should contain a principled shader node setup.

Whitewater particles are rendered as just small icospheres by default (object geometry can be changed in display settings). Whitewater renders best when the particles are small and there are a large number of them (million+):

See this topic for how to generate more whitewater: https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Scene-Troubleshooting#simulation-not-generating-enough-whitewater-foambubblespray

If you need help getting started with whitewater, you may check out these tutorials: https://youtu.be/RknFvqTlMJQ, https://youtu.be/3EfgsciQ5rM

GPU features were actually removed since version 1.0.4 and replaced with higher performance CPU methods: https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Frequently-Asked-Questions#is-the-flip-fluids-simulator-gpu-accelerated

This will not be possible in Blender: https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Frequently-Asked-Questions#can-the-flip-fluids-simulator-push-around-rigid-body-objects

The fluid simulator is not able to affect the motion of rigid body objects. Obstacle objects can push around the fluid, but fluid is not able to push around obstacles. This is because there is not a way to communicate fluid forces with Blender’s rigid body simulator.

(lumpyoatmeal) #547

I’m doing an experiment with a high surface tension (25), and the fluid after it hits a round obstacle is coming out with a square shape but I’d expect it to be round. Is this because of my high surface tension?

Here’s a screen shot from the bottom, and the blend file.

blend file

(RLGUY) #548

This looks like it is behaving as expected. Surface tension will try to minimize surface area while maximizing volume. This is due to the way that surface tension distributes forces based on amount of curvature. If it were to cover the ball in a perfect dome, this would be a surface with a high surface area to volume ratio. Depending on amount of surface tension, speed, and other forces acting on the fluid the resulting shape could have 4 receding edges that produce a square, or 5 that create a pentagon shape, or more.

This is similar reasoning to what gives a ‘crown splash’ its shape:

And just a quick developent update:

The way that FLIP Fluids handles thin obstacles has been a weak point in the simulator. We’re improving the way that we handle collisions between fluid and thin obstacles to prevent leakage. No tricks or workarounds!

And just letting you know that I will be on a break for the rest of the holiday season! Regular development of the FLIP Fluids addon will resume in the new year. Happy holidays!

- Ryan

(lumpyoatmeal) #549

Ok, thanks!

(RLGUY) #550

Hey everyone! We needed to release a quick new experimental build due to a recent update to the Blender 2.80 API (issue #408). The build is available in the product downloads labelled as flip_fluids_addon- This is just a small update and mainly just contains the API fix and improved support for thin obstacles.

(RLGUY) #551

Happy new year everyone! Just a quick update: I am back from holidays and development of the FLIP Fluids addon has resumed!

Blender 2.80 Support

It looks like there are still frequent EEVEE crashes when rendering a simulation with the latest version of Blender 2.80. I have narrowed down the problem and a bug has been issued to the Blender developers and can be viewed here: https://developer.blender.org/T60094

A few users have mentioned lately that rigid body simulations cannot be be baked if a FLIP Fluids domain is present in the scene. This has also been investigated and a bug report can be viewed here: https://developer.blender.org/T60136

And the bug that was recently preventing whitewater/dupliverts from being rendered in Cycles has been resolved! Report here: https://developer.blender.org/T58956

- Ryan

(Klutz) #552

FWIW: I can confirm the same thing is happening on the latest Linux build.

version: 2.80 (sub 40), branch: blender2.7, commit date: 2019-01-04 21:18, hash: a77b63c56943, type: Release
build date: 2019-01-05, 00:56:39
platform: Linux


RLGUY, I skimmed through some of this and it sounds like GPUs are used… somewhat… What about multi-gpu? I have three 980Ti currently. Would all be used in FLIP, or just the first?

(RLGUY) #554

Thanks for letting me know! I had not tested on Linux yet.

If anyone has an account on https://developer.blender.org/, commenting and verifying that you are also experiencing the issue can show the developers that there is a desire for the issue to be fixed. The developers are likely swamped with the many other 2.80 issues right now. I’m sure the issues will be fixed in time, they’re usually quite fast with bug fixes.

As of version 1.0.4 (Aug 9, 2018), all GPU calculations have been removed and replaced with higher performance CPU calculations. In earlier versions, GPU acceleration played a very small role in the simulation calculations. Only one GPU could be used and there would be no increased performance if adding more GPUs.

(Pavel_Blend) #555

Just a suggestion: would you like to save whitewater particles as a standard blender particle system?
And you can also save FLIP particles. The blender does not provide the ability to store fluid particles in this way. But there is a workaround:
You can directly save particle information to * .bphys files.
And then create a particle system and specify the “External” parameter.
I’m in the addon jet_fluids made in this way. Here is the code:

And the question is:
What are the future plans in developing FLIP Fluids addon?
What features will you implement?

(RLGUY) #556

This is awesome and looks like a great resource! I’ve always wanted implement whitewater/FLIP particles as a particle system object. This opens up the possibility to attach different kinds of simulation data to the particles that can be used for rendering (ex: speed/velocity, particle lifetime). Thanks for tip!

A few of the main things we’re focusing on right now:

  • Improving features in experimental builds - Improving stability and functionality of latest features and performance enhancements to get these parts into a stable version
  • further Blender 2.80 support - We’re waiting on some bugs to be fixed by the Blender developers so that simulation can be rendered in EEVEE as well as adding in missing features.
  • Investigating bugs within Blender - There are other bugs in Blender that are causing problems problems in the addon such as render crashes in 2.79 Cycles and during simulation export. I’m working on tracking down what areas of the code are causing crashes so that simplified scripts can be created in order to report the bugs to Blender developers.
  • Force field integration - adding functionality to use Blender force field objects within the simulator
  • Code cleanup - This week I am focusing on rewriting/cleaning up some code in the simulator/addon. You won’t see the effects of this when using the addon, but it helps us make it easier to maintain and further develop the addon.

We recently had a chance to do an interview with CG Cookie and the Blender Market. Get to know the team behind the FLIP Fluids addon and check out our interview here: https://blendermarket.com/posts/flip-fluids-creators-blender-is-becoming-incredibly-powerful

(Pavel_Blend) #557

If you use a standard particle system, then you can store the color of particles in the Angular Velocity parameter.

And you can also realize the vertex colors of the mesh, which are inherited from the particles.

(prestonparty) #558

Having great fun with the addon, You’ve done a great job on it! I think the surface tension update has been my favourite part so far (I love the look of small scale sims etc) Are there any plans for the future to add multiple fluids/viscosities within the same simulation?

(RLGUY) #559

Thanks, that’s great to hear!

We hope to be able to add mixing fluid viscosities/materials in a future update. We actually had a prototype implementation for mixing viscosity about 9 months ago but there were too many problems with this feature to make it into a release. The main issues were with keeping the simulation stable and with more complex simulations resulting in very very long simulation times. It will take some time to research this feature and try out a new approach. We will likely have a mixing fluid materials feature before we figure out how to properly implement mixing viscosities.

Here is a test with variable viscosity during early development: https://gfycat.com/NiceFantasticHectorsdolphin

(SteveWarner) #560

Great job on the plugin, guys! It’s easy to set up and fun to use.

I’m trying to set up what seems like a simple simulation of a water splash around a product as seen here:


From what I’ve read, surface tension is key to getting this effect. I’m using the experimental build in 2.8 and tinkering with the surface tension but am unable to get this effect.

I’ve got the default cube as my domain, a scaled down version of that for the water base, and an Icosphere water surface acting as a drop. (I’ve also tried using an obstacle as seen in the Phoenix FD video above to no avail.)

If I set my surface tension to the default of 5, the water barely makes a ripple. If I set the surface tension to 0.001, I get a splash, but it has no height. I’ve increased my simulation resolution to 120 and this is all I can get.

How can I increase the height of the splash (Z axis) without affecting the diameter (X & Y asis)? I’ve tried adjusting the speed, world scale, etc. without luck. I’ve read through the manual and am now at the point where I’m just randomly guessing so figured it’s time to ask for help.

Help! Thanks in advance!

(RLGUY) #561

My guess would be to try using a deeper level of water. It looks like the simulation in the video actually isn’t just a thin layer. More depth to the water will allow for a more upward push in velocities. Another thing to try could be to reduce the amount of gravity (In the world panel), but I think this would also increase the outward splash.

Surface tension is still something we’re working on to improve and there are some problems in our current experimental implementation. Hopefully this feature will be easier to use in the next updates! Today I will be experimenting with ‘sheeting’ features which compliment surface tension effects quite well:

Hope this helps!

(SteveWarner) #562

Thanks for the lightning fast reply! Great to hear about the development work being done on sheeting. I had no idea there were so many factors to consider in fluid sim. You guys are saints for bringing a high quality fluid sim to Blender.

I’ve tried playing with gravity (extremes of +50 and -50m/s) and intervals of 10 inbetween but no luck.

I had a deeper amount of water before and just recently tried making it thinner. I’m now going to go back and try using a collision surface for a thin sheet of water and a cylinder for a deeper “well” that I can drop the obstacle into.

As a side note, I had relative success using a low speed (0.25), a low viscosity (0.2) and using a tear-shaped obstacle mesh pushing up from below rather than dropping from above. The problem, of course, is that this pushes unwanted particles up in the center, which would require manually exporting the mesh sequence and editing each one by hand.

There were also gaps in the splash mesh. I tried increasing the particle size and upping the domain resolution of the simulation, but that totally failed. Apparently the higher resolution added more particles, which killed the “crown” shape of the splash. I’m guessing that this is where the “gap fill” shown in your video would be very helpful.

Anyway, thanks for the help. I’ll keep plugging away at it and will check back for updates!

(RLGUY) #563

I just had a chance to test some crown splash setups. I found that these splashes are easier to achieve in our current development version, but is more difficult in the latest version on the Blender Market. Since the last update there have been some tweaks to the surface tension feature and improvements with how obstacles interact/collide with fluid.

This is from our current development version. In the latest released version the splash turns out very small.

As the splash continues to grow you can really see the particles separating and that is where a sheeting/gap-fill would help.

The new improvements still need some testing, but I’ll try to have a new experimental version ready for next week (Hopefully with a sheeting feature!). I was originally planning on waiting for a 2.80 rendering bug to be fixed on Blender’s side before releasing the next update, but it seems like this may take longer than expected so I’ll just go ahead an make an earlier update.

(SteveWarner) #564

That’s terrific! I’m looking forward to testing out the new version!

If you’re able to get sheeting/gap-fill implemented, that would be awesome. Check this out:

I was able to get a decent splash shape using the version on the Blender Market but you can clearly see holes between the outer form and the inner solid area. There’s a fairly distinct “outline” showing where the splash wants to be, but doesn’t have enough fluid to fill that up. That’s where the sheeting/gap-fill will really be helpful.

For what it’s worth, I got this by using a speed of 0.1, a viscosity of 0.1 and a surface tension of 0.1. What I found, though, is that the animation of the collision object has as much to do with the simulation as the fluid domain settings. A simple offset of the collision object’s keyframes on the timeline completely changes the simulation. I suppose that’s to be expected, but I’m yearning for something more predictable. :slight_smile:

Thanks again for the lighting fast reply and for giving attention to this! Hands down the best addon support I’ve ever seen in any 3D application!