CGCircuit Interview: Geordie Martinez of ILM

CGCircuit is proud to present the latest in our on-going series profiling some of the leading technical and creative talent in the entertainment industry.
Today we would like to share with you our interview with one of the best Creature TDs in the VFX industry: Geordie Martinez.
Geordie currently works at Industrial Light and Magic as a Creature TD, Crowds Lead and also as trainer for the ILM Creature Dev department. He also publishes tutorials on our platform and he is currently teaching a workshop on Python titled Learn Python inside Maya. You can find the workshop here.

In this interview we ask Geordie about his career his work at ILM and more.

Geordie Martinez Demo Reel 2015 from Geordie Martinez on Vimeo.

The Interview


1449858828_256Can you introduce yourself and tell us some of the major productions you worked on?

Hello! I’m Geordie Martinez. I’m a creature TD and crowds lead at ILM. I am also the trainer for the Creature Dev department. I train all of the new hires coming in to get them up and running quickly. I’ve worked on The Avengers, Pirates of the Caribbean, Noah, Pacific Rim, Captain America Winter Soldier, Star Trek Into Darkness, Tomorrow Land, as well as a bunch of rides at ILM. I’ve been working in science animation and vfx since 2003.

What was your most challenging project you worked on and why?

I’d say recently, Noah was the most difficult. The shot in my demo reel where 900+ animals are loading onto the ark in pairs winding through the rafters and ramps to lay down and sleep. it was incredibly difficult to have large and small animals stay in pairs and respect each other spatially. This shot was created in massive but I had to manually adjust the output of each and every animal to avoid penetrations and overlap while they layed down. there was a lot of post-sim python in that shot. The comp had over 1400 layers. It was also the first time ILM had used Massive so the pipeline was being developed in the heat of production which lead to many sleepless nights for the crowd team.

What is your coding background?

I have a film degree, not a C.S. degree, however, math and physics were something I had to learn in Naval Nuclear Power School and would come in handy later. When I was in film school I started dabbling in Flash as a form of animation. It was also the height of one of the internet bubbles and people were paying well for flash programmers so I taught myself ActionScript, JavaScript and PHP so I wouldn’t have to live in abject poverty while trying to work in film (the plan worked!). I really started to play math and physics in Flash which got me interested in trying out something a litte more powerful like Maya.

How did you start learning about Python?

I was a Flash Programmer for about 4 years and when the internet bubble collapsed. It was a perfect time for me to go to Gnomon School of Visual Effects. So I went to the Maya Fast Track. While at Gnomon I decided to pursue Particle FX, Dynamics, and Creature Rigging. Alex Alvarez told me there was always a need for riggers and FX TDs (still true today) so it was a good choice. Learning MEL was easy, but was definitely a step backward compared to ActionScript. There was nothing Object-oriented about it at all and I’d come to appreciate that method of coding. Luckily, in Maya version 8.5 (2005 or so) python was introduced and I started learning right away. maya.cmds is also not object-riented, but it was 1000% better than just MEL. Python is better just for data types alone, but there is a vast library of re-usable code that comes built-in to python that could be leveraged to communicate with databases, etc. so I was hooked.

Can you tell us a little bit about the type of tools and scripts you usually write or maintain at work?

For rigging work, I script everything I can. From the overall body part scripts that add extras to my characters, like stretchy limbs or a squash-n-stretch head lattice or something extra to a tank tread, or props the character may be wearing. My motto is “script anything you have to do more than once”. Being able to re-rig a character in a few lines of code gives you more time to try out new techniques or modify your existing ones. This will make the rig that much better. With the added benefit of being able to reproduce your results exactly on future rigs.

At ILM I work with crowds in ILM’s proprietary tool, Zeno, as well as Massive. Working with ILM’s powerful crowd and simulation tools has given my python a serious boost over the last couple of years. Some of the most difficult code I’ve written recently has been to create custom python brain nodes in Zeno. The best part of my job is having access to the brilliant RnD engineers to learn from.

Do you tend to maintain more other people’s tools or create new tools? How often do you get to add features to tools you wrote.

A little of both, I have created new tools like a PhsBAM rigid body ragdoll system for use in Maya, as well as other tools for crowds. But others have made improvements to my code after I have released it. At ILM if you have improvements you want to add to someone else’s tool, not only is it okay to do so, it’s encouraged. We just want to give credit where credit is due. We have a review system that allows people to review any updated code before it goes live.

You created a workshop and published it on CGCircuit. What is your main goal for this workshop?

I taught a semester of Python at a well known university and I was struck by how hungry the students were to learn, but didn’t know where to begin and how to avoid rabbit holes. So the main goal is to provide a starting point for those who have been wanting to learn python and may not know where to begin. There are a lot of ways to learn python but I’ve compiled what I think is a great collection of fundamental python essentials that will give anyone a great leg-up into the world of coding in python with a focus on coding in Maya and Pyside GUIs.

Learn More

What people will benefit the most from your workshop.

Absolute beginners. Absolute beginners who aren’t afraid to fail and try-again over and over. Absolute beginners with drive and determination who want to get up-to-speed as quickly as possible. The important part of this is “drive and determination.” This class will require a commitment of up to 5-15 hours a week in addition to the 3 hours of video lectures per week. If a person has drive and determination and are willing to commit to learning then this workshop will benefit them.

How is the workshop different from your tutorial you already published on CGCircuit?

I have another video on PyMEL which would come after this class ideally. The PyMEL video assumes you have the basics of python and would like to start coding in Maya with an Object-Oriented style. So this workshop is designed to give you the basics.

We touch on PyMEL in this course a bit, but not as much as the 5 hour pymel video does.

What will people get out of your workshop?

This workshop will provide a foundation of python knowledge that each attendee will be able to build on. It’s a concise, condensed, fundamental course in Python with the goal of getting the attendee to the point of writing production-level code in 8 weeks. That is a lofty goal but I think it’s achievable for those willing to work hard.

How intense is your workshop?

It depends on the person. This may sound harsh, but If you don’t have the time, energy, or desire to commit to this, then I’d say don’t sign-up. It’s for people with a yearning to be the best. These days, in addition to your demo reel, you have to know how to code to get hired at most major VFX studios; you cannot avoid this fact. The workshop assignments build on each previous weeks assignment so you cannot avoid putting in the time to learn and practice and you cannot miss a week and expect to catch up.

What do you give away in your workshop? Is there any cool scripts, cheat sheets, tools?

Each class will have a weekly download .zip file with the complete python code with comments for each week’s lecture as well as code examples and .ui files for use in QT Designer. As part of week 3, I’ve also created a string-formatting cheat sheet I made because I couldn’t find any good ones that covered all of the the new python 2.7+

.format() abilities. At the end of the workshop there is a .zip with a bunch of useful PDFs that I think are super useful.

What advice would you give people who are starting now to learn Python and scripting?

-Start a library of organized code now.

-Type out the code to each tutorial and save it in your library of code. Solve little tasks with python and save the code you used to solve the problem.

-Cutting and pasting isn’t learning. You won’t retain it.

-Learn to love broken code. See each traceback is a way to learn.

-Do the work. Be the prize. Python is easy. It’s the easiest language to learn in my opinion. The sooner you learn it, the closer you’ll be to landing your dream job.

Additional Links:
Industrial Light and Magic
Massive Software
Learn Python inside Maya (Geordie’s Workshop)
Geordie’s Demo Reel