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.

7 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:

https://gfycat.com/ru/saltyrightharrierhawk

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.

3 Likes

Another test

2 Likes

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.

https://gfycat.com/highlevelthunderoushadrosaurus

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:

https://gfycat.com/limitedmixedgoose

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

Weekly Development Notes #45 – FLIP Fluids 1.0.9a Maintenance Update Next Week

Covering the week of January 18th – 22nd, 2021.

It’s our 45th update for the FLIP Fluids liquid simulation addon for Blender! Just a brief update as there was not much progress during the last week. We had an unusually high burst of support requests to handle and I only had a chance to add a few small and minor bug fixes. All caught up with that and now this week we’re having an unusually low amount of support requests so far!

Next week we’ll be releasing a stable maintenance version update, FLIP Fluids 1.0.9a. Not a very exciting version update, but the bug and stability fixes since the last stable release of FLIP Fluids 1.0.9 (26-nov-2020) will be a nice improvement. Big thanks to everyone who had been helping us with bug reports and testing in the stable and experimental versions! You’ve caught a good amount of bugs that had slipped past our testing.

Force Field Experimental Version 9.0.9.13

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.13

  • This is a minor update that only includes small and stable changes. Assuming no large problems are found, this version will become a maintenance patch, FLIP Fluids 1.0.9a, that will contain most changes since the release of 1.0.9. Expected release of February 3, 2021.
  • Bug Fix: Potential crash if a curve guided force field had endcaps disabled while enabling a minimum distance for the force field.
  • Bug Fix: Issue where exporting an animated curve guided force field could trigger a ‘Changing Topology Warning’. Note: it is okay for all current force fields to change topology.
  • Bug Fix: Issue where Remove Particles With Extreme Velocities could generate false-positives for a viscous fluid falling under regular gravity.
  • Bug Fix: Issue where keyframed quaternion or axis-angle rotation was not supported (issue #515).
  • Bug Fix: Issue where the baked debug tools (particle/obstacle/forcefield) would not be updated correctly if the simulation Time Scale value was set to 0.0.
  • Bug Fix: Potential error messages caused by the addon detecting Blender 2.9x versions incorrectly.
1 Like

Weekly Development Notes #46 – FLIP Fluids 1.0.9a Maintenance Update

Covering the week of January 25th – 29th, 2021.

Thanks for checking out our 46th update for the FLIP Fluids liquid simulation addon for Blender! Last week’s development mainly involved testing the FLIP Fluids 1.0.9a release candidate, some development of the in-progress turbulence force field, as well as experimenting with a simulation feature idea (more on that another time).

FLIP Fluids 1.0.9a

As mentioned in last week’s update, we’re releasing a new stable version today as maintenance update to add some small improvements and bug fixes reported since the last release.

Release Notes: FLIP Fluids 1.0.9a (03-FEB-2021)

  • FLIP Fluids version 1.0.9a is a maintenance update to add small improvements and bug fixes reported since the last stable release.
  • MacOS 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 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.
    • Support may break as Blender 2.92 develops and issues can be tracked here: Issue #507.
  • Added three new example scenes by popular request (Animation previews, Example Scene Descriptions).
  • Added a filesystem protection layer to enforce that all file removal operations are functioning correctly, reducing bugs related to human/development error (Documentation).
  • Added 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.
  • 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).
  • Bug Fix: Incorrect frame used in the simulation for the inflow/fluid object speed value if this value was keyframe animated.
  • Bug Fix: Potential crash if a curve guided force field had endcaps disabled while enabling a minimum distance for the force field.
  • Bug Fix: Issue where exporting an animated curve guided force field could trigger a ‘Changing Topology Warning’. Note: it is okay for all current force fields to change topology.
  • Bug Fix: Issue where Remove Particles With Extreme Velocities could generate false-positives for a viscous fluid falling under regular gravity.
  • Bug Fix: Issue where keyframed quaternion or axis-angle rotation was not supported (issue #515).
  • Bug Fix: Issue where the baked debug tools (particle/obstacle/forcefield) would not be updated correctly if the simulation Time Scale value was set to 0.0.
  • Bug Fix: Potential error messages caused by the addon detecting Blender 2.9x versions incorrectly.
  • Bug Fix: Issue where a combination of high resolution and small world scaling could result in the surface preview mesh not generating.
  • New Documentation: Crash Protection Features.
  • New Documentation: Closing Blender while a simulation is running.
  • 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.

https://gfycat.com/freshimperturbableflamingo

5 Likes

Weekly Development Notes #47 – Reworking Our Fluid Particle System

Covering the week of February 1st – 5th, 2021.

Welcome to our 47th development update for the FLIP Fluids liquid simulation addon for Blender! Last week’s work mostly involved starting a re-write of our simulation engine’s fluid particle system. We’ll cover that in this post as well as a few other items.

Particle System Rewrite

In order to support new and interesting features, we need to rework our particle system to be more extensible. This is our fluid particle system internal to our simulation engine which handles how particles are managed and stored – not to be confused with Blender’s particle system.

The motivation for the particle system rewrite is to be able to attach more data to the fluid particles and in a flexible manner. Up until this rewrite, our fluid particles could only store two vectors: one vector for the particle’s position, and another for the particle’s velocity. This is the minimum amount of data that the particles need for basic fluid simulation. But to add some requested features, we now need to be able to add more attributes to the particles. We also want to only add extra attributes to the particles when an enabled feature needs the attribute, as this extra data increases memory usage.

In the near future, we need to attach a lifetime value to each particle so that particles can be removed after their lifetime expires. This feature is part of a popularly requested effect where fluid flows through a turbulence force field while the liquid fades out after some time (think of an effect like a liquid flame). Another example of why a better particle system is needed would be in adding an APIC (Affine Particle-In-Cell) solver which requires a 3×3 matrix to be attached to each particle.

New Development Workstation

Dennis has been testing out our new FLIP Fluids development workstation. This is a ‘small’ workstation with a Ryzen9 3950x (16×3.5Ghz) CPU, 64GB RAM, and an RTX 3070 GPU. This will be great for simulations, rendering, video productions, and the 3950x will be very useful for testing and improving multithreaded performance for highly threaded CPUs.

Check out the first simulation test from the new system! This simulation was run at a 0.2x time scale for slow motion and then slowed down 4x further in post processing with DaVinci Resolve using an Optical Flow retiming process.

We’re now sponsors of the Poly Haven project!

Along with E-Cycles and CG Cookie, we have also recently become corporate gold sponsors of the Poly Haven project! Poly Haven is a merging of the popular HDRI Haven, Texture Haven, and 3D Model Haven platforms.

The Haven platforms provide 100% free and high quality CC0 assets. You can learn more about the Poly Haven platform on their FAQ. We’ve been big fans of the Haven platforms, especially their HDRI assets which have been incredibly useful to us. We use them in almost all of our example scenes!

More Development Notes

  • Adding a keyframe to the Min/Max substeps value affects whitewater generation (Issue #516) – Fixed a weird bug where adding a keyframe to any Min/Max property could overwrite all other Min/Max values when exported to the simulator. A side effect of this bug was that it could affect whitewater generation as the whitewater panel contains most of the Min/Max properties. This bug has gone unnoticed or unreported in the simulator since October 2017!
  • Adding support for Python 3.9 – The most recent Blender releases use Python 3.7. From a recent report, we have found out that some Linux distributions (Ex: Arch Linux) package Blender with Python 3.9 and this causes an error when attempting to use our FLIP Fluids addon. Although Python 3.9 is not officially supported in Blender yet, we can make some easy and small modifications in order to support Python 3.9 so that our addon can be used in a wider variety of Linux distributions.
  • New Documentation: error troubleshooting ‘The fluid engine version <0.0.9> is not compatible with the addon version <1.0.9> – This common error can occur if multiple versions of the FLIP Fluids addon are installed on top of each other. Prevention of this error requires following the installation instructions of restarting Blender before installing a new version. If this error does occur, first try restarting Blender and trying again. If the error persists, re-install the new version according to the Updating the Addon instructions.

The two fixes mentioned above will be available in next week’s experimental version 9.0.9.14 (February 17, 2021).

3 Likes