Navigate back to the homepage

Spider-Man: Homecoming

Dhruv Govil
July 7th, 2017 · 4 min read

This post was originally part of my series on Python for Feature Film on my personal site, but is being ported here with minor changes. The dates have been adjusted to match release dates for the projects.

In Part 7 of my series on Python for Feature Film, I’ll focus on Spider-Man: Homecoming. This is probably the hardest movie I’ve worked on. It was not uncommon to find people in other departments crying from the stress of working on this show. That said, it was also the first show where I supervised the Pipeline and Layout departments.

I really am thankful for the amazing crew we had on this show. Jose was our Layout Lead and he shouldered a lot of the layout responsibilities on this show along with Daniela. Kurian was the only other Pipe TD for most of the show.

We had a few other folk help out as the show got crazier, but I’m so thankful we had such an amazing team because it would not have been doable otherwise.

A trailer for Spider-Man: Homecoming

So what did we do and why was it so crazy?

Our team was responsible for the third act of this show.

This starts with the warehouse battle between Spider-Man and the Vulture, following them through an air battle on the VTOL and finally to a beach battle on Coney Island. I was responsible for all the camera and setpiece work once we’re in the air, but our team distributed the remainder of the shots and all the cloud layout between ourselves.

The majority of these shots are either completely digital, or involve only parts of the character being real.

Everything in the sky is digital but physically accurate. We had to art direct the placement of every single one of the thousands of clouds you see on screen. These are very expensive volumetrics, so can’t be seen while we work, often requiring hours of work to place their proxy meshes and then wait overnight for renders to see if they look like we want.

They also need to convey speed and scale, while providing compositional elements.

The Final Battle sequence in the air

Additionally, the plane is flying a real world course from the Avengers tower to Coney Island. It’s traveling roughly 500mph , and at that speed , even a single shot will suffer from floating point precision errors as Spider-Mans skin will literally start peeling off of his digital self.

Finally everything was on a very compressed time schedule. At one point, I was expected to do the entire flight sequence in a week, when we usually would give multiple artists a few weeks to execute the sequence. We were severely understaffed versus any similar show we’d done previously.

So as you can see…it was a crazy amount of work. So how do you keep sane through this?

How do you get through it?

Well first of all…a lot of late nights. I was working 10-12 hour days, sometimes seven days a week for six months. My team was pulling similar hours and many other teams were too. I got married during the show and all I could finagle was 4 days off.

Secondly, it was all about being efficient.

  • For the clouds, Jose and Daniela made preset groupings of cloud banks and a system for where they’d fit compositionally.
  • We made use of my Origin Translation tools I’d written on Hotel Transylvania 2, which I’d now converted to C++ for better performance. This let us side step the floating point precision errors we were facing and behave much more predictably.
  • We brought back the quick layout tools from The Amazing Spider-Man 2 to help speed up layout and continuity in the warehouse and beach battle scenes
  • We automated it as much as we could. Anything we’d do more than once was automated.

Finally, we really brute forced through it.

Kurian tackled tons and tons of tile shots, where we put stills of a scene into 3D space on cards to give the illusion of depth.

Jose and Daniela powered their way through hundreds of cloud shot iterations.

There were even shots where I came in on the weekend because we had to hand place debris to match an art directors vision. Said debris was cut off in the final projection cut of the film.

Really my advice on a show like this is to keep a cool head and hopefully your abilities as a developer are good enough that you can can try and automate your tasks. This is why I recommend everyone, even artists, learn to program. There will always be that one show where your ability to program will be the difference between breaking down and being successful.

Visual Effects breakdowns of the hard work that went into this show

Motion Capture

This show made a lot of use of motion capture technologies.

So we had a lot of motion capture of the actors and stunt actors on sets, where i wrote tools to ingest them and apply them to our rigs. This was relatively straightforward.

What was more fun was that we set up an entire vicon capture stage for capturing in house mocap. Our straps for the visual markers were unfortunately way too small to fit anyone but me, so a few motion capture references are me doing my worst acting.

So what do I think of the film?

This film was so stressful for everyone involved, that we were definitely not fans of it when we went in to the theaters. A few people still refuse to see it out of principle.

That said…coming out of the theater, it’s one of my favorite Marvel films. It has some of the best character building, and the risks Peter face are way more relatable. They’re not about the world ending, they’re a lot more personal.

So despite the crazy experience, most of us really liked the film. Was it worth the grey hairs and tears? Maybe not, but I think it was also a career defining show for me to get through.

More articles from Graphics

Quick Shows:Guardians of the Galaxy

Working on Guardians of the Galaxy, Smurfs: The Lost Village and more

April 7th, 2017 · 4 min read

Suicide Squad

A look back at working on Suicide Squad

August 1st, 2016 · 4 min read
© 2013–2020 Dhruv Govil. All images and videos used under fair use.
Link to $https://twitter.com/dhruvgovilLink to $https://github.com/dgovilLink to $https://instagram.com/dhruvgovilLink to $https://www.linkedin.com/in/dhruvgovil/