EOS is a final graduation project made by the Netherlands Film Academy VFX class of 2022. It shows the story of a rebellious girl in a world where showing one's true face is forbidden.
When a young rebel is out to take down the Mask-tyranny that’s been ruling for years in her city, a mystical spirit shows her that destruction is not the way to free yourself…
EOS is one of the final graduation productions made by the Netherlands Film Academy VFX class of 2022. Hosted as a larger scale project to generate challenge, this production allowed the VFX department to delve into their craft. Additional help was given by the NFA VFX class of 2023, who supported the project as artists for about a month.
For this project there were only a few shooting days. So, the VFX team came prepared to make sure all the available time was used efficiently. One of the things that helped with this, was making a previsualization of the whole film based on the shot list of the DoP.
The power of collaboration
From the very beginning of this project, the VFX class worked closely with the Production Design department. This was necessary to establish a strong visual engine for the rest of the crew. Weeks were spent putting together a “visual bible” that contained all information about the world that would be created for EOS.
Next to that, there was constant collaboration between VFX and PD considering the merging of real and digital sets. A lot of preparations were made to ensure a seamless transition from what was built in real life, and what would be built by the VFX team.
3D scans of set pieces were used to recreate their unique design digitally. Scans of two actors were transformed into the basis of a crowd simulation. In the end the FX team created a simulation that held 491 agents. As there were no resources to gather enough extras on set, this was a great way of using VFX to make the impossible possible. You can find more information about the sim later in this post!
High quality matchmoves were needed to integrate CG into the plates that were shot. The match mover of the team worked really hard to accomplish this. Next to match moves, he provided the CG and compositing teams with digital lenses that perfectly matched the real ones used on set. With just one drag-and-drop move, CG and compositing artists could add the right lens with the correct distortion, overscan and pixel aspect ratio to their scenes.
A challenging workload called for a suitable pipeline. Ideas were gathered by the class’ TD student, while contemplating what might be essential workflows to know for soon-to-be junior artists. The team decided on a Houdini - Solaris workflow that also integrated USD’s as an essential way to transfer files.
This was very useful considering the structure of the team. Both specialization-based and environment-based departments were made within the whole VFX team. For example: there was an FX-department that was responsible for (among other things) all cloth simulations. There also was a department of artists called “Team Cave”, whose focus was entirely on creating the cave environment. This way of dividing the team allowed for quick communication and clear updates on a small scale. Team Leads and Coordinators would then communicate to piece together an overview of all artists and tasks. As this was a school project, those in lead positions tried to create space for their peers to learn as much as they could. The Coordinators used Shotgrid to track all assets and shots throughout the whole project. Using the data from SG allowed them to keep an eye out for artists that were struggling, and support them to complete their tasks.
For EOS it was necessary to show a world that was alive. Getting hundreds of extras to act on set was impossible, therefore the team decided to fill up the world with CG crowds. A complex simulation was built by the FX lead, who received help from FX artists with the cloth simulations.
The FX team tested all cloth sims heavily to make sure they’d work on the animations used in the crowd sim. Here’s a stress test:
Most of the animations used on the agents are motion capture animations made by the team. In total, over 100 unique animation clips were recorded. It was a lot of fun running around.
Briefly explained, the agents of the crowd sim had a few pending animation tracks that would activate after specific amounts of time. Here is what this looked like: (added color to make it easier to differentiate between animation clips)
There was a separate group of agents that formed the rebels running through the city. They used a custom made map to navigate where they could go.
Various characters needed animation in EOS. Of course there were the motion capture animations used for the crowd simulation, but traditional keyframe animation was also used.
One of the important characters is a butterfly, for which a groom and special illuminating shading were made. A lot of iterations were made to get the motion just right.
Next, the arm of Eos was recreated digitally for the shot where cracks appear in her suit. The animators worked really hard to make the movement as realistic as possible.
The following are breakdowns from some shots that especially stand out in EOS.
As the opening of EOS, this is one of the most important establishing shots. The layout and set dressing were quite the challenge as the camera moves through a lot of space.
Optimization was absolutely necessary to render this shot, as it holds tons of assets and includes a crowd simulation.
Lighting played a very important role in this shot. To allow for quick lighting iterations, the lighting and compositing departments created a workflow that didn't require heavy CG renders for each version. Instead, the general position and speed of the lights was developed using relight setups in Nuke. After approval by the DoP and director the lights would be transferred to the lighting lead as 3D-coordinates.
The animated coordinates would be imported into Solaris as an FBX and scattered as instances across points. This made it easy to use a large number of lights and adjust the exposure and shadow appearance as needed. The setup was even procedural enough to change the path of the lights if they intersected with a mesh without destroying their original speed. Changes in coordinates were no problem because the setup would replace them if the points had the same names.
The renders included light group passes with realistic shadows and bounces created for the compositors who used them to finalize the shot.
This shot is a good example of the merging of real and digital sets.
From the script, it was clear that the mask Eos was wearing would have to crack open. After discussing with the Production Design team, the decision was made to create an entirely CG mask for this shot. It would allow for the necessary creative control over the cracks. A scan was made of the real life mask, and using facial tracking the CG mask with cracks was added onto the face of the actress.
One of the important story points is the moment where Eos interacts with the water. Upon touching her own reflection, she creates a burst of light. It was very important to the director that the burst would not feel like an explosion that could hurt, but rather a wave of light that would heal. A lot of RnD was done by the compositing leads to create this effect.
For this extremely wide shot the matte painter created a DMP that saved the CG team a lot of work.