Scaling with Bifrost
Bifrost is a portable visual programming environment that runs in Maya as a plugin – allowing you to create state of the art simulations, procedural effects, and generally use visual programming to build new tools and workflows in Maya. However, it is not just a Maya plugin.
Being a portable visual programming environment, it can also be used in a variety of other contexts. In addition to Maya (including Maya batch and MayaPy command-line contexts), there’s also the Bifrost Arnold procedural which allows you to run Bifrost in standalone Arnold, and the Bifrost command-line tool, also known as bifcmd, which makes it possible to run Bifrost graphs standalone from the command line.
What is Bifrost Engine?
Bifrost Engine is simply the licensing term we use to refer to the number of instances of Bifrost you can run outside of Maya using the Bifrost command-line tool, bifcmd.
We’ve included a generous allotment of Bifrost instances with Maya and the Media & Entertainment Collection. A standalone license of Maya includes 3, and the collection includes 15. This ensures that regardless of the task you throw at Bifrost, you’ll have enough.
Bifrost use cases are extremely open-ended. It can be used in any part of the production process such as character rigs, render-time procedurals, scattering and instancing setups, simulation and more – and all of it in Maya, at render time, or on the command-line.
Since you have either 3 or 15 Bifrost instances per license, this is enough for each user of the most basic package to use Bifrost in Maya, do a standalone Arnold render (if Arnold licenses are available), and run a simulation from the command-line using the Bifrost command-line tool simultaneously. In short, we don’t want you to be limited by the number of Bifrost instances you have.
What is the Bifrost command-line tool (bifcmd)?
The Bifrost command-line tool is intended to run simulations, process geometry, or any other non-interactive graph - outside of Maya. This is a simple tool that loads a Bifrost compound and executes it a number of frames - or without any sense of time at all. Using this tool requires some degree of familiarity and comfort with the command-line.
The expected use case is that you can tailor your FX simulations however you like in the Bifrost graph, make it self-contained (non-reliant on inputs from the Maya scene by, for example caching the live Maya inputs as Alembics and reading them in as Alembic caches in the graph), export it as a graph, and then run it from the command-line. In this way, you can run multiple simulations concurrently with different settings, a technique known as wedging.
At animation studios, the Bifrost command-line tool can be used to run simulations on render farms, as seen in the Vision Series at SIGGRAPH. Since your allotment of Bifrost instances that can be run outside of Maya is very unlikely to be in scarce supply in such a context, the limiting factor is more likely to be the availability of computing resources on the render farm. If these are available, a single artist can iterate very quickly on many shots with such a setup.
Bifrost command-line tool is not limited to simulations, although that is the use case it was developed for.
Visit our documentation site for more details on how the Bifrost command-line tool works.
What can I do with Bifrost today?
Use Bifrost in Maya interactive sessions for effects, simulation, lighting, animation, or any other task Maya is used for.
Use Bifrost in Maya batch or MayaPy for tasks such as rendering or caching animation.
Use the render-time procedural in Arnold standalone, Maya interactive sessions, Maya batch, or MayaPy.
Use bifcmd to run Bifrost on the command-line.
Currently, you cannot run distributed simulations – where the same simulation computation is split between multiple computers – using Bifrost. Distributing simulations is something we are considering for the future. What is currently possible with the Bifrost command-line tool is running multiple simulations concurrently, which enables you to work on multiple shots at the same time, or create multiple variations of the same shot to choose from at the same time.
For speeding up simulations in other ways, check out this forum post: How can I reduce simulation times – without support for distributed sims?