FLIP Fluids Addon: A liquid fluid simulation tool for Blender

add-ons
commercial

#525

Those updates look incredible.

I have a quick question about if something is possible to achieve with Flip Fluids.

Absolutely loving the quality of simulation this thing puts out. I’m currently using it to create a waterfall effect. Ideally, one that could be set on a loop. Preferably on a 2 - 4 second seamless animation loop. Is this something that can be achieved with how the simulation works?


(RLGUY) #526

There’s no specific features in the FLIP Fluids simulator for creating looping simulations that morph physics back to some previous state in the simulation.

I think the best way to create this type of loop would be to render out a clip and then edit the video to fade back to the start. I had an old 10 second clip of a waterfall type simulation and just tested this out quickly:

It’s not perfect and you can see the fade between clips at the end, but perhaps with some experimenting/editing you could get something that works well.

Here’s what the clips look like in a video editor (I used adobe premiere):


(IceChest) #527

I also baked the surface_tension_pour example at the 350 resolution and it was 2hr 31mins total with an i7-8700K at 4.3 GHz.


(RevDr) #528

is it possible to get more in depth instruction on how the ocean modifier can work with flip fluids? it’s been done a couple times – but i still don’t quite understand how the displacement mesh from the ocean modifier loops back in and i think i am missing something with the vertex group on the fluid itself…

The basic idea with the Dolphin Example is to offset the the Flip Fluid with the Ocean Modifier (well a cache made by it to be precise)
If you watch the video clearly it shows everything that is needed.
As I understand it, the general principle is if you imagine a cuboid of water in flip fluids and you only want the top of that body to be affected by the Ocean displacement and only when it is near it’s initial (unmoved) position. i.e. when it is displaced by the simulation you don’t really want it being affected by the ocean as that would make the sim look wrong.
So the steps required are…

  1. Creating a plane placed near to the top of the initial flip fluid surface will act as an influence on which vertices in the flip simulation are displaced.
  2. Create a vertex group on the flip fluid surface
  3. Use a vertex weight edit modifier to add all vertices to the group
  4. Use a vertex weight proximity node to make sure only those near the plane are influenced
  5. Use a displacement modifier which uses the Ocean Cache as a texture to offset the displacement but using the vertex weights.
  6. Don’t forget the whitewater objects need displacing in the same way

I am using this method as a starting point for a project I have been working on during my sabbatical. I however another vertex group and modifiers added to it which optionally nullify the affect of the Ocean Modifier near objects in the sim so that interact more closely with water surface.

Also you can use the XYZ components of the displacement cache (the video uses what looks like a combined one) - however you will need to have a process which flips the Y & Z components before using them (I do that in Fusion).

If you want to use it on a larger Ocean body then the method I am using (there are probably better ones, but this what I am doing) is to render the Ocean Layer out separately and then composite the Flip Fluid on top of that. You will therefore need a way of compositing out parts of the Flip Fluid that you don’t want. I do that by rendering out a separate matte pass which is generated using a shader.

You can see an image of ‘proof of concept’ test using a similar matte I did earlier in the year (my image is the one with question mark in it).

Here is a basic example matte here - the green component indicates the amount of FlipFluid to use in comp.
image This is similar to the method I was using for the test earlier in the year. I have somewhat refined the process since then - although that has also required a little bit of coding too.

My project is nearly done, but won’t be released to the new year (my sabbatical is at its end this week and as a church minister December tends to be more than very busy(!) so I will get little time to finish things off after then) - that will also give a little time to rerun a few of the sims that I am not quite happy with yet.

Hope that helps


(lumpyoatmeal) #529

Playing with surface tension in zero gravity.

https://streamable.com/m5hlr


#530

thanks for this excellent response!

i am trying to get larger ocean views with better foam as well. so the seperate matte pass you are talking about is probably the way go. i wouldn’t have thought of that! i’ll have to find some tutorials on this topic now…

best wishes for your december!


(rattle-snake) #531

Hello Ryan !
I’m just playing for the first time with my dual CPUs computer and I noticed that only one CPU is used for calculating the simulation.
Is it possible for the next version to include both CPUs ?

Thank you very much,
Seb


(esimacio) #532

I am sure this addon is very good. I am tough very dissapointed with the number of tutorials for it. Its kind a hard to find out on your own how to do things. And when will the 2.8 version come?


(RLGUY) #533

Hi Seb, we have actually had this request recently. I’ll post the response here:

The FLIP method of fluid simulation is not highly parallelizable task in contrast to a very parallelizable task such as rendering. There are sections of simulation calculations where it is only possible to run on a single thread and this is the bottleneck. The simulator will run best on a CPU with a high clock speed and using around 4/8 core or 8/16 threads. Users with CPUs capable of running many threads have found that decreasing the number of fixed threads produces a quicker bake process (ex: running 16 threads rather than 32 on a threadripper) due to less overhead of running many threads.

We multithread calculations when possible using simple raw threads. The operating system reports how many threads are available to run concurrently, and by default that is the number of threads in the ‘auto detect’ option. When we actually launch the threads, we leave the scheduling and which cores to use completely up to the operating system. We’re not using any special task/thread management libraries which may be needed in order to access all of the power of your system. It is possible that we would need to launch multiple processes of the application to use all available cores.

Due to the problem of the simulation method not being a highly parallel task, we won’t likely expand the simulator to use more threads than the operating system reports to us. If in the future we have calculations that can benefit from more cores, we would look further into this.

I’m just wondering what CPU model you are using. We have had this request from the system where the simulator was only able to use 48 out of 96 cores on a server.

It would be great to have more tutorials and documentation for how to use the addon. We’re just a small two person team and it has taken longer than expected to produce tutorials and update documentation alongside developing simulation features.

Just wondering what kinds of tutorials the community would like to see. Example:

  • Would you like more video tutorials?
  • Would you like more written tutorials?
  • Would you like to see any specific simulation scenarios for tutorials?
  • Would more example scenes help with learning the addon and how to set up simulations?
  • What parts of documentation would you like to see improved? Any specific expanded explanation on any settings?

This has been our main priority in the last two weeks. I’m hoping to have the first working experimental build available on Dec 14th, assuming I don’t run into any huge problems.


(rattle-snake) #534

Thanks for the explanation :slight_smile:

I am using 2X Intel Xeon E5-2696 v3

Side note :
I saw a conflict between blend4web addon and FlipFluids.
I posted a comment here :

Thank you :slight_smile:


(lumpyoatmeal) #535

Another zero gravity surface tension experiment; clay opengl render.

https://streamable.com/xxw69


#536

Thank you so much for your help with how to loop a waterfall animation, @RLGUY! You’re amazing. Worked like a charm.

I’m also wondering, is it possible to use Flip Fluids to create streaks of water as they go down a glass window during a rainfall? I’ve been struggling with the settings and for the life of me I’m not able to get good results. The water on the glass always just blobs up but never streaks down properly.

Cheers.


(RLGUY) #537

Thanks for the tip! I haven’t had a chance to look very far into this. I tried installing the latest version of Blend4Web but was not able to reproduce any issues, but I may not be doing this right. I am not very familiar with what Blend4Web is.

At the moment this issue looks like a problem on Blend4Web’s side. I think the issue is that they are removing/modifying a part of the Blender API that we use to add our ‘FLIP Fluid’ button to the physics panel. If you would like me to look further into this, feel free to open a new new issue with error messages, Blender/FLIP/Blend4Web version info, and any necessary steps to reproduce.

I would say that this could be very difficult in FLIP Fluids or not possible. It may also be very difficult in other fluid simulation systems as well. There are some complex physical interactions at the small scale of a droplet. Some necessary interactions for this effect are not simulated. I’ll try my best to explain.

Surface tension is definitely needed for this type of effect and we have an experimental version of this feature available, but there are limits to how we simulate surface tension forces. Surface tension forces act on the fluid surface between interfaces such as the fluid-air interface and the fluid-solid interface. We simulate the fluid-air surface tension mainly. We also simulate the fluid-solid interface, but we handle this in the same way as we handle fluid-air. In reality there would likely be different surface tension values for the fluid-air and fluid-solid.

The most important interface necessary for small water droplets is the very complex triple junction interface: fluid-solid-air, which is surface tension where fluid, solid, and air meet. This is something that is very complex to simulate and is not taken into account into our calculations. This type of surface tension allows water droplets to cling/hang/droop naturally off of a surface. Here is a picture of some droplets I threw onto a tile:

triple_junction

There is a paper that details how to simulate this interaction: Water Drops on Surfaces. The paper is quite dense with information, but about halfway down there are some images showing this triple-junction surface tension effect.

As far as I know, there are no mainstream fluid simulation systems targeted for use in computer graphics that simulate this behaviour in a physically accurate way. If you were to simulate this, I would choose the Houdini FLIP Fluids simulation system. There are some plugins for Houdini that fake the surface tension adhesion effect that are quite plausible for use in animation.

An alternative method for simulating this effect would be to use a simulation system used for scientific/engineering purposes, but this is much more involved and may require you to write your own solver.

Due to the complexity of this physical interaction, it might be beneficial to achieve this effect outside of regular fluid simulation using clever graphics tricks or particle effects. For example, check out the very cool real-time simulation/emulation of water droplets on a windshield in the Drive Club video game.

Hope this explains well!


Blender 2.80 Support Available Tomorrow

Sometime tomorrow our next experimental build (v9.0.5.1) will become available. The most notable addition to the FLIP Fluids addon will be adding support for Blender 2.80:

Rendered in EEVEE: About 21 minutes for 250 frames at 1080p, 60fps.

All simulation features will be included in this first iteration of Blender 2.80 support, but there are some UI/Interface features that will need to be added at a later date. For more details, see this issue: #404

And some more good news: we may have solved the issue that was causing FLIP Fluids to crash Blender during render while the viewport was open. For more details, see this issue: #403.

- Ryan


#538

Wow, I appreciate you taking the time to explain why getting the water simulation to streak down glass hasn’t been working so well for me. Add to that, 2.8 support coming tomorrow? That EEVEE render looks soooo good.

You’re amazing. Cheers!


(Redfirm) #539

i cant seem to get it to work on 2.8, i get the warning that the plugin needs to get updated to 2.8? anyway to fix this?


(RLGUY) #540

Hi Redfirm,

If you downloaded v9.0.5.1 earlier today, you may need to re-download the addon and re-install. I accidentally uploaded the wrong file earlier today. My apologies for the inconvenience! Let me know if you still run into trouble.


(Redfirm) #541

its working, thank you. i also had a question. it seems as if i am missing the white foam material, its pink colored and when i render i get these big spheres instead of tiny foam. any idea how this is happening :slight_smile: thank you for the support btw


(RLGUY) #542

The material icon might be showing up pink because the material is stored in a Blender 2.79 file. The shader should still render okay in EEVEE since it is a principled shader. I’ll need to look into why the icon is not correct.

Does setting the whitewater particle scale to a smaller value work for you?

whitewater_scale


Just a heads up about Cycles 2.80: a user has let me know that dupliverts rendering is currently broken in 2.80, so that will affect whitewater rendering until the blender developers fix this issue: https://developer.blender.org/T58956

A note about render crashes: some users have reported being unable to render in EEVEE due to crashes, even using workarounds. See this issue for more info about render crashes: #403

Thanks for the feedback! We have had similar reports that some users are unable to render an animation or a single frame using F12 when trying the workarounds. At the moment there are many bugs related to Blender 2.80 render crashes on the Blender issue tracker. I’ll be keeping an eye on the issue tracker and continue investigating this problem. It is possible that this issue could be caused by a Blender bug, a problem with our code, or a combination of both.


(Redfirm) #543

the material is also missing in 2.79, resizing seems to help, but i still get round bubbles.



(rbx775) #544

Hi RLGUY !
With your quote from February in mind, do you think “Dual/Multi GPU support” would be a worthwhile feature to implement?
Or would it barely worth the hassle after all?

thanks, great Addon!