FLIP Fluids Addon: A liquid fluid simulation tool for Blender

Thanks for sharing! Here are some tips that might be something to experiment with:

  • Increasing simulation resolution - this will add more detail physics and motion to the fluid splashes, but will take longer to simulate. As much resolution as you have patience for.
  • Increasing obstacle friction for the walls/floor - this might help with more natural fluid interaction with the surfaces
  • Creating a wetmap to the surfaces - this could look great for where the fluid is hitting the floor to create a staining effect. We have a tutorial for this here and I like this CG Cookie tutorial here

Hope this info helps!

2 Likes

Thank you for the tips I will try all of them and get back with an updated version.

Weekly Development Notes #42 – See You In The New Year!

Covering the week of December 7th – 11th, 2020.

Hey, it’s Ryan with our 42nd update for the FLIP Fluids liquid simulation addon for Blender! We had a bit of a problem with our website being down over the past week, but Dennis located the problem quickly and it’s now back on line!

The past two weeks mainly involved fixing some minor bugs reported since the stable release of FLIP Fluids version 1.0.9 and these are now available in our latest experimental version.

Winter Break

I’ll be on winter break during December 17th 2020 – January 3rd 2021. It’s been another fantastic year of development, and I’m sure 2021 will be another great one. I’ll be posting an overview our 2020 development year in January.

Have a happy holidays, and see you in the new year!

Delay for new example scenes

In the last update I had mentioned that there were plans to add three popularly requested scenes that we had posted about recently. Unfortunately, I was not able to finish cleaning up and optimizing the scenes in time before the end of the year. These will be added in the beginning of January.

Force Field Experimental Version 9.0.9.11

This new experimental version update adds fixes to bugs reported since the stable release of FLIP Fluids 1.0.9

Want to try out these fixes? They can be tested in our Force Field Experimental Builds Package in the latest version!

Release Notes v9.0.9.09

  • This is the first experimental version since the stable version release of FLIP Fluids 1.0.9. Update mainly involves adding minor bug fixes reported after the stable release.
  • Notice: Development of the FLIP Fluids addon will be on winter break during December 17th, 2020 – January 3rd, 2021. Have a happy holidays and a wonderful new year!
  • Compatibility notes:
    • Due to a bug in Blender versions 2.80, 2.81, and 2.82, it will no longer be possible for us to support MacOS in these three versions. The FLIP Fluids addon on MacOS will still be supported in Blender 2.79, 2.83+, and 2.9+.
    • Blender 2.92 is not yet supported. This version of Blender is still in early development and we will need to wait until this becomes more stable in order to add support (track issue here).
  • Added a filesystem protection layer to enforce that all file removal operations are functioning correctly.
    • All file removal operations must pass through this layer which detects bugs related to human/development error.
    • Enforces that files can only be deleted within the current cache directory or the FLIP Fluids addon scripts directory.
    • Enforces that directories cannot be deleted recursively (ex: files within subdirectories of a subdirectory cannot be deleted).
    • Enforces that files can only be deleted if they contain an extension contained in a whitelist of extensions used by the FLIP Fluids addon.
      • Extension whitelist: .backup, .bbox, .bobj, .data, .ffd, .fpd, .info, .md, .png, .preset, .sim, .sqlite3, .state, .txt, .wwp
  • Bug Fix: Addon will no longer allow the FLIP Fluid current cache directory to be set as blank and will be set as a reasonable default value.
  • Bug Fix: FLIP Fluids Helper menu command line tool operators displayed incorrectly on MacOS and Linux (issue #505).
  • Bug Fix: FLIP Fluids Helper menu command line tool Copy to Clipboard operators were not functioning on MacOS and Linux (issue #505).
  • Bug Fix: Fixed potential Out of Memory error that could be triggered if a force field object is located outside of the domain.
  • Bug Fix: Fixed potential issue where the FLIP Fluid surface or whitewater object could lose it’s material after reseting a bake.
  • Bug Fix: Fixed issue where inflow particles could be seeded in an unnatural pattern (issue #509).
5 Likes

Here is the updated version I applied your tips. It took almost a day to simulate and about 3 days rendering.

6 Likes

I did a test with the Flipfluids build force fields and soft body simulation, reminds me of Flubber.

6 Likes

Hello! I started working again on the splash for the robotic arm, for which I posted a reference a few messages above.

The mesh that will have to collide with the fluid is quite complex and composed of several different objects. Is there a function in flip fluids to create a “shell” mesh for the collision around the object I wanna use as a collider?

At the moment no animation is needed, but in case I will be required to move the robot, how does my workflow change? Any advices here?

You could use box geometry and parent it to your robot and setting that as your collide, another option is to duplicate the mesh and use a decimate modifer or remesh modifer with voxel option.

1 Like

Geometry is allowed to be complex, however it must satisfy two requirements:

  1. Geometry must be manifold/closed/watertight
    • Note: self-intersections are considered non-manifold. However, if there are two separate obstacle objects that intersect, that will be perfectly fine within the simulator (ex: two separate cube objects overlapping).
  2. All parts of the object should have sufficient thickness in order to be resolved on the simulation grid

If the objects are not able to satisfy these, then you will need to re-model the object for use in simulation. Modelling a simpler proxy object just for simulation is a common technique in simulation. The addon will not automatically re-model or alter your objects for you. This would be quite a difficult process for the addon to figure out and have work correctly.

If the animation is simple and just keyframed location/rotation/scale or f-curves through the graph editor, no action is needed and the simulator will automatically process this animation. If the animation is complex such as parented relations or through armatures, the Export Animated Mesh option on the object will need to be enabled.

Hope this info helps!

1 Like

thanks. the object(s) is actually rigged, but for this particular scene luckily it will stay still. So for now I just applied all visual transforms, joined the objects and remeshed them using the voxel remesher, which worked well.

I guess one could create instances for each object and use the remsher modifier on them, althought I guess this would be quite heavy, at least depending on the amount of objects/geometry, which in my case is quite a lot.

However, a couple of ideas for features:

  • collision by collection, so basically all the objects in a collection act as collider, saving you from having to turn on the flip sim/collision object by object.
  • a function to automatically create a duplicate for each collider and add a remesh modifier, to try and automate the process of creating a proper mesh for collisions.

Those just want to be some constructive ideas, not pretending anything of course :slight_smile:

Thanks for the suggestions!

For now, these operators in the side N panel might help with adding all selected objects as a FLIP Fluid type:

add_objects

1 Like

ah that I guess it’s already a big help which I didn’t know about :slight_smile: Thanks!

Hello, @RLGUY

I have a question about the roadmap for an addon. Where can I read the list of features that will be added in the future? Issues on github? Or is there a more detailed and complete roadmap?

And I want to make the following feature requests:

Make water behavior more realistic. To make non-viscous liquids without surface tension more realistic. Here are examples that compare mantaflow and flip fluids:

In this example, the mantaflow looks more realistic because the liquid ball changes shape in the air. In flip fluids, a ball of fluid will not change shape until it hits an obstacle or walls. What does this behavior depend on? Can a similar function be added to flip fluids?

In all examples I used the FLIP method.

Also, in the flip fluids add-on, the liquid does not look natural due to the fact that non-natural holes appear in the liquid flow, which give out the computer origin of the liquid. Here’s a screenshot:

Mantaflow makes droplets of liquid look more realistic. The droplets stretch along the velocity vector. In the flip fluids addon, the droplets are elongated along a vector that is perpendicular to the velocity vector:

FLIP Fluids:

Mantaflow:

Is it possible in the add-on to change the fluid algorithm to give more realistic results? To make the drops look realistic, like in mantaflow, without using surface tension. To make the bursts realistic, like here:

We have a detailed roadmap that is used for our internal development, and I do not think that we will make this public, or give our timeline estimates. The roadmap contains so many potential features that could possibly become invalid or infeasible during development due to unforeseen issues. Features that could be cancelled, or scrapped, or greatly delayed.

I don’t want to release a roadmap that over-promises features where we end up under-delivering and disappointing our users. I would say that my biggest mistake during development of this addon was over-promising on the features that we could include in our force field features, and now this feature is taking such a long time to finish as a result.

When we release features or make announcement of feature releases in the future, I want to make sure that they are a solid promise that we can deliver on.

Generally we only discuss what we are currently working on in our development notes and sometimes comment on our next target. Currently, I’m working on maintaining code, continuing work on the force field feature set, and on the side working on our next target which is a rewrite/redesign of the simulation engine to make it faster.

Our next target to make this simulator faster includes many planned features, but I am not ready to make promises on what we will be able to include.

Interesting comparisons! The differences are probably caused by subtle (maybe large?) differences in the implementation details of the simulation method. Without taking a deep look into the Mantaflow codebase, I’m not sure if we can exactly emulate these behaviours. I have some ideas, but will need to find time to try them out.

I am not entirely sure, but I think the falling behaviour of Mantaflow in the video comparison could be a bug. This looks very odd. As far as I know, both of our simulators should be simulating in a vacuum, but I could be wrong about Mantaflow. In a vacuum, the fluid should not change shape while it is falling as there is no air resistance.

In very early development, we had some accuracy issues that made our fluid fall exactly in the way that the mantaflow ball is falling, and we fixed this since this was an error. This was caused by incorrect treatment of the fluid surface boundary. But I could be entirely wrong and that Mantaflow does take into account some external forces outside the fluid.

1 Like

Another test

1 Like

Weekly Development Notes #43 – Three New Example Scenes

Covering the week of January 4th – 8th, 2021.

Happy New Year! We’re back with our 43rd update for the FLIP Fluids liquid simulation addon for Blender! My last week of development mainly involved catching up on what I’ve missed over the Winter holiday break and finishing up some unfinished tasks. I’m now all caught up, my development schedule is back to normal, and I’m picking up on continuing working on our turbulence force field feature which I’ll post more about next week.

Three New Example Scenes

By popular request, we’ve cleaned up three scenes that we posted during our last Black Friday sale and they have now been added to the FLIP Fluids Example Scenes.

Compared to our other example scenes, these ones contain more complex simulation set ups, but we’ve included some detailed notes on what the simulation objects are doing, and why certain settings were chosen.

Force Field Experimental Version 9.0.9.12

This new experimental version update adds fixes to bugs reported since the stable release of FLIP Fluids 1.0.9.

Want to try out these fixes? They can be tested in our Force Field Experimental Builds Package in the latest version!

Release Notes v9.0.9.12

  • This is the first experimental version since development has resumed after our winter holiday break! This update mainly involves adding minor bug fixes.
  • Blender 2.92 Alpha support: as of January 5th, 2021, the daily Blender builds now support the FLIP Fluids addon. In earlier 2.92 builds, a Python feature that the addon uses was missing.
    • The stable FLIP Fluids 1.0.9 is also now supported in Blender 2.92 Alpha.
    • Support may break as Blender 2.92 develops and issues can be tracked here: Issue #507.
  • Fixed bug where an incorrect frame was used in the simulation for the inflow/fluid object speed value if this value was keyframe animated.
  • Integrated a workaround into the addon for a long-standing Blender bug T71908 which causes keyframed render settings on the fluid meshes not to be evaluated during render. This workaround fixes:
    • Issues where keyframed settings in the FLIP Fluid Display Settings panel would not take effect during render.
    • Issues where the FLIP Fluids Helper > Override Frame Playback feature would not function during render.
    • Issues where an Ocean Modifier attached to the fluid meshes would not be animated during render.
  • Added three new example scenes by popular request (Animation previews, Example Scene Descriptions).
    • These scenes are also supported in the stable FLIP Fluids version 1.0.9.
  • New Documentation: Addon Installation Troubleshooting.
    • How to verify your FLIP Fluids installation file.
    • How to locate your Blender addons directory.
    • How to verify your FLIP Fluids Blender installation.
    • How to clean up your Blender addons directory in the case of an incorrect installation.
    • How to manually install the FLIP Fluids addon.
5 Likes

Just wanted to say that I’ve been following this thread for the majority of 2020 and finally gotten around to purchasing FF. I’m really excited to play with forcefields.

Thanks a lot and keep up the amazing work!

1 Like

Weekly Development Notes #44 – Turbulence With Curl Noise

Covering the week of January 11th – 15th, 2021.

Hello, welcome to our 44th update for the FLIP Fluids liquid simulation addon for Blender! It has been a productive last week. I have finished prototyping an idea for implementing curl noise as part of our in-progress turbulence force field feature, as well as implementing these noise methods into our FLIP Fluids simulation engine.

Curl Noise

In a previous post I had mentioned I was using Catlike Coding’s Noise Derivatives, going with the flow tutorial as a reference for how noise generation works, and it has been an excellent resource. The example code is in C# and uses the Unity engine, but I ended up using Python and some parts of our engine for prototyping and visualization.

Here’s an example of curl noise in action:

There’s no fluid physics in these examples, this animation just involves simple particles following a curl noise vector field. The noise grids were generated in Python for prototyping, which is quick for programming, but very slow for performance. After making sure the noise methods functioned correctly, the prototyped Python code was then translated into C++ for use in our FLIP Fluids engine.

We’ll need to add some feature to make our turbulence force field more useful and usable:

Noise Preview Visualization

The turbulence force will be able to be visualized by using the force field debug tools after starting to bake the simulation.

A problem with only being able to visualize after baking, is that noise settings can be difficult to understand how the noise will turn out when you’re setting up your simulation before baking. Mainly, it can be difficult the size and scale of the noise.

Blender’s texture panel has a noise visualization, but this is internal to Blender and we do no have access to this as an addon.

Due to this limitation, we’ll be adding our own preview visualization tool directly inside of the viewport within the domain. Unlike other force fields we have implemented, the turbulence generation is very quick to compute, so we should be able to generate a 2D sliced visualization in real-time as you change the settings.

Particle Lifetime Attribute

Some turbulence effects will spread the fluid out through the domain and you may not want it to reach the domain edges. Or you may want particles to disappear after a certain amount of time for other situations.

We’ll need to add a particle lifetime attribute to the fluid so that fluid decays over time. Inflows/fluid objects will need to have a setting to control the starting particle lifetime as well as a randomness setting. This is a somewhat popular request we have received over the course of our development, and this would be a good time to add this feature.

Having a framework implemented for particle attributes opens up the possibility for making it easier to add other attributes for interesting features. Such as particle attributes for color that can be transferred to the vertex colors of the surface mesh.

3 Likes