FLIP Fluids Addon: A liquid fluid simulation tool for Blender

Weekly Development Notes #54 – New APIC Solver In FLIP Fluids 1.0.9b

Covering the week of April 5th – 9th, 2021.

Thanks for checking out our our 54th development update for the FLIP Fluids liquid simulation addon for Blender! It was quite a busy last week with the release of FLIP Fluids 1.0.9b and the Blender Market Spring Sale, but now we’re back to a regular development schedule. In this post I’ll detail the new APIC solver that we added in the latest versions.

New APIC Solver

Since the release of Blender 2.92, Blender’s built-in Mantaflow simulator added an APIC solver, and we heard from so many of you that you’d love to see this in our FLIP Fluids addon, so we had to add an APIC solver as well! Let’s try to explain some of the differences between the PIC, FLIP, and APIC method. The following sections can also be found in our new FLIP vs APIC documentation section.

PIC vs FLIP vs APIC

  • PIC (Particle-In-Cell) – The PIC simulation method is stable, but not very accurate. Energy in PIC simulations quickly dissipate over time and can end up looking viscous. In this section, when we refer to PIC, this will mean that the simulation method is set to FLIP and the PIC/FLIP Ratio is set to 1.0.
  • FLIP (FLuid Implicit Particle) – The FLIP simulation method is unstable, but has an improved accuracy compared to PIC. FLIP simulations are energetic and do not quickly dissipate, unlike PIC. FLIP simulations are good for high energy, noisy, and chaotic simulations. Generally better for large scale simulations where noisy splashes are desirable. Due to being unstable, we mix in a small amount of PIC simulation to tame the chaos. In this section, when we refer to FLIP, this will mean that the Simulation Method is set to FLIP and the PIC/FLIP Ratio is set to 0.05.
  • APIC (Affine Particle-In-Cell) – The APIC simulation method is both stable and has an improved accuracy compared to PIC. APIC simulations are energetic, do not dissipate energy as much as PIC, and are also able to better preserve vorticity (rotational energy) compared to FLIP. APIC simulations are good for high vorticity, swirly, and stable simulations. Generally better for small scale simulations where reduced surface noise is desirable or for viscous simulations. In this section, when we refer to APIC, this will mean that the Simulation Method is set to APIC.

For a more technical overview of PIC vs FLIP vs APIC simulation, see this video created by the researchers of the APIC method: The Affine Particle-In-Cell Method.

Comparisons

Lets take a look at some comparisons!

Fountain Comparison

This comparison shows how APIC can generate smoother sheets of fluid compared to FLIP.

https://gfycat.com/illiteratesoupyjapanesebeetle

  • FLIP (left): FLIP is naturally chaotic and part of this causes fluid motion to ripple back and forth, resulting in dimples on the surface. This is what is preventing the smooth curved flow compared to APIC. These noisy sheets can make FLIP a good choice for large scale fountains where noisy behavior is more expected.
  • APIC (right): APIC improves on motion stability, leading to smoother thin sheets, even at low resolutions (res = 150). These smooth sheets make APIC a good choice for a small scale fountain.

Vortex Ring Comparison

This comparison is a cross section visualization the underwater movement of a vortex ring.

https://gfycat.com/grippingtightearthworm

  • FLIP (top): Due to the noise of FLIP and the dissipation of PIC that is mixed in, the vortex ring become disorganized in its rolling motion and rotational energy dissipates over time.
  • APIC (right): APIC is better at conserving the rotation in both direction and energy. Is able to maintain rolling vortex ring within the fluid for a longer amount of time compared to FLIP.

Stream Comparison

This comparison shows how the underwater motion of PIC, FLIP, and APIC affects motion of whitewater bubbles.

https://gfycat.com/shylittlecommabutterfly

  • PIC (Left): Rotational energy dissipates quite quickly, leading to low amounts of swirling motion. Dissipation results in the fluid looking a bit viscous.
  • FLIP (middle): FLIP is more energetic and able to capture more rotational detail compared to PIC. But due to FLIP being mixed with PIC, some energy ends up dissipating over time.
  • APIC (right): Very good at preserving rotational energy compared to PIC and FLIP. Able to capture smaller motion details and complex motion that expand into a larger area of the fluid. Due to the increased turbulence, this results in whitewater particles being generating in more areas of the fluid.

Note: APIC can be good for effects where underwater bubbles are the focus, but in our tests, we found that APIC is not as good as FLIP for generating foam particles on the fluid surface. The high amount of rotation of APIC tends to concentrate foam into thinner lines on the fluid surface. The more chaotic motion of FLIP seems to be better for breaking up foam.

Dam Break Comparison

This comparison displays the differences between PIC, FLIP, and APIC for a classic Dam Break setup (A block of fluid dropping on one side of the domain). This shows how APIC can be energetic like FLIP, while also taking less time to compute. FLIP and APIC require very similar amounts of computation, but due to the increased stability and reduced noise in the velocities of APIC, this can result in quicker baking times due to requiring fewer substeps.

https://gfycat.com/homelysmarthawaiianmonkseal

  • PIC (Left):
    • Energy of PIC dissipates quickly and doesn’t result in large splashes like FLIP and APIC.
    • Due to the dampened motion, whitewater particles are more clumped together and do not get spread out through the fluid as much as the others.
    • Due to the generally slower and stable velocities of PIC, this is the quickest to compute and required 1118 total timesteps to compute.
  • FLIP (middle):
    • FLIP is very energetic and creates large splashes. The slow motion section shows how FLIP creates more chaotic and noisy splashes compared to APIC.
    • Due to FLIP being naturally chaotic and less stable than PIC, this results in larger velocities and was the slowest to compute. Required 1427 total timesteps to compute.
  • APIC (right):
    • APIC preserves a similar energy as FLIP and also creates large splashes. The slow motion section shows how APIC creates more stable, but still energetic splashes compared to FLIP.
    • More turbulent detail of APIC results in more whitewater particles.
    • APIC motion creates more stable velocities and results in a quicker baking time. Required 1221 total timesteps to compute.

High Impact Comparison

This comparison shows how a high impact splash can differ between FLIP and APIC.

https://gfycat.com/sparseinferiorhoneyeater

  • FLIP (left): The chaotic and noisy nature of FLIP causes impacted fluid to spread out into a large number of droplets in a large area.
  • APIC (right): The more stable nature of APIC causes impacted fluid to spread out into more uniform and cohesive splashes compared to FLIP.

FLIP Fluids 1.0.9b

Our latest stable version, FLIP Fluids 1.0.9b, released last week! This new version can be found in your Blender Market account downloads.

Release Notes

  • FLIP Fluids version 1.0.9b adds many bug fixes, stability improvements, and by popular demand, a new solver feature using the APIC simulation method!
  • Added an APIC solver using the Affine Particle-In-Cell method.
    • The simulation method, FLIP or APIC, can be set in the FLIP Fluid Simulation panel or FLIP Fluid Advanced panel.
    • Choose FLIP for high energy, noisy, and chaotic simulations. Generally better for large scale simulations where noisy splashes are desirable.
    • Choose APIC for high vorticity, swirly, and stable simulations. Generally better for small scale simulations where reduced surface noise is desirable or for viscous simulations.
    • FLIP vs APIC documentation and comparisons
  • Added an Accuracy option to the viscosity solver to control the solver error tolerance.
    • Decrease to speed up baking at the cost of accuracy. Increase to improve accuracy at the cost of baking speed. High viscosity thick or stiff fluids benefit the most from increasing accuracy. Low viscosity thin fluids often work well at a lower accuracy. Setting above a value of 4 may have greatly diminishing returns on improvement.
    • The default value of 4 is the same amount of error tolerance used internally in previous versions.
  • Added an operator to the FLIP Fluid Helper sidebar menu to generate a Windows batch file (.bat) to command line render each frame of an animation one by one.
    • Operator will detect already rendered frames in the output directory and disregard these from the batch file.
    • Upon a render crash, the batch file will start up Blender again and begin rendering the next frame. In this way, you can minimize unrendered frames if your system is prone to render crashes.
    • Can be used outside of the FLIP Fluids addon to render a sequence of frames individually. There are some bugs in Blender which can cause an animation to be rendered incorrectly and a workaround to these issues is to render each frame one by one.
  • Added viewport visibility toggles to the fluid particle, force field, and obstacle debug tools.
  • Added a UI warning and tooltip if the Estimated Surface Tension Substeps info value exceeds the allowed Max Frame Substeps Value (Documentation).
  • Bug Fix: Fixed issue in Blender 2.91+ where rendering fluid meshes with motion blur enabled could result in longer Cycles render times.
    • Note: Motion Blur Rendering of fluid surfaces or whitewater particles is not currently supported (See: Motion Blur Support).
    • This fix will only apply to newly created scenes. To workaround this issue in an existing scene, select a fluid/whitewater object and disable the Object Properties > Motion Blur option (only applies if Cycles is the selected renderer).
  • Bug Fix: Fixed issue where low viscosity streams would have a velocity bias in the positive X/Y/Z direction (issue #455).
  • Bug Fix: Fixed an issue where many particles could become stuck to sharp obstacle edges which could lead to an unstable simulation (issue #508).
  • Bug Fix: Bug where using the inflow Constrain Inflow Velocity option could cause a bulge to form in the lower x/y/z corner of the domain.
  • Bug Fix: Fixed issue where disabling the whitewater feature and resuming a simulation would result in invalid whitewater cache files being generated in the cache directory.
  • Bug Fix: Issue where keyframing a min/max property could overwrite other min/max properties (issue #516).
  • Bug Fix: Issue where the bake operator status could hang on Calculating time remaining….
  • Bug Fix: UI issue where the Resume From Frame X label could be displayed in red text instead of the default white.
  • Bug Fix: UI issue where domain FLIP operator displayed the hide/show viewport/render icons in reverse order compared to regular Blender convention.
  • Bug Fix: UI issue where bake information would not be updated when using the Reset operator if the current cache directory did not exist.
  • Bug Fix: An error that would prevent a helpful error message from being displayed when loading the fluid engine library (Pull Request Here).
  • Bug Fix: Potential fix for render crashes when the Fluid Particle Debugging or Force Field Debugging tools are enabled (issue #521).
  • Bug Fix: Bug where using the FLIP Fluids Helper > Solid/Wireframe operator would deselect Fluid/Inflow/Outflow objects after execution.
  • Bug Fix: Removed deprecated cache operators (Copy/Move/Rename) from being searchable and executable in the F3 operator search menu.
  • Bug Fix: ValueError that could be triggered upon creating a domain if the .blend file was located on a different drive than the Blender installation.
  • Bug Fix: ‘TypeError’ that could be triggered in Blender 2.93 by pressing the F3 operator search key.
  • Bug Fix: Removed extraneous debugging code that would cause (harmless) error messages in Blender 2.79.
  • Bug Fix: Fixed error messages in Blender 2.79 due to difference in icon names in Blender 2.8+.
  • Example Scene Fix: Fixed volume_force_animated_character.blend example scene issue where the fluid objects would be emitted in the wrong direction. Corrected in the example scenes file as of March 25, 2021.
  • Changed: The FLIP Fluids Helper > Solid/Wireframe operators no longer change the render visibility of the objects. This functionality has been split into a separate row of Show/Hide Render operators that sets the render visibility of all selected objects.
  • Changed: Safety Factor (CFL Number) setting in the FLIP Fluid Advanced panel has moved from the Simulation Stability section to the Frame Substeps section. The Safety Factor option is more closely related to how the simulator calculates adaptive substeps.
  • Blender Support: Updated addon code to be compatible with Python 3.9 for future versions of Blender.
  • Blender Support: At the moment, there are no known compatibility issues between FLIP Fluids and Blender 2.93 Alpha. This may change as development of 2.93 progresses and bugs can be tracked in (issue #519).
  • Improved accuracy of viscosity solver setup.
  • Improved memory handling and storage of fluid particles and attributes.
  • Improved stability and performance.

What’s Coming Up Next?

We’ll be staring up our experimental builds again next week! Some exciting features related to Blender 2.93’s new geometry attributes are in the works and almost ready, but we’ll save that for another post.

12 Likes

Very nice read.
I look forward to an apic play. Pretty neat and out of Disney, too.
Love the swirls that will be capable.

I am greatly looking forward to seeing a white-water simulation in combination with a vorticity based shader. That is going to help so much to create more realistic white water.

We’ve been recently testing the Blender Market > Vortex Fluid Enhancement shaders, which add small bump map and foam details to the fluid surface based on the velocity output of the simulation. Very cool, and impressive what a shader can do!

1 Like

That is really impressive. its amazing what is made possible by allowing custom atributes in materials.
Personally. I hope to apply the vorticity to the colours of a volume principle shader.

Weekly Development Notes #55 – New Geometry Attribute Features

Covering the week of April 12th – 16th, 2021.

Thanks for checking out our 55th development update for the FLIP Fluids liquid simulation addon for Blender! Last week felt like such a productive week for code development. I was able to clean up and optimize some code to add proper attribute based shading feature implementations using Blender’s 2.93 new geometry attributes, and that is what I’ll cover in today’s post.

Incremental Resolution Test

We ran 560 simulations using the text sheeting + surface tension splash example scene, each time increasing resolution and grabbing the last frame. Here’s the result!

https://gfycat.com/selfassuredsoupyhydatidtapeworm

New Geometry Attribute Features

A few weeks ago we released a prototype build for velocity-based shading (read more in development notes #52). We heard, and saw from many of you that you are loving this type of feature so we have bumped this up in our development priorities. We now have a proper feature implementation for some new geometry attribute features in the latest experimental build.

These attribute features can be enabled in the FLIP Fluids Surface panel. After baking, the attributes can be accessed in a Cycles Attribute Node.

An important note is that due to a bug in Blender, these new attribute features will cause render crashes or incorrect renders. Until this is fixed, rendering from the command line will be required to prevent render crashes and ensure correct rendering when using these attribute features.

Velocity Attribute

We have added a feature to attach 3D velocity vectors to the fluid surface mesh. After baking, the velocity vectors (in m/s) can be accessed in a Cycles Attribute Node with the name flip_velocity from the Vector output. Here is an example shader set up:

This shader uses the Vector Math Length node to convert the directional velocity vector to a speed value. If the velocity direction is not needed in your shader, enabling the Speed Attribute would be a better choice.

Speed Attribute

If the velocity direction is not needed, enabling the speed attribute instead of velocity would be more optimized and uses 1/3rd the amount of cache storage compared to the 3D velocity vector data. After baking, the speed values (in m/s) can be accessed in a Cycles Attribute Node with the name flip_speed from the Fac output. Here is an example shader set up:

Here are two tests using speed based shading on our Volume Force Animated Character and Stair Step Ocean example scenes. The shader was adapted from Ducky 3D’s Procedural Lava Shader.

https://gfycat.com/recentkindamericanwarmblood

https://gfycat.com/classicinfinitehorsefly

Age Attribute

We have also added a feature to attach the fluid age to the liquid surface mesh. After baking, the age values (in seconds) can be accessed in a Cycles Attribute Node with the name flip_age from the Fac output. Here is an example shader set up:

An Attribute That Did Not Work Well

Last week we also experimented with adding an attribute to make it possible to support simulations with multiple material fluids. Sadly, this did not work as well as we had hoped and this feature will need more work to add a correct implementation. We added a Source ID attribute that can be set on each Fluid or Inflow object hoping that accessing this data in a shader could be used to differentiate between materials.

In this setup, there are three fluid objects each set to a Source ID value of 0, 1, and 2. The shader selects the material based on the attribute value. 0 is Red, 1 is Green, and 2 is Blue.

The problem with this method is that when different materials touch each other, there are jagged edges because the attribute data is aligned to the mesh vertices and interpolated inside of the faces. Even at high mesh resolutions, the jagged materials are still quite noticeable.

Another problem due to interpolated data is that two touching materials can result in the wrong ID attribute for part of the face. For example, when Red (ID 0) touches Blue (ID 2), the interpolated ID value averages in the middle to 1, which is why there is a green stripe in the render.

In this render test, the Source ID and Age attributes were used to color the liquid. Notice the jagged edges and flickering between the two liquid materials:

https://gfycat.com/wellinformedoldhypacrosaurus

We’re working on a better method in order to support multiple material liquids. Instead of outputting source ID values, we are going to try generating blend percentages for each source ID. Example: a vertex could contain data like 30% Material1, 10% Material2, and 60% Material3 and a shader would correctly mix the shaders in order to create a smooth blend between touching materials.

This feature is currently hidden from the UI until a better implementation is added, but if you would like to play around with the current state of the feature, this can be unhidden by checking the Enable Developer Tools option in the FLIP Fluids Preferences menu.

Experimental Version 9.0.9.19

Want to try out these new features? They can be tested in our Experimental Builds Package in the latest version!

Release Notes v9.0.9.19 (21-APR-2021)

  • This version is the first experimental build since the release of FLIP Fluids 1.0.9b (06-APR-2021).
  • Added geometry attribute features for the liquid surface mesh that can be enabled in the FLIP Fluid Surface panel.
    • Added a velocity attribute. After baking, the velocity vectors (in m/s) can be accessed in a Cycles Attribute Node with the name ‘flip_velocity’ from the Vector output. If the velocity direction is not needed, use Generate Speed Attributes instead.
    • Added a speed attribute. After baking, the speed (in m/s) can be accessed in a Cycles Attribute Node with the name ‘flip_speed’ from the Fac output.
    • Added an age attribute. After baking, the age (in seconds) can be accessed in a Cycles Attribute Node with the name ‘flip_age’ from the Fac output.
    • Only supported in Blender 2.93.
    • Only supported using the Cycles renderer. According to the Blender developers, EEVEE support will come at a later date.
    • Due to a bug in Blender, these new attribute features will cause render crashes or incorrect renders. Until this is fixed, rendering from the command line will be required to prevent render crashes when using these attribute features.
    • Compatibility with older .blend files: If you had tested our prototype build for velocity-based shading, you may need to fix your .blend file when using this version. To fix your file, delete all shape keys attached to the fluid_surface object.
9 Likes

Hi. I am doing a little experiment:

I have two doubts:
Is there any place where I can check different Viscosity attributes? I would like to have the fluid a bit more like paint than caramel…I believe it looks a bit thick. I would also like to not have those blobs you can see…it looks like if it was porridge and I am aiming to something more fluent…aka paint.
Thank you !

Hi, viscosity attributes or variable viscosity features are not supported at the moment (Limitations: Multiple Fluid Interaction). Only a single value of viscosity can be set.

If you would like to simulate a thinner liquid, this can be set in the domain FLIP Fluid World > Viscosity menu. Setting a lower value for the viscosity will result in a thinner liquid.

For a smoother liquid surface, the amount of smoothing can be increased on the fluid_surface Smooth modifier (located in the modifiers tab).

Adding some surface tension to the liquid can help with realism for a paint type liquid.

Hope this info helps!

1 Like

New #FLIPFluids video! We’ve gathered five of the most common issues that are faced when using our FLIP Fluids addon and show you how to solve them.

  • Reducing Volume Loss
  • Reducing Mesh Flickering
  • How to find the FLIP Fluids Helper menu
  • Why is my inflow not generating liquid?
  • How to turn an Inflow object on and off

If you are looking for sound effects and music for your video productions- here is a special link for you! Visit Audiio to start for free now and use discount code "EARLYADOPTER " to get %20 off out of the new annual music/SFX plan called Audiio Pro!

2 Likes

Weekly Development Notes #56 – Solving Issues Video, Blender 3.0, And Cycles-X Testing

Covering the week of April 19th – 30th, 2021.

Thanks for taking a look at our 56th development update for the FLIP Fluids liquid simulation addon for Blender! There was not an update last week as I was mostly away from development during Monday – Wednesday. The last two weeks of development mainly involved catching up on fixing reported bugs. We also released a new video and had a chance to test Blender 3.0 Alpha!

New Video: Solving Common Issues

(The video is linked in the post above this one!)

Dennis and I gathered common issues that are faced when using our FLIP Fluids addon. These are the most frequent issues that come up during help requests, and in this video Dennis helps explain and solve the issues as well as add some helpful tips (I even learned a few things about Blender from the video!).

Blender 3.0 Alpha and Cycles-X Compatibility

We usually don’t start testing new Blender versions this early (Blender 2.93 still has 3 weeks until release!), but we’ve heard from some of you that you’re real excited about the new Cycles-X branch. As a celebration for the 10th anniversary of the Cycles renderer, the Blender developers are adding some nice optimizations and preparing Cycles for the future. You can read more about Cycles-X here and can download the branch here.

We had a chance to start testing Blender 3.0 as well as the Cycles-X branch this week. At the moment, there are no known issues when using these versions of Blender with the FLIP Fluids addon version 1.0.9b or the latest experimental version. You may encounter some error messages in the system console when FLIP Fluids 1.0.9b, but these will be harmless and are not displayed in the Blender UI.

Compatibility may break and issues may arise as development of Blender 3.0 continues. Issues can be reported and tracked in this GitHub thread.

Performance Testing

During some brief testing on a high geometry simulation, Cycles-X definitely decreases render time. In this test on a GTX 1070, Blender 2.93 Beta and Blender 3.0 Alpha performed nearly the same at 1m30s. Cycles X reduced the render time down to 1m06s, but also used more memory. We’ll need to do more testing on larger scenes to see how the memory usage scales.

We’ll also need to test how Cycles-X performs with a large amount of instancing which is used to render whitewater particles.

Experimental Version 9.0.9.20

Want to try out the latest fixes and improvements? They can be tested in our Experimental Builds Package in the latest version!

Release Notes v9.0.9.20 (05-MAY-2021)

  • This version mostly adds fixes for reported issues.
  • Blender 3.0 Compatibility: Blender 3.0 is in early development and is set to release on August 25, 2021. At the moment, there are no known issues when using Blender 3.0 with the FLIP Fluids addon version 1.0.9b or the latest experimental version. The Blender 3.0 Cycles-X branch also seems to work after some brief testing.
    • Issues related to Blender 3.0 compatibility can be reported and tracked in this thread: issue #535
  • Added ‘Remove Mesh Near Domain’ feature support for the preview mesh.
  • Added an option to the FLIP Fluids Preferences menu to hide the experimental build warning displayed in the physics panel.
  • Bug Fix: Simulation will no longer stop if a frame statistics temporary file is found to be in use and unable to be deleted (issue #529).
  • Bug Fix: Issue where surface and whitewater materials would be removed when changing between scenes.
    • This involved many changes for how the addon sets up the viewport and render. Please let us know about any odd behavior in how the simulation is displayed.
  • Bug Fix: Issue where command line operators may not work if spaces are contained in the Blender executable path, specifically when located in C:/Program Files/.
  • Bug Fix: Fixed inconsistent UI issues (issue #533).
  • Bug Fix: Issue where non-mesh type objects could be selected as a custom whitewater particle object, leading to an error.
  • Bug Fix: Re-fixed preview rectangle artifacts issue that was introduced as a side effect by another bug fix (issue #491).
  • Bug Fix: Issue where the whitewater display percentage setting loaded an incorrect amount of whitewater after resuming a simulation. Notes:
    • This was caused by the addon saving incorrect information to the savestates cache.
    • Simulations will need to be re-baked for this fix to take effect.
  • Bug Fix: Issues where (harmless) error messages could be displayed when using Blender 3.0.
  • Known Issue: The Age and Source ID attributes are not yet supported when using the particle sheeting feature. A fix is in progress!
3 Likes

I’ve been monitoring this thread and saw this comment and the white water wake comments above it, so here’s one more request for streamlining workflows around that scenario. We’re using PhoenixFD at work, but I’m keeping an eye out for alternatives as I’m personally not very fond of Max.

@RLGUY , hello.

I have a question:
Is it possible with the flip fluids addon to create a fluid with 100 million particles and 1 billion voxels?
Create a simulation like this:

This simulation was created with houdini flip solver.
How long would it take to bake a similar simulation (on your computer)?
Can this be done within a reasonable time frame?
Judging by the information from this video (at 1:02 am), 124 frames were baked for 9 hours 2 minutes:
https://vimeo.com/465308081

I found this video, with a simulation of a flip fluids addon:

The description states that the simulation took 3500 hours.
Why is houdini so much faster?
Does it depend on more cunning and faster algorithms?
Or does houdini make simplifications?
Is it possible to optimize the flip fluids addon to simulate 100 million particles at 1000x1000x1000 resolution?
Or is the existing algorithm already optimized as much as possible?
Huge simulations now take an inordinate amount of time.

Hello! It’s possible to create simulations with 100+ million fluid particles and it is not that uncommon to see when artists share their files with us, but they do take a long time to simulate. Typically a few days of baking. I am not sure what caused the simulation linked to take so long (3500 hours is 146 days!).

However, at the moment, a 1 billion voxel simulation wouldn’t be possible in the addon due to memory constraints. Many of the calculations we are running are performed on a dense grid where all memory is reserved, even empty space. We’re slowly moving towards a more sparse memory representation where empty space can be ignored, but this will take a lot of time.

Our simulator is far from being as optimized as Houdini FLIP. Houdini has the benefit of being in development for much longer, with a larger team, with more brilliant minds, and with a lot more resources. We’re a small team with a single programmer and were still quite new to this with only a few years of development experience in simulation. It will take a lot of time and effort to develop software to be comparable to Houdini.

There are also limitations of the Blender software, which just cannot handle huge amounts of geometry data efficiently and with stability. Loading the data of massive simulations require a huge amount of memory as well as time to set up in the scene. For example, there is a limit of around 16 million whitewater particles that can be rendered on the CPU (about 8 million on GPU) before memory runs out on a typical system whereas other software can render and handle 100+ million whitewater particles with much less memory and much less render time.

3 Likes

This makes me curious on your take on the pointcloud rendering that if i recal correctly is comming up in blender 3.0? Is it going to be a great edition for rendering white water or do you think it will be relativly the same?

Hoping it will be helpful to improve our whitewater feature! I haven’t had a chance to look very far into this yet, do you have any links with more information about the feature?

I first found it in this thread:

And this was posted in there as well:https://developer.blender.org/D9887

And here it was mentioned it will be for blender 3.0:

1 Like

Thanks! These two notes on D9887 have me quite excited for this feature:

This add support for rendering of the point cloud object in Blender, as a native
geometry type in Cycles that is more memory and time efficient than instancing
sphere meshes
.

For CPU rendering the Embree primitive is used, for GPU there is our own
intersection code. Motion blur is suppored.

deffently. Personally I have multiple simulations backed with 100 million white water particles. but memory is indeed the biggest pain to getting them rendered. I hope it will reduce memory used per particle so it will scale with higher numbers. Motion blur is going to be really usefull to smooth out the white water. So I am certainly hyped for this feture. And with cycles-x on the horizon it might actually become reasonable for me to render some small animations :slight_smile:

1 Like

Hi Flip Fluid team, I’ve been trying your addon and I feel extremely satisfied :smiley:
And I have some question :smiley:

  1. How can I increase the influence of an obstacle to the fluid. Like this video you did, the torus moves slowly but it does a lot of splash
    FLIP Fluids in the real world [example / breakdown] - YouTube
  2. Is it possible to limit the simulation range in a small domain? I mean I don’t want the waves, the white water collide the edge of the domain
    Thanks a lot and have a good day!

Hi! For #1, setting an appropriate simulation scale and animating the obstacle to a realistic speed will help with realistic liquid motion. Documentation on world scale can be found here: https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Domain-World-Settings#world-size

For example, an object rotating in a bathtub sized body of water will have small splashes. If the physics size is scaled up to the size of a lake, then there would be much larger splashes with the same obstacle animation.

For #2, a technique if adding outflows and inflows to the edge of the domain can be used. Placing outflows above the water level will remove liquid that splashes against the edge of the domain. Placing inflows under the water level will add more fluid if the water level ends up dropping. Depending on the situation, the inflows may not be necessary.

Here is a diagram to help show what I mean:

Hope this info helps!

3 Likes