Nodes - Hybrido Fluids (HyFLIP)

RealFlow's grid fluid solver, also called "Hybrido" (hybrid large dimension liquid solver), is a sophisticated method of simulating medium and large-scale fluids. This technology also includes the automatic creation of secondary splash and foam particles, as well as mist. With Hybrido it is possible to simulate everything from floods to ocean scenes – scenes that are hard to create with RealFlow’s traditional particle emitters. RealFlow’s standard emitters are perfectly suited for highly detailed fluid simulations with tiny splashes and turbulent surfaces. But, it has always been difficult to fill large areas and volumes with fluids and add secondary effects such as spray. With Hybrido, fluid artists are able to simulate impressive shots, like oceans with breaking waves, huge floods, turbulent coasts with cliffs and rocks, or ships travelling through turbulent water during a heavy storm. RealFlow calculates the conditions for splash, foam and mist formation, and automatically creates and controls these elements. Due to the large amount of particles, all secondary elements are normally simulated as a post process in a network. With this advanced feature you can achieve absolutely realistic results, utilizing the full power of your network machines.


The Hybrido “HyFLIP” System

Although the Hybrido solvers in previous RealFlow version have already been based on cutting-edge technology, we improved our grid fluid solution further and are proud to present Hybrido for RealFlow 2014! Hybrido is a fluid solver based on the so-called “FLIP” concept. ”FLIP” stands for “Fluid Implicit Particles” and describes the technology behind this approach. In FLIP solvers, the particles carry the velocity information. The particle-grid approach is very fast, because it requires only a very small number of time steps per frame, while other solvers have to use more substeps to make the fluid stable. Increased simulation speed is just one positive side-effect. Since FLIP solvers are faster it is also possible to run simulations with drastically increased particle counts. With Hybrido you can work with 20 million, 50 million or even more particles within a reasonable time frame. All this results in a higher level of detail and allows you to simulate very fine surface structures and turbulent fluid-object interactions. This state-of-the art technology is combined with Hybrido's easy-to-use workflow. Therefore we have named the combination of our own technology and the traditional concept “HyFLIP”.

Hybrido does not use a fixed domain and the node can be placed anywhere in the scene. When you add a grid fluid domain to your scene you will see a plane with small cubes at its corners representing the smallest cell size. The square indicates the domain's projection plane and shows you how the displacement will be mapped on the fluid, for example. Another field of application is the “Open boundaries” option of the “Hybrido Mesh”. With this mode it is possible to cut away unwanted or unnecessary parts of the mesh according to the plane's position in space. When you start the simulation you will see an adaptive domain around the grid fluid particles that moves with the fluid. The domain’s boundary and grid size is only visible during simulation.

Hybrido is fast, can handle ultra-large amounts of particles and produces incredibly detailed fluids. At the same time it is resource-friendly and easy to use. We have also drastically accelerated the creation of splashes and foam. To put it simply: You will love it!

Happy simulating with RealFlow's Hybrido!

Domains and Grids

Briefly, a domain is a place where your large-scale fluid simulation happens, and this space is subdivided into a grid of cells with exactly the same length. In grid solvers, the fluid's behaviour and motion is calculated from the interactions between neighbouring cells. With Hybrido 2, the fluid's domain is invisible as long as the simulation has not started, because Hybrido adapts the domain to the fluid's current volume. The great advantage of an adaptive grid is that the fluid can move freely and there are no boundaries that enclose the fluid and create reflections. In relation to the particle cloud, the surrounding domain often looks too big and it seems as if it could be easily scaled down. Unfortunately, this is not possible, because the padding is necessary for the Hybrido solver to work correctly.

By default, the size of a single cell is 0.3 units in each spatial direction – if you work in real world scales, this value equals 0.3 m or 30 cm. Smaller values create more cells per unit and increase the resolution, while higher settings are mainly used for previews. The resolution is also responsible for simulation speed. With very small settings, the solver has to take more cells into account and requires more time. A grid’s resolution is different from the traditional understanding of the term resolution that is used with standard emitters. In the second case, resolution is directly connected to the number of particles, whereas in grid domains, the amount of particles is only indirectly determined by resolution. Therefore it is necessary to differentiate between “grid resolution” and “particle resolution”. The higher the number of cells, the better and more accurate the final simulation will be.

During a simulation, RealFlow fills the appropriate cells with particles. These particles are not only meant to visualize the fluid's motion and velocity, but they are, for example, needed to extract the surface fields and finally create a mesh. For this purpose, Hybrido places a defined number of particles into each cell. This value can be changed by the user to achieve a smoother surface or produce a higher amount of splash particles. A higher number of particles also effects the fluid characteristics as well.

With splashes, foam and mist, domains play an important role as well – especially in conjunction with IDOCs (Independent Domains of Computation). IDOCs are used to subdivide a simulation into several domains. Each IDOC is connected with at least one emitter and represents a simulation space where the particles are created. In this case, the particles from the various IDOCs cannot interact with each other, but you will definitely not notice that. The advantage of this workflow is that it is possible to distribute the IDOCs over a network and simulate them separately, but please bear in mind that this concept is only valid for the secondary effects which are considered standard particles. The simulation of the grid fluid, also called “core fluid”, cannot be distributed over a network.

Whether you use secondary emitters with IDOCs or not, the particles are able to leave their “home domain” and mix with the fluid from the surrounding domains and particle sources. This normally makes it necessary to either enclose the particles, for example with a cube object, or delete them with a “k Volume” daemon. Mist, on the other hand, is a special case, because its creation is always limited to the domain borders.

Basic Elements of a Hybrido Simulation

When you work with Hybrido grid fluids, you always need a specific setup. The first node is a grid fluid domain to subdivide the simulation space into equal cells. The domain can be seen as an environment where the fluid simulation actually takes place. At the moment, the domain is nothing but an empty space and when you hit “Simulate” nothing happens, because so far you have not told Hybrido where it should create the fluid (particles). For this purpose, two elements are required: the first one is an object to define the volume that will hold the fluid and the other node is an emitter. An arrow at the node's viewport symbol indicates the direction of emission. When you rotate the emitter you can change this direction. The fluid container node should be detached from the others in the scene, because it should not contribute to the simulation. If you forgot to do this, RealFlow will not take it into consideration anyway, but you will receive a warning message.

At this stage, a simulation creates a fluid volume within the emitter object, but without motion. To make the fluid move, a force is required. In most cases, this force will be introduced with the “Gravity” daemon, but it can be any other force-based daemon as well, for example “Wind”, “Noise field” or the “Vortex” daemon. Now, the scene is already complete and you can proceed with the settings.

In further steps you create the secondary effects: splashes, foam and mist from the already cached core fluid simulation.

Be Faster with GPUs

Another step forward is Hybrido’s GPU-simulation capability. Fluid simulations are normally very difficult to transfer to the GPU, because they often require a large amount of RAM (GPU simulations already require more RAM by default) and users can change the fluid’s properties via Python scripting, graphs or C++ plugins. Despite of all these challenges we have found very efficient solutions to transport Hybrido simulations to the GPU and let the user benefit from speed boosts on high-end graphic cards. Even multiple GPUs are supported. Please bear in mind that some graphic boards do not work with Hybrido, although RealFlow's "System Information" indicates that the GPU can be used.