Behind the scenes of the studio’s dynamics solver.
SIGGRAPH 2020 is fully virtual this year, but that doesn’t mean that there’s any shortage of computer graphics content to check out. One area I always concentrate on at SIGGRAPH is the Talks. These tend to feature, amongst other things, VFX, animation and game studio presentations on very specific aspects of production, such as new tools that were built or new R&D techniques that were developed on recent projects.
One Talk coming up at the virtual SIGGRAPH 2020 event – which starts August 17th – is from Framestore on its dynamics solver Fibre. This is a tool that the studio used to help realize its fur, hair and feature simulation. You will have seen the results in projects like Pokémon: Detective Pikachu, Lady and the Tramp, Timmy Failure: Mistakes Were Made and His Dark Materials.
The Talk is being conducted by Manne Öhrström, Framestore’s global head of film software and Alex Rothwell, Framestore’s lead R&D technical director. I got a chance to score a preview of Fibre from Rothwell.
What is Fibre?
The first thing to note about Fibre is that it is not a hair or fur system but rather a dynamics solver. It is the software that makes hair and fur move realistically when it needs to interact with things such as water, wind, clothes and other characters.
Previously, Framestore’s Creature FX (CFX) department had used a variety of solvers to achieve hair, fur and feather dynamics. “Each solver had its strengths and weaknesses and it would be a matter of pairing the task at hand to the correct solver,” outlines Rothwell. “For example, one solver would suit the simulation of short fur and another would be best suited to long flowing strands. Feathers would be solved as cloth on one show and as deforming geometry on another.”
Rothwell says this previous system worked very well for projects of a certain size, but as shows have gotten bigger, both in terms of shot counts and complexity, the ‘hands-on approach’ did not scale well. “We found that our CFX artists were spending an increasing amount of time on peripheral logistical tasks rather than leveraging their artistic skill sets,” Rothwell notes. “We also found that they had to spend a lot of time finalling simulations to remove artifacts, a process which would have to be repeated every time something got updated.”
“Changes to animation happen all the time, and we desperately needed a solution which was more robust, where an update could flow automatically through the entire simulation pipeline with minimal need for manual intervention or touch-ups.”
In addition to relieving creature artists from the burden of having to manually repeat things, Framestore also wanted to provide them with a single set of powerful tools to focus as much of their time on the artistic process.
“We realized that investing in a single solution would allow us to build a great pipeline around it with supporting documentation, training materials and a strong integration into our proprietary fur system,” continues Rothwell. “In order to operate at scale, our solver also needed to be pipelined in a way that we could operate on a show/sequence/shot or per-creature level easily, with interaction between a wide variety of objects, including, fluids, fields, geometry, and cloth.”
How Fibre works
Since Framestore already did have a fur/hair/feather solution, Fibre did not need to be a complete re-invention of the process. It was, as noted, a consolidation and set of incremental improvements. Rothwell describes Fibre as a “single, coherent simulation platform at Framestore. Feature-wise, the major required addition was to include efficient inter-element interactions, allowing for setups with 100k+ hairs colliding with each other.”
The solver algorithm uses a physically based dynamics approach and is facilitated by the intra hair constraints implemented using Cosserat-type rods. Pre-processing was essentially eliminated, also, through the utilization of an optimized collision engine.
“Furthermore,” says Rothwell, “a lot of work has gone into performant data management within Fibre. Processing large hair/element counts across multiple threads without throughput bottlenecks was a key design objective. Internally Fibre divides data into bundles, with a bundle being a group of elements to be processed on a single thread. The bundles are created to minimize the number of intra bundle dependencies, thus reducing the amount of thread syncing that needs to happen.”
“These thread synchronisations are then further optimized so that there aren’t single inter stage sync barriers, but essentially a dependency graph that rebuilds itself every sub frame step. This allows for maximum core utilization.”
Rothwell mentions that with Fibre, Framestore has been able to reduce manual post-simulation fixing by 80%, and has reduced the simulation time for fur and feathers by up to 50% and 80%, respectively.
To do that, the studio has Fibre within its Maya CFX pipeline, which automatically brings in characters, grooms, geometry and Fibre setups for each shot. “The Maya Fibre GUI,” describes Rothwell, “allows artists to manually assign materials to each section of the groom, or have them automatically assigned and mixed using a rule based system. Physical properties can be assigned on a per hair vertex basis. You can, for example, create a rule that assigns a customised ‘wet’ set of properties to a vertex whenever it falls below a certain water surface plane or within a predefined distance of a VDB volume.”
“Once configured, Fibre simulations can be launched automatically when upstream animation or grooming changes are published, thus beyond initial setup an artist may only need to revisit a shot when specific artistic direction is needed.”
Ultimately, says Rothwell, Fibre was designed as “a unified system where iteration speed, simulation fidelity, stability and good predictable results were centre stage, allowing us to quickly get an initial set up going, and from there rapidly iterate our way towards the exact look.”
You’ll be able to hear directly from Framestore about how Fibre works during their SIGGRAPH 2020 Talk scheduled on August 26th.