“We expect you to ask a lot of questions!” was what my mentors told me on my first day as a Blue Sky Studios Production Engineering intern. This was my first studio internship and to say I was nervous, is an understatement. I remember my first task was to find all human characters with fur in our upcoming movie using the Shotgun Python API. I didn’t know Python at all, and had no experience with Shotgun, but my mentors, Becca Hallac and Marley Gilb, encouraged and taught me that it was okay to be confused and to ask questions; it meant I was learning. As a result, I learned a lot this summer.
My internship provided a lot of flexibility on how to approach tasks, which allowed me to challenge myself and to pick which tools I wanted to learn. As a result I worked on an array of different tools and tech. One of the projects I worked on was Asset Health, a system that allows users to fetch important metrics to diagnose performance issues in our assets as part of the new pipeline mentioned in the 2018 SIGGRAPH talk Achieving and Maintaining Real-Time Rigs. For Spies in Disguise (2019), my mentors helped me design and implement a “Scene Health” Maya plugin to display Asset Health metrics for all assets in a layout scene file. When I was building the Scene Health Maya plugin, I got to work directly with Jerril Yoo, a Technical Director supporting the layout department, who was very patient in explaining all of the desired features and needs of the tool. Together we created a user experience that displays the data in a meaningful way to artists. I then proceeded to build the tool in PyQt. The projects I worked on were relevant to production and I was incredibly proud to see my projects being used.
For my final project, I worked on converting the Moana Island scene geometry to Pixar’s open source Universal Scene Description (USD). This will allow the scene to be rendered using RenderMan. Tim Hoff, a Technical Director in Production Technology, and Chris Rydalch, an FX Technical Director, became my point people for my Moana conversion project. Chris took the time to meet with me to explain how to get started, which was probably the most daunting part. Tim taught me how to optimize my USD files with point instancing. He then helped me diagnose a massive bug in my obj loader that caused a single tree’s USD file to blow up to 100GB which subsequently slowed the runtime of my script. Even after running overnight, it still wasn’t able to finish parsing the data for a single tree. With Tim’s help, no USD file for any element in the scene exceeded 1GB in size, and my script was able to process all of the scene’s elements in 40 minutes. Sally Kong, a Technical Director who supports the lighting department, helped me to set up the cameras in my scenes and the Houdini RenderMan network in order to render my resulting USD files.
Through the kindness and patience of all of my coworkers, I saw that mentorship was not just part of the internship program, but ingrained in the culture at Blue Sky. Mentorship came naturally to everyone because everyone was genuinely excited about the work and helping others get involved.
Going into my internship, I knew that I would learn a lot, but I didn’t realize I would experience a complete shift in the way I think about problems in computer graphics. In school, we are introduced to basic computer graphics concepts, such as loading small geometries into a Cornell box and rendering it with our own rendering engines. At Blue Sky, I had to learn to think bigger. Like, how am I going to parse the Moana island scene description, with 90 million unique quads and triangles?
How am I going to render it in our new pipeline when the final scene, with every tree, leaf, and piece of debris instanced, has 15 billion primitives and curves?
For these projects, it wasn’t enough just to apply what I was taught in school. I had to make sure my tools were efficient for use on an enormous production scene. Furthermore, these tools had to fit into a pipeline. In one sense, that not only meant thoroughly learning the industry standard software but also learning how to create plugins using the applicable APIs and frameworks. In another sense, that meant communicating effectively with artists to create user-friendly interfaces that fit their department’s needs and working collaboratively with other developers when creating larger projects and APIs.
At the end of my summer, leaving Blue Sky was bittersweet. It was the end of the best internship I ever had, and I was sad to say goodbye to the amazing people I had met. However, I am going back to school full of excitement and with a much stronger sense of how I want grow as an engineer.