featured_43895

Bifrost vs Hybrido: Which fluid simulator should I choose?

‌‌
So you’re venturing into the dynamic world of…well, dynamics. For many, RealFlow is been considered to be the industry standard for dynamics simulations. With the recent integration of tools like Bifrost into Maya, it’s natural to wonder if you should just stay inside of Maya for all of your large-scale fluid dynamics needs. After all, they’re both incredibly powerful FLIP solvers, so is there a difference? Let’s break down some of the key things to think about when considering Maya's Bifrost or RealFlow's Hybrido for your large-scale fluid simulations.

Ease of use

Before After

Use the slider in the image to see an example of Bifrost and Hybrido.

If you use the slider in the image above, you’ll see an example of a similar scene with Hybrido in RealFlow and Bifrost in Maya. Notice how two of the cubes in RealFlow are hidden, allowing you to see the particles easier. The reason I point this out is because the first thing to think about when comparing Hybrido and Bifrost is their host applications.

While Maya’s extensibility is great and can allow you to do just about anything, a lot of the things you’d need for a dynamics workflow are already built into RealFlow. For example, some things like the fact that you can natively tell RealFlow to display wireframe for specific objects whereas Maya requires a third-party script for the same functionality are things to keep in mind.

Both Hybrido and Bifrost use a similar concept of emitting particles from a poly mesh. However, the team at Next Limit has made creating a Hybrido particles, specifically with a closed domain, as simple as clicking a single button to create the five nodes necessary to get started. Not that creating liquid is particularly hard in Bifrost, but it’s nice to minimize the number of clicks whenever possible.

One example of an ease of use difference is how you can get Bifrost and Hybrido particles to interact with each other. In Bifrost, some fields like gravity are built-in, and you don’t need to do anything extra to get them applied to your particles. However, you’ll need to add extra nodes for something like a collider or killplane (similar to RealFlow’s kill daemons).

On the other hand, with RealFlow’s Relationship Editor, when you connect nodes together RealFlow automatically figures out what the connection needs to be. If it’s an object connected to your Hybrido domain, it means the particles and mesh will collide. If it’s a daemon connected to your Hybrido domain, it means the particles will be affected by the daemon’s force. This workflow is nice because it’s a consistent workflow that, once you get used to it, becomes one less thing to remember.

It’s worth pointing out that for this particular example, you need to add a Gravity daemon in RealFlow and connect it manually to your Hybrido domain to get your particles to be affected by it. In Bifrost, all of that is set up in the Bifrost node automatically.

On one hand, it’s nice to have this set up automatically. On the other hand, it can cause a bit of a clunky workflow when you need to control which specific particles are affected by different gravity fields. Not something to worry about for every project, but worth pointing out.

The overall ease of use is, in my opinion, one of the big drawbacks to Bifrost when comparing it to something like Hybrido. While Bifrost itself is easy to use, its workflow is different from the workflow of nParticles or Maya Fluids. That is, it still feels like it’s from another piece of technology; which, of course, it is.

RealFlow, on the other hand, has the benefit of being built from the ground up to play alongside its other features, and, as a result, you get a more consistent workflow throughout. Connecting your colliders to Hybrido is going to be the same as connecting them to SPH particles as connecting them to RBDs, and so on.

Simulating

By default, RealFlow caches everything to your disk. Bifrost can easily save your cache, but by default it caches to a scratch.

By default, RealFlow caches everything to your disk. Bifrost can easily save your cache, but by default it caches to a scratch.

A huge part of any dynamics simulation is in the simulating itself. You’re bound to find yourself doing a lot of simulating as you try to figure out the correct parameters for your final sim. Fortunately, simulating is very easy to do in both Bifrost and RealFlow.

When you hit play on your timeline in Maya with a Bifrost liquid in your scene, Maya will automatically start solving the simulation. In RealFlow, simply hitting “a” on the keyboard or the Simulate button will start your sim.

There’s a fundamental difference in how these two programs simulate, though, that might affect your decision. In RealFlow, whenever you simulate RealFlow will automatically export anything in your scene to your disk under your RealFlow project. This means when you open up your project again, you’ll be able to pick up and keep moving without having to resimulate.

In Bifrost, on the other hand, it doesn’t cache to your project by default. Instead, it caches to a scratch location, which means if you close your Bifrost project and open it back up again you’ll need to resimulate. That is unless you’ve gone to Bifrost > Compute and Cache to Disk to tell Bifrost specifically to cache to your disk.

Another huge advantage for Hybrido is its ability to simulate using your GPU whereas Bifrost is currently CPU-only. Again, not something everyone needs but worth pointing out for those that do.

Secondary particles

Until Maya 2016, Bifrost didn’t have any secondary particles. Now, there’s one form of secondary particles: Foam. All you need to do is select your Bifrost node and go to Bifrost > Add > Foam. Check out Autodesk’s video above to learn more about Bifrost’s foam in Maya 2016.

If you’re using RealFlow, you’ll find Hybrido can add secondary particles like foam, splash and bubbles. While you only have foam in Bifrost, what’s cool about the foam in Bifrost is it’s more than just foam. How your foam particles behave depends on how your simulation is set up.

For example, if your foam particles are beneath the surface they’ll act like bubbles. Unfortunately, all of the attributes for Bifrost’s foam are sort of dumped into a couple nodes so you’ll probably find yourself referencing the help documentation quite a bit to figure out what each attribute does.

Adding secondary particles in RealFlow is also easy to do using a workflow that’s consistent with just about anything else in RealFlow. All you need to do is create the secondary node and connect it to the Hybrido domain in the Relationship Editor. From there, as we talked about before, RealFlow figures out what the connection needs to be.

Since RealFlow has different nodes for different types of secondary particles, you can also have those particles be affected by daemons independently of each other. For example, if you want to kill your foam particles you can add a kVolume daemon and connect it to your Hybrido foam node in the Relationship Editor to kill anything outside of the volume’s bounding box.

To do something similar in Bifrost, you’ll have to create the mesh you want to be your kill volume and add it under the Kill Volume rollout in Bifrost’s liquid container.

Final verdict

As with any software, whether or not you need something depends on your projects. One advantage Bifrost has over RealFlow is the cost. Since RealFlow isn’t intended to be an all-in-one 3D application, the chances are good you’ll already have Maya in your pipeline somewhere. So the question of whether or not you use Bifrost or Hybrido boils down to a cost/benefit for the license to RealFlow.

If you’re doing some light fluid simulations and you’ve already got Maya for its many other uses, Hybrido alone may not be enough to warrant the cost of a RealFlow license. Bifrost has a lot of tools that can give you some great results.

That said, if you’re serious about dynamics the cost of RealFlow becomes negligible, and I’d recommend using Hybrido over Bifrost right now.

As of this writing, Maya 2016 is the most current version, and Bifrost’s integration is still far from complete. For example, there are no initial states, and since rigid bodies aren’t affected by Bifrost particles you’ll have to fake object dynamics with your fluids for now.

Lastly, it’s worth pointing out that Bifrost’s implementation in Maya is relatively new. Bifrost was first integrated in Maya 2015 and already in Maya 2016 there have been some significant updates. Naiad had a lot of features that still aren’t in Bifrost, so I would expect subsequent versions to add even more updates to Bifrost.

Are you using Bifrost or Hybrido? What are your thoughts?