October 20, 2020
October 20, 2020
Meet our new featured artist! Yining Karl Li is a developer and artist currently working at Walt Disney Animation Studios. Besides an accomplished engineer at Disney’s Hyperion rendering team, he’s also a graduate of Pixar’s Undergraduate Program (PUPs), and RenderMan's "Shipshape" Art Challenge winner!
Back in high school, I tinkered a lot with both programming and digital art; my brother and I would make games in Macromedia Flash and at one point we messed around with tools like POV-Ray and an early version of Blender. I took a bit of a strange detour in college - I went to business school in undergrad! I learned on my first day of business school that I didn't like business school though, but it turned out that my school, the University of Pennsylvania, had a computer graphics program embedded in the computer science department.
I wound up taking every computer science and computer graphics course that I could while completing the bare minimum for my business degree; I basically treated computer graphics as my real major and business as a hobby, when on paper it was actually the reverse. In my sophomore year, I applied and got accepted for Pixar's Undergraduate Program (or PUP) internship, where I met a lot of really incredible and inspiring people.
Learn more about the experience of being a PUP in this fun article
When I got back to school for my junior year, I decided to try to build my own hobby path tracing renderer and wound up pouring a lot of time into it, which got me an internship at Dreamworks Animation in their TD department. In my senior year, with encouragement from a PhD student named Joe Kider and help from a classmate named Peter Kutz, I got really interested in GPU path tracing and ported my hobby renderer to run on the GPU. At the time, GPU path tracing was still a very nascent idea, and this project wound up getting me a second internship at Pixar with Pixar Research.
After my undergrad, the PhD student I mentioned earlier, Joe Kider, was doing a postdoc at Cornell University and he suggested that I apply for a masters program with Cornell University's Program of Computer Graphics. PCG is run by a professor called Don Greenberg, who is one of the old school founders of computer graphics as a field; Don goes so far back that he actually knows Ed Catmull really well from back when Ed Catmull was at NYIT! I spent two years at Cornell as part of Don Greenberg's lab, which was an absolutely amazing experience. I got to meet and be inspired by a lot of amazing professors and fellow graduate students, and I learned a ton about rendering. In the meantime, my classmate I mentioned earlier, Peter Kutz, had joined the rendering team at Walt Disney Animation Studios, and towards the end of my time at Cornell, Peter nudged me to apply to Disney Animation's rendering team as well! I've been at Disney Animation ever since. So, the short version of how I got to Disney is: through a series of incredible coincidences and random detours, and also I owe an enormous debt of gratitude to both Joe Kider and Peter Kutz.
For me, that's a surprisingly complicated question! While I studied computer graphics in school, I technically have no degree on the topic! While I was at Penn taking computer science and computer graphics courses, I was never actually a formal computer science student, so my degree was still in the business school. I actually left Cornell before completing my degree there ... I'm hoping to revisit that and finish it remotely soon.
I think a lot of what I learned was a combination of taking classes in school and also just scouring the internet for information and tutorials and stuff. Most of what I know on the software engineering side is from school, while most of what I know how to do on the artistic side is from the internet and just trying stuff on my own.
Of course Pixar films have been a huge source of inspiration! One of the earliest things that got me started down this path was actually one of the bonus feature documentaries on the Finding Nemo DVD, where they went around Pixar and showed some of the behind-the-scenes technical breakdown on how the film was made. The idea that making CG movies was an actual job that actual people did blew my mind when I first saw it. Wall-E was actually how I first learned about one of my all-time favorite cinematographers, Roger Deakins, and Ratatouille was how I first learned about another one of my all-time favorite cinematographers, Sharon Calahan. Getting to sit in on a masterclass by Sharon when I was a PUP intern was one of my favorite experiences from any of my internships!
Today, I draw inspiration from a huge number of sources; I'm constantly buying art books and paging through them (to the point where I am perilously low on bookshelf space now...), I'm constantly scrolling through Behance and ArtStation and whatnot online. I actually really love looking at stuff from the world of architectural visualization as well; that entire world is kind of a parallel universe to film and animation where they use many of the same tools that we do, but often arrive at very different results due to different demands. I love looking at artwork that isn't necessarily the style that I naturally gravitate towards, because I feel like looking at something that is different from what I'm used to is good for challenging how I see things.
Of course, my wife is also an enormous source of inspiration and encouragement to me. She actually has the better artistic eye in our house, so I often cheat at finding artistic inspiration by just looking at whatever she's looking at!
Full disclosure- I'm an absolute rubbish traditional artist. A large part of why I chose CG is because I discovered that I'm not particularly good at drawing- and not for a lack of effort either! I spend a ton of time looking at traditional or digital paintings and drawings; I think the fact that I'm personally not good at it helps me appreciate even more artists who are good at it. There's so much that one can learn about color, light, form, composition, etc. just from looking at traditional paintings and drawings.
One of my favorite art books is "The Illusion of Life" by Frank Thomas and Ollie Johnston - it's this massive tome that goes through the basic principles of animation that were formulated by Walt Disney's "nine old men" from the golden age of hand-drawn animation. Even though they were formulated during the hand-drawn days, every one of these principles is applicable to CG today, even in still images!
One of my favorite perks of working for Disney is that the job comes with access to the almost 100 years of archived hand-drawn artwork... I can spend hours upon hours just getting lost in there.
Enormously! Coming at making art from the perspective of being a programmer is extremely important to how I make art; maybe this is a little pretentious, but I like to think of it almost like how the great Renaissance-era artists all had to make their own paints and paint brushes and stretch their own canvases and stuff. I feel that being a renderer developer and knowing how rendering works at a deep technical level heavily informs how I use renderers and other tools when I'm trying to make art. Knowing how to program also comes in handy when there's something very specific that I want to put into an image, but I don't know how to do it with the tools I have... I can just go make my own tool to do it!
A lot of people think that you have to be either right or left brained, but having been in the animation world for a while now, I don't think that's true at all. I know a lot of people at many studios that are both great technical people and great artists- I knew this one guy at Disney Animation who would start each show by inventing incredibly complex new fluid simulation math, publish it at SIGGRAPH, then implement the math into a simulator, then take the simulator into production, and then end up doing artistic shot work on films using the simulator he had written with the math he had invented.
I think at the end of the day, I see my goal as making pretty images, and I see all of the various things on both the artistic side and the engineering side as just being different types of tools in an enormous toolbox for making images. Wanting to achieve a specific visual result is a great way to motivate research and development on the engineering side, and cool new discoveries on the engineering side provide great inspiration for new visuals.
Summer is always an exciting time for rendering engineers, because summer is when all of the big conferences with new rendering research happen. I'm currently reading my way through an enormous pile of new research papers with exciting new techniques and ideas.
For a while now, I've been meaning to try making some archviz style images with huge expansive terrains using RenderMan. I think this will be a fun way to get to play with Quixel Megascans and Speedtree and the Maya MASH toolset more; I’ve tinkered with all of these tools before, but haven’t really deep-dived into any of them to feel really comfortable yet.
At work, I'm busy helping out on several of Disney Animation's upcoming films; I can't talk too much about that, but there's some very cool, very exciting stuff coming up!
I think modern RenderMan is a fantastic renderer; pre-RIS, RenderMan could be fairly daunting for individual users, but today it's definitely one of the first tools that I reach for on personal artistic projects. The interactive workflows that RenderMan provides in RenderMan For Maya have been a huge boost for me when doing lookdev and lighting.
I have a cool story about RenderMan as a developer tool- back when I was at the Cornell lab, we were given early access to what was then RenderMan 19. After looking through the RIS developer APIs, one of the other research teams actually decided to use RenderMan as their research renderer and wrote all of their research code as RIS plugins! I wasn't on that project, but it was really interesting to see, and hinted at the strength of RenderMan's extensibility.
Left to my own devices, I'm definitely the type to get completely lost going down a rabbit hole for days on end, so I try to put a lot of deliberate effort into separating work time from personal time. While computer graphics is one of my major hobbies, it's also my day job, so I try to make sure I spend time away from the computer each day. I make sure to spend time each day cooking, spend time talking with my family and friends, and spend time just generally remembering that there's a world beyond my desk. I also generally try to make sure that whatever I'm currently working on for a personal project is far far away from whatever I'm currently working on at work, which is important both for professional conflict-of-interest reasons and for preventing burnout from just working on a single thing all of the time.
XPU promises to unlock a whole new level of interactivity, and I think that's going to be huge; I can't wait to try it out for personal art projects! Also, there's a lot of exciting innovative technical work happening on XPU; Max Liani from the RenderMan development team has given several really great and inspirational presentations at various conferences about the ongoing development work on XPU, and I've watched them all with rapt attention.
Learn more about RenderMan with the presentations at the Art & Science Fair
My personal background is kind of a mishmash of several different things- my family is from several different parts of China, my parents spent a lot of time in Germany and I was born there, and I grew up in several different parts of the United States. All of these different cultural contexts left their mark on the family environment I grew up in, and taught me to appreciate very different cultures with very different people and very different ideas. I also learned from a young age that even across very different cultures, there are often things we can find common ground on. I think this is why I like to cast such a wide net when looking for artistic of technical inspiration; how I grew up taught me that just because something isn't familiar to me doesn't mean it isn't worth learning about, and more often than not learning about something unfamiliar leaves a mark and can change us for the better.
Cast a wide net! Don't be afraid of looking at and drawing inspiration from work that is outside of your comfort zone; I think that's great advice for both art and for code. Don't be afraid to try new things, and try as many things as you can to figure out what you really like and what you really want to do; again, that's true for both making art and for programming. Also, don't be discouraged when success doesn't come immediately; some of the things I have found most fulfilling in both art and programming have required a good amount of (figuratively) banging my head against the wall until I finally understood what I needed to do to make things work!