Back to Blog Index

The Code Never Bothered Me Anyway

No items found.

Ever hear of Houdini?

No, not the magician, the software by SideFX. Joey got a chance to have a very nerdy talk with the super genius Christopher Hendryx about his work at Disney as an FX Animator.

Christopher was the lead artist in charge of Elsa's ice magic on a little film you may have heard of called Frozen. He created a very flexible and powerful rig in Houdini to create the effect, and shares a lot of insight into how he goes about making the insane visuals that he's responsible for.

He also talks with Joey about why Houdini is turning out to be the "software of choice" for FX, and how one might go about learning it.

Prepare yourself, things are about to get real nerdy.

Subscribe to our Podcast on iTunes or Stitcher!

Show Notes

CHRIS

Chris's REALLY OLD Demo Reel


SOFTWARE

SideFX Houdini

Autodesk Maya

Renderman

Hyperion

Katana


LEARNING RESOURCES

Houdini Getting Started Tutorials by Peter Quint

Gnomon Workshop

Python Programming Language for Beginners

Episode Transcript

Joey Korenman: For the longest time I had this idea in my head that motion design was a totally separate thing from visual effects. Which was also a totally separate thing from hardcore 3D. You know, the kind of stuff that Disney and Pixar do. And the reality's, I've kind of come to realize it recently, is that that's not true. All of those disciplines are related to each other and there's very mushy gray lines kind of separating them. And the career paths might look different in each of those fields, but really the way you accomplish creating images in those three disciplines, it's all related. We're all using very similar tools, similar techniques, similar theories. And so, I thought it'd be interesting to talk to someone who works in a completely different end of the business that I typically work in. All right? I come from a typical motion design background, I work on advertising. However, now you're seeing movies like Tron and Oblivion and Iron Man and Prometheus where motion design becomes almost a character, right? Let us not leave out Ender's Game. The mighty Ash Thorp.

so I had the pleasure and the opportunity of talking to a man named Chris Hendryx. Now Chris is an effects animator for a little company out in Los Angeles called Walt Disney Animation Studios. He's a Houdini artist, and Houdini has been sort of having sort a little resurgence of popularity in motion design. I think due to guys like Albert Omoss, who are doing really cool things with it, that aren't necessarily visual effects. They're very motion design-y. But Chris works in Houdini, and he's worked on Big Hero 6, Wreck-it Ralph, Paper Man and he also worked on a little movie called Frozen, and did a lot of the key effects for that movie.

So I talked to Chris about how that field works and how does design and animation fit into that workflow, and we get really deep into what makes Houdini the tool of choice for effects animators at Disney, and at other studios. Chris has also worked at Buck in New York, so he kinda has an interesting perspective. He's worked both for a pretty well-known motion design studio and for a very well-known animation studio. So I hope you guys dig this interview. It was a little different than some of the other ones I've done and I really enjoyed it, and Chris was very gracious with his time. So here you go, from Walt Disney Animation Studios, effects animator Chris Hendryx.

Well Chris, first of all, thank you for waking up super early to chat with me about really dorky stuff. I appreciate it man.

Chris Hendryx: Yeah, no problem. Nice talking with you.

Joey Korenman: Cool. So let's talk about Houdini. But first of all, you worked on Frozen, right?

Chris Hendryx: Yeah.

Joey Korenman: That's awesome. I think we'll lead with that actually. That's pretty cool. So tell me, what are some of the things that you did? And I know you worked on other movies, I want to talk about those too. But Frozen's, I don't know. That's got to be probably the most popular movie you've worked on at this point. What did you do on that movie?

Chris Hendryx: I was primarily responsible for doing Elsa's magic for that film. So I designed the rig that I had a bunch of artists use to propagate her lyrical curly-cue kind of magic that you see used pretty frequently throughout the movie.

Joey Korenman: Cool. My two daughters would probably like your autograph. So let me ask you this. Was it always the case that you were gonna use Houdini to do that? Or did you do any R&D to figure out the best way to pull that off?

Chris Hendryx: Houdini is the primary application we use in the effects department at Disney, so there was not really any consideration of using any other software. And really, it probably is the best application we have for quickly iterating on really kind of rough rigs. The only other application we have is Maya on hand. And it really isn't quite built to do the same kind of thing. If I tried to do something as complex as what I do in Houdini, that's usually where you get yourself into a situation where it just crashes or stops working inexplicably, and you have to rebuild your [inaudible 00:04:39] from scratch. Which is something I remember having to do a lot when I worked in motion graphics.

Joey Korenman: Yeah, I don't know. It's funny that you're talking about that as though that's weird. 'Cause that is just sort of expected-

Chris Hendryx: Yeah, exactly.

Joey Korenman: ... You mean, there's a new version of After Effects out right now and it crashes constantly. So what it is about Houdini, and I'm asking from the standpoint of someone who's never opened it, who's never used it. I've just, I've heard about this like mythical beast called Houdini. What is it about Houdini that makes it a better tool than Maya for doing this kind of work?

Chris Hendryx: First of all, it's a procedural application. So that means it has a fairly non-destructive workflow. The best example I have outside of Houdini, if you use 3D S-Max and I've only used it a couple times so I might be wrong in my assumption, but when you're modeling and you're adding modifications to it, like you're editing edges or faces, you were doing extrusions or other kinds of manipulations, it shows those in like a little dropdown sheeted order. And you can rearrange that order. So you can have some operations happen before others. And the same thing is true in Houdini, where you can manipulate your surface in different ways and they're all in these nodes that you kinda just plug in one after another. Very similar to Nuke, so it's like you do a color adjustment and then you do a grade adjustment and then you transform something.

But if you manipulate any of those nodes on the top of the chain, it'll just propagate down to all the ones in the bottom, so if you made changes earlier in your process, it won't completely ruin everything you've done after that fact. It'll all just propagate down through the entire system. Where it's, again, to use the Maya parallel, if you have your character model and you do some things to it and then you go back and decide you need to change the character model, that means you then have to redo everything you did after that fact, because it's basically gonna break everything you did from that point.

Joey Korenman: Gosh, that makes sense. So motion designers typically these days are using Cinema 4D and it can act in a procedural way too, you know. You can sort of stack different deformers in a certain order and keep everything alive if you want to. And I know that Houdini probably has even more flexibility but I suspect that that's not the only reason that it's used so much for effects. So why do you think it's so useful as an effects tool specifically?

Chris Hendryx: I think as an effects tool specifically it's useful because there GO-rendering and the way they handle geometry data is really efficient. So it can render hundreds of thousands of faces while still visualizing in realtime in your view port. And it can render up to billions of points. So like particle systems, especially with the newer version, starting with Houdini, I think, 13. They completely rewrote their geometry format. So you can render and simulate billions of points in your scene in close to realtime, which is impossible in most other applications. So it's really scalable, it can do really big things much faster than other applications can.

Joey Korenman: Gosh, that's actually, that's something I wasn't aware of, and that makes a ton of sense. I mean that's something that especially motion designers, who are really concerned less with realism and more with the way like ... Just things looking cool. That having an interactive view port and stuff like that is super important.

Chris Hendryx: Yeah. There's nothing more frustrating than the way your frame rate drops down to like a frame a second and you can't really see what's going on.

Joey Korenman: Right. So for the Frozen rig for example, were artists able to just basically set how many ice particles, how many pixie dust particles and generally what direction they're going? How would a rig like that work in practice?

Chris Hendryx: So that one was really kinda interesting and unique. The way that it works is, the artist kinda draws a base curve however they chose to, inside of Houdini. And then they kinda of plug that into the system and it would procedurally generate other curves that would follow along it or kind of spiral off of it. And that's where you get the little accent kicks of stuff spiraling off of the main direction that the snow was falling in. And then it just builds all of its own particle emitters that will travel along. I don't think they ever specifically set an absolute number, like, "I want a 100.000." It just kinda figured, based on ... It figured out on its own, based on how large the overall shape was, how many particles it needed to get the right density. So they all looked uniform throughout the different scenes.

Joey Korenman: That's really slick. So if an artist drew a curve. Was there all kinds of crazy math going on to then generate other curves off of it? Or does Houdini have some neat little node that just does that?

Chris Hendryx: Oh no. I pretty much wrote that by hand using ... They have Python stops. They have their own internal language called Vex. Which is very similar to Maya's [inaudible 00:10:10], it's just an internal scripting language. But they also have a Python API for it. So I wrote an entire node in Python that would look at that input curve and figure out the best way to generate other spirals off of it.

Joey Korenman: Jesus, that sounds really complicated. I want to come back to that 'cause that's another topic I want to dig into. This whole idea of like, do you need to be a math genius or coding genius to really do this stuff in Houdini? But first, let me ask you this. So I'm assuming the movie was not animated in Houdini, right? What tool were they using for the characters?

Chris Hendryx: Character animation, modeling ... A lot of the front end departments use Maya.

Joey Korenman: So if you've got the scene my three year old acts out 50 times a day where Elsa's building her ice castle and waves her hands around. How do you integrate what you created in Houdini with that? What comes first? Is it the Maya part or the Houdini part?

Chris Hendryx: The Maya part usually comes first. The characters are modeled in the modeling department, as well as the environments. And then a character ... Usually we don't start doing work until after animation is finished. Unless it's what we call a music box shot, a music box shot is where there's no characters. There might just be effects. So we don't get started until after animation is done or there is no animation to take into account. And usually we have our own proprietary geometry format. So they just export everything, kind of like as a geocache out of Maya. And then we have our own pipeline for bringing in assets. So for any given shot we have our own application that tells us basically every asset that's in the shot and it just loads that geometry into Houdini, exactly where it needs to be in world space with any of the attributes that were baked out by the upstream departments. And it just exists [inaudible 00:12:13] our scene for us to use as we will.

Joey Korenman: Got it. So would the character animator who's actually animating the character, are they not the one that then draws that curve that makes the magic sparkle come out?

Chris Hendryx: No, they could indicate it if they want to. But in Elsa's magic specifically, that was something where we collaborated with animation, because the effect was so dependent on the actions that she was doing. We worked really closely with them to figure out exactly where and when they wanted the magic to happen. But then it was left to us to actually implement and design it.

Joey Korenman: Cool. So obviously you built the rig, you figured out how to make some kind of interface for artists to use. Did you also help develop the look of that effect?

Chris Hendryx: I did to some extent. The look had already been decided on by the VFX supervisor and the visual development department, who are the guys who do all of the concept art for the movie. So there's always this transitional phase where they really like the design of something as a 2D painting, and then when we try and implement that in 3D and it doesn't quite line up with their expectations [inaudible 00:13:35], it looks great in a painting but once you actually put it in a CG-world it doesn't look quite right. So we had to do some design changes to make it fit within the world that they had designed.

So I did a little bit of tweaking to it at that stage, but for the most part it has already kinda been figured out what look the directors wanted for it.

Joey Korenman: And how much of the look is coming out of the render from Houdini and how much is happening in like, Composite?

Chris Hendryx: For stuff like the magic it's about half and half. We don't render out of Houdini directly. Again, we have our own proprietary render. But actually, for Frozen, we're using Renderman. So we're doing everything in Renderman. And then we do a little bit of stuff in Composite. Just to get a little bit of glow and flicker and stuff like that. But not a lot of really heavy stuff.

Joey Korenman: Gotcha. Now you're talking about ... So you don't render in Houdini and I know that Houdini does have a pretty powerful built-in renderer. So I'm curious, why don't you guys just use that? Is there an advantage or is it like a pipeline thing?

Chris Hendryx: It's mostly a pipeline thing. We used to use Renderman up until Big Hero 6. And then we switched over to our own proprietary thing, and the reason for that is just so you can have an integrated look between all of your applications. So a lot of the bigger VFX studios kind of use Katana. So it doesn't matter what the original application your object was authored in, they all get funneled into a single source. So in that way, you can make sure that everything is rendered kinda to the same standard. 'Cause if you're rendering some stuff in Renderman and some stuff in Mantra and then some other stuff in Mental Ray, like the anti-[inaudible 00:15:36] won't line up, the shadow depth won't line up, and the people of the studio have a really keen eye for pixel-level errors in the renders. And it just make things a lot simpler to render everything in the same application so you can make sure that there's a uniform treatment on all of the geometry.

Joey Korenman: That's interesting. So I noticed on your LinkedIn page that when you were at Buck, one of the roles that you wrote down, was that you were helping with pipeline development. And I'm just curious what that actually means and what does that really entail?

Chris Hendryx: It was mostly kind of like an asset pipeline. I didn't do anything on the render side, 'cause that was more of liken the wild west. That was the opposite of what I was just talking about. People would just render whatever they wanted in whatever application they had available and then the guys doing the comp would be responsible for making sure everything kind of fit together. What I did was, they didn't have a system for easily moving around assets from shot to shot.

So if they had like a character ... So we'll say I worked on the Sherwin Williams shorts over there, for the paint swatches. And they didn't really have a good system for safe-moving the same B-character from shot to shot to shot. It was usually just someone going into Maya and saying, "File import, B." But they didn't really know if that was the most updated B and it was, for me it was really uncomfortable to see people just kind of importing directly from Disk instead of us having an application that had a full list of what were the most up-to-date, approved versions of each character or prop or set. And it was just a way to unify the way in which everybody worked, to make sure that they had the accurate data that they needed to work with.

Joey Korenman: That's really funny 'cause you're calling it the wild west. That is exactly how most motion design is done.

Chris Hendryx: Oh, I know. It's just get done as quickly as you can, [inaudible 00:18:00] then that's fine.

Joey Korenman: That's great, and it's interesting to know, the technical stuff you talked about, having the same NTA-[inaudible 00:18:07] setting and the shadow depth. That's stuff that never occurred to me and I guess that when you're making a feature film and you have years to do it, you have the luxury of making sure that that stuff's right. Let me ask you this too, 'cause you mentioned that you've got some people that can notice that one pixel that's off. How difficult was it, you know, when you were starting out at Disney, to kinda calibrate yourself to that. If you spent two weeks building out some insane Houdini rig and then they wanted you to just tweak this one little particle that was flying off this way and maybe you didn't have the technical ability to do that yet. What was the learning curve like once you got there?

Chris Hendryx: Oh, the learning curve for me was particularly difficult because I didn't know Houdini at all when I started. They took a huge risk in hiring me and just expected me to kinda learn it on the job. But that's one of the really convenient things about Houdini in particular, is that the data is very transparent, too. For example, to answer your question about that one error in particle, if you want to delete it, there's super simple tools in there. For example, in the view port you can visualize each point's unique ID-number. So in your system, at the very end of it, you can just put down a delete sub and then just input that ID number and at that point it just doesn't exist for the rest of that chain.

So this goes back to that thing I was saying about a non-destructive workflow. So you could have that point deleted and continue to work from that point forward if there's other adjustments you need to make. But if later down the line they decided they want it back, all you have to do is remove that node from your network or bypass it, and just say, "Do not process this delete information." And then it'll just insert it back into the data stream and continue to be manipulated if you had made further changes down the line.

Joey Korenman: Got it. All right, I'm trying to, in my Cinema 4D brain, I'm trying to figure out what the advantages are. That makes a ton of sense 'cause there's a lot of things you would do in Cinema 4D, for example, you'd have to bake, right. You'd have to bake your simulation and stuff like that. So do you ever have to bake stuff in Houdini? And not just because maybe there's no other way to accomplish it but also because the simulation times are getting crazy?

Chris Hendryx: Yes, for simulations and just for efficiency reasons, there's a lot of times it's worthwhile to cache stuff. So one of the things that I frequently do, like when we're bringing characters that we have to use as collision objects or something like that, they come in with a bunch of data that isn't really necessary. Like there's an entire secondary geometry model that's just an exact duplicate of their body that's used for sub-surface rendering. So I can just delete that entire surface, I can usually delete all their clothes, their eyelashes, their fingernails because that's just a bunch of unnecessary stuff I don't need. And it reduces the complexity of the model by a significant portion. But then when you try and play it back, it runs through that calling process every frame. So that's stuff it has to think about in turnover. So it's just much more convenient to cache that information out the disk, so it's kind of like a little stop-gap. It's saying, "Your system is no longer [inaudible 00:21:43] or procedural, but it's a lot faster because from that point forward it doesn't have to do all that processing.

And the same is true with simulations. If you're doing like really big water sim or a fire sim, that can take several hours to an entire day so you need ... It's frame-dependent, so it's one of those things where you can't just scroll back and forth from frame to frame. It has to go linearly from frame one to frame two to frame three to frame four. And you just can't wait for it to do that if you need to check what's happening on frame 20 somewhere further down the pipe. So if you cache that data out, just so it's scrollable and you can make frame-specific manipulations further down your pipeline.

Joey Korenman: Gotcha. And is there some room at Disney with like a million computers in it that you can simulate on?

Chris Hendryx: Yeah we have our own farm that's split up between Disney, Pixar and ILM. We kind of share resources between the three studios since they're all under the Disney umbrella now.

Joey Korenman: I know. Exactly. The empire. So I'm just curious, how many render machines are there? Do you know?

Chris Hendryx: It fluctuates because we rent out machines to different studios, depending on their needs. Like Inside Out just came out a couple months ago, so we probably donated the majority of the machines to them so that they could finish that movie. And then we'll get them all back to finish our current film which comes out next year. So they keep moving and they have a certain allotment but as to the actual number of machines, I'm not sure. Because we count it by core. So if we have a single eight core machine, that counts as eight rendering slots, so I don't know if eight core is like ... Could be one computer or it could be two computers with four cores. It's really hard to gauge.

Joey Korenman: Got it. Got it.

Chris Hendryx: 'Cause there's a lot.

Joey Korenman: There's thousands of cores, I imagine.

Chris Hendryx: At least, yeah.

Joey Korenman: Yeah, got it. That must be fun. And you can simulate on those. You don't just use those for rendering, right?

Chris Hendryx: You can, but it's a single core process. So really it's only taking up one render core just per many hours.

Joey Korenman: Oh, I see. So you can't spread out the simulation of like a water sim or something. It has to go on one system.

Chris Hendryx: No, because the way simulations work, it's not like caching a character where you can go to any frame and it knows what the data is. With a simulation, frame two needs to know what the data from frame one was. So you can't do frame four-

Joey Korenman: So you can't have one computer rendering frame two and then another one ... Sorry, simulating frame two and then another one simulating frame three, because you can't do frame three 'til frame two's done. Is that how it works?

Chris Hendryx: Yeah, exactly.

Joey Korenman: Got it. Got it. Okay. Gosh, well I've dabbled in Realflow before, I've sworn it off. I won't touch it again. Now you mentioned Fluid Sim, so why ... Do you guys use Realflow or do you guys use Houdini for that, too?

Chris Hendryx: No, we use Houdini for that as well.

Joey Korenman: Okay. And is there advantage or is it just 'cause you know that app?

Chris Hendryx: Again, it's the procedural work flow. It's a lot easier to take into account changes, 'cause a lot of the times we'll do work ahead. So we'll work with kinda incomplete character animation or incomplete character models, so it's a lot easier in Houdini to kind of do a simulation based on what we have currently and then when the character animation or sets get adjusted, you can just kinda run the system again with those new models and it's not a big problem. Like everything's kind of been rebuilt. It's been a really long time since I've used Realflow but I don't think it's as easy to use an application.

Plus, the problem with Realflow, at least the version I used back in college is that it was fluid simulations only. Where with Houdini, all of the systems are integrated into each other so if we wanted to, we could set the pool of water on fire or we can have a simulated ... Rigid bodies, so like rocks and stuff. They could land in the water and the water could push back on the rocks. So it'd be a two-way system, versus in Realflow you have to do the rocks first, [inaudible 00:26:21] and the water would really only be reacting to them, they wouldn't have any actual effect on the rigid bodies themselves, 'cause they would've had to have been baked from some other application beforehand.

Joey Korenman: That makes sense. Wow, that is geeky, man. It's such a technical thing. So I want to get into a little bit of sort of how you ended up doing this. Now I know you went to Ringling, yay. So what did you study there and how did that prepare you for what you're doing now?

Chris Hendryx: We studied character animation there. That's their big focus, is character animation and acting. And honestly, what got me into effects is just my kind of mindset. I remember the very first day of computer animation class. All they want you to do is a pendulum and it's kinda just to get you used to the curve editor. So it's like, "We just want you to create a simple cylinder with a flattened sphere at the end, and we just want you to have it rotate back and forth in X and have it slowly come to a stop." As soon as she had kind of explained that, showed us how it worked, I just kinda asked her, "Hey, is there any place where I can just put a sign wave equation with a multiplier so that it dies over time, 'cause that's functionally the same thing." And you know, an X-curve going back and forth until it eventually just peters out to zero. And she just kinda gave me this look and she's like, "No, you can do it by hand."

So I think that's kinda where my curiosity was sparked and we were using Maya then, too. And they only really kinda showed us the parts of the application that applied to animation. So just the modeling your character, rigging your character and animating them. But there were all of these other functions in the application, like the fluid containers for volume metric flames and smoke and all this other stuff, and I was really curious. I wanted to explore that. So in my free time, I was working on just learning that stuff with ... Shoot, what's that trade school? They had a bunch of DVDs out back in the day in our library that kinda taught you visual effects ... Nodeman.

Joey Korenman: [crosstalk 00:28:57]

Chris Hendryx: Yeah, I was watching those old Nodeman videos on how to do effects in Maya, which luckily they had in the library at Ringling. And so I would check those out in my free time and by the time we got to junior year and they asked us what we wanted to do for our thesis, I was like, "I want to focus on doing effects." And luckily for me they were okay with me doing that, 'cause they tend to try and deter people ... I wouldn't say deter people, but since the school's focus really is on character animation, they want to make sure that you as an individual are capable of doing the character animation and then whatever else you want to do personally. So I think I demonstrated well enough that I could do the character animation and then add all this visual effects stuff on top of it. And yeah, I guess that's kinda where ... More curiosity than anything, is where I got started.

Joey Korenman: Yeah. And do you think that having that background though, even though you fought it and you wanted to just take a sign wave and multiply it times the K-curve or whatever, do you think that it helps to have the knowledge of how to do it by hand?

Chris Hendryx: Oh yeah, for sure. It's like they say when you want to do any field in art, really. Doing research into other types of art only aid in your aesthetic eye and your ability to define what's good versus bad, and help you make something better. So I definitely, I used the skills that I learned in terms of character animation and using the 12 principles in the way that I design my effects animation. Especially since I'm at Disney, we have a lot of the guys who come from the old kinda 2D days. And they even have their own kind of principles of animation that aren't in those Disney ... Oh, what is it? The Illusion of Life and all that kind of stuff, that applies specifically to effects. But it's very much the same thing, it's all about timing and design and composition. So knowing those kind of traditional skill sets definitely help you make better heavy simulated stuff.

Joey Korenman: When you're creating simulation, do you ever just go in and hand animate something? Like a control or something like that? Or do you try to let the computer do the work for you?

Chris Hendryx: Oh, you never let the computer do the work for you.

Joey Korenman: That's awesome. That's the core of the interview right there.

Chris Hendryx: It's always, it's one of those things where it gets you, like 70 to 80% percent of the way, just using the default settings. But to really make it look good, you really have to go in and hand tweak a lot of stuff. So it's always a great foundation, but you never can take just ... You can't just hit the shelf tool for fire and go, "My day's done. I'm out."

Joey Korenman: Right. So you kinda taught yourself how to do this stuff in Maya. And then what happened next? How did you end up as an effects animator at Disney where they use Houdini but you didn't know Houdini?

Chris Hendryx: So I was first, you already mentioned I was at Buck for about two years after I graduated college. And I kind of got to exercise a little bit of my effects skills there. There wasn't a lot of need for effects, so I more tended to do the pipeline kinda stuff. So programming things. And I had applied to Disney way back when I was in school and then I found out later after they hired me that they just didn't have any open positions in the department the entire two or three years since I had originally applied. And when I interviewed with them finally, in ... It is four years ago now, so 2010-2011. They asked if I had a more up-to-date reel and if I knew Houdini at all. And I said that I didn't.

So I didn't get hired straight into the studio, they hired me into their apprentice program, which is usually reserved for people who have just graduated from college. It's different than their internship program, which is people they know are going to go back to school the following fall. This is more of a ... 'Cause I'm sure a lot of your listeners probably have experienced this problem of, you know, a company is looking for somebody, they want an entry-level hire that has five years of experience.

Joey Korenman: Oh it never happens. Never.

Chris Hendryx: Yeah. It's like, like Disney recognized that that's kind of a problem in the industry, like there really isn't a position anywhere for someone to really kinda get their foot in the door. So they have this apprenticeship program where you go in, you do three months of just training with a mentor in your department, and then if you pass that part, then you do three months of kind of minimal production work. So you're actually doing shot work and you're contributing to a film, but you're not beholden to the strict deadlines 'cause they know you're still in the training process. And then that's another three to six months depending on the year. And then once you pass that, you become an entry-level employee within the department.

So I was part of that program and my first three months were just straight up learning Houdini. So they liked my design stuff and the aesthetics that I had demonstrated in my work at Buck, in my work from college and they were willing to take the risk to just see if I could execute that same kind of stuff in Houdini. And then after three months, I did a good enough job and then I passed the second three months after that when I worked on Private Landing 2, and then just been there ever since then.

Joey Korenman: Wow, what a journey. It's like, what a hero's journey. So how much of learning Houdini was just learning this massive app versus having to start understanding things like vector math and all that?

Chris Hendryx: I learned vector math about a year or two after I learned Houdini. It's one of those things, I always tell people who don't work in the industry, it's really funny, 'cause we're doing all of this really math-centric kind of work, with simulations and manipulation of velocities and gravity and stuff. And I've never taken a physics class. So I have no idea how the real world is supposed to work, but as long as you kind of visually understand how things are supposed to look and feel, then it doesn't matter that much.

Joey Korenman: Right, right. So we should take a step back, 'cause I guarantee no one right now except you and I, and I only know 'cause I looked it up on Wikipedia, what vector math is. How would you describe what vector math is?

Chris Hendryx: So it's pretty much ... The best way to kind of describe it, is how stuff moves. So anyone who's working in CG will understand, it'll be a little bit harder for anyone else to ... But it's like if you take a point's position in space and you draw a line from the origin, so zero zero zero to that point, that's a vector. The direction in which an object moves ... So if you have kind of a sphere rotating in a circle and you kind of attach an arrow to the front of it, where the sphere's going to be on the next frame, is a vector. So it's ... Its next position minus its current position is its vector.

And there's a lot of interesting things you can do with those, that's actually how I drew a lot of my Elsa magic curls, you can kind of override a lot of [inaudible 00:37:21] things, like you can multiply that vector, that's how you make something go faster or you make it go slower. You take the cross-product of that and any other vector to figure out what the right angle is, so that makes it really easy to kind of figure how to rotate it a certain way. You can take the dot product to figure out the angle between one vector and another vector, which is really useful. Like if you want to do an [inaudible 00:37:52] of effect, like a cone shape, like you want to effect everything in a cone shape in front of your object, you need to know how to use a dot product, because that tells you what the angle of that object is to the front of your surface. Yeah. I didn't start learning vector math until I was doing Frozen 'cause that figures a lot into how the Elsa magic works. And then pretty much haven't stopped using it since.

Joey Korenman: Gotcha. So I mean it sounds like the actual math isn't that complicated, it's more about just knowing when to use a certain operation, right? Is that accurate?

Chris Hendryx: Yeah, at a certain level. Like my understanding of it, is very fundamental. I know how to use it for the things that I need to do. But at a higher level I wouldn't say ... I don't actually know how to handwrite a dot product equation. I just know how to use a dot product sub inside of Houdini and it does the math for me. All I have to do is provide the vectors and it'll do it. So I know functionally how they will get me the results I need, but if I was going to go into eighth grade math class and do it, I would probably fail that class.

Joey Korenman: There must be some geniuses over there at Disney that are doing way more complex math and actually understand it. Is there like an R&D team doing really crazy stuff with Houdini?

Chris Hendryx: We do have our own dedicated software team. They are three to four guys who are all PhD graduates from various physics and computer science programs and they're the guys responsible for writing programs like ... We had our own snow solver that they wrote from scratch for Frozen, just because at the time there didn't exist really robust snow simulation, application. 'Cause it behaves very differently. Like particles don't have a sense of particle-to-particle collision, so they can't stack on top of each other. They'll always kinda go flat, if you just kinda put them on a surface, and in fluid sims don't behave ... Like if you try to make snow out of a fluid sim, it would turn more into like jell-o. 'Cause it doesn't ... It can maintain mass and shapes but it doesn't have the qualities of sand or snow where it's still granular.

So they wrote that from scratch for that movie and the latest version of Houdini, they integrated their own solver which is very similar, it's called Pop Grains or something like that, which is a particle-to-particle collision surface that has cohesion and surface tension. So you can do sand and snow with that one.

Joey Korenman: Gotcha.

Chris Hendryx: Yeah, they write all kinds of tools and solvers for us really, just whatever we need for a movie that needs to be programmed by someone with a computer science background, then those guys will do it.

Joey Korenman: Yeah, that's pretty cool. You got like a room with PhD's sitting in it, just waiting for problems to solve. So another effect I guess that I would kind of assume would need something like that, are those little Nanobots on Big Hero 6. So for something like that, what's the process of designing that effect, figuring out what the heck it's gonna look like, how does things move and then building rigs for it. What does that look like?

Chris Hendryx: That one I'm a little less knowledgeable about, I didn't get to do any of the microbots on Big Hero, but for achieving the look we have someone in the department who changes from movie to movie who's our visual designer. And if you've seen any of the special features on some of the more recent Disney movies, they'll show little clips from animation dailies where they'll be showing a character or an artist work in progress animation on screen, and then you'll see Glen Keane in the room who's a big animation prodigy for those who don't know. He'll be in the room just doing these draw-overs, kind of explaining how they can really enhance the pose of the emotion or the facial expressions of the characters.

The visual designer in our department is kind of our internal Glen Keane. He's the person who will do initial designs or kind of do draw-overs to help us enhance the look and the feel of different effects. So he was the one that came up with the design language for the microbots. The whole circuit board thing, the rigid rules that the only ways you see them move are in straight lines or 45 degree angles. You won't see them do any other angles, they never do 90, they never do 60 degrees. It's always straight and 45s.

And then we have another really intelligent guy in the department who came up with the rig. He's not on the software team 'cause they didn't feel like they needed a full-on kind of software solution, although they did come up with some little utilities that made it possible for us to create the rigs. But again, it's very similar to the Elsa magic. It was based on guide curves. So you kind of drew a couple of simple base curves that could actually be drawn however you wanted, and then that got processed into this solver that would turn it into straight lines and 45 degrees. So it would kinda do like a poly reduce on it, but really intelligently so it kinda conforms to those specific shapes. And then a bunch of other, like 20 other curves would be generated from that curve, just with small variations to get that kind of circuit board-y, crisscross-y effect. And then each individual microbot would kind of be instanced and animated along those curves. And that's how he got the microbots.

Joey Korenman: Gotcha. It's such an elaborate process. I can't imagine having time to do something like that on a commercial or something, you know. That's the coolest thing about having such a long timeframe. So it says on your IMDb page, so congratulations on having one by the way-

Chris Hendryx: I made that myself.

Joey Korenman: ... You're not supposed to say that. So I saw you also worked on Wreck-it Ralph which is another Korenman family favorite. What did you do on that movie?

Chris Hendryx: That was my first movie so I did a lot of odd little tidbits in that one. Some of the bigger things that I did, I didn't create the rig for it, but I did a lot of the animation with Vanellope's glitching. So in the latter half of the movie, a lot of those glitching scenes I helped out with. I did a lot of the UI kind of interfaces. So I did the UI for Hero's Duty from the first person perspective, I did all of that stuff. I did the escape pod and a couple of other computer monitors along with another artist for the most of the movie. I made a fake Pacman and Galaga game.

Here's a little bit of weird legal history for you. So Wreck-it Ralph and the first Avengers movie were fairly close to each other in terms of release dates. And if you remember from the movie, when they're in the Helicarrier, Tony Stark makes fun of a random crew member on the bridge who's playing Galaga. And they actually cut to him and his console playing Galaga on his screen. So Ralph was going on at the same time and Marvel was owned by Disney at that point and so was this movie. And I thought it was really weird that they told me, "We don't have the rights to actually show the Galaga screen," but Avengers did. Even though we're both owned by the same company. So they told me I had to go in and create a fake Galaga, we were allowed to show the game cabinet. So the game cabinet was all true to life, but the actual gameplay on the screen was just like a really close like Chinese knock-off version of Galaga.

Joey Korenman: And what did you use to create that and the UI animations?

Chris Hendryx: That was a combination of After Effects and Houdini. Houdini is great for doing a lot of the stuff I see people doing in Cinema 4D, which is kind of really simple shapes just rendered with a constant shader so it doesn't react to light. It's just a solid color. And I liked using that more than After effects, because I could actually export it and then render it in Camera, so we had accurate information for our stereo department to put 3D stereoscopic stuff on it. And then After Effects was mostly used for kind of the eight bit games. 'Cause we had a lot of sprites and backgrounds that were given to us from the visual development department and I could just really easy kinda key-frame those in After Effects.

Joey Korenman: Gotcha, gotcha. So let's talk about the Vanellope glitching effect. When I look at that effect, it's not obvious to me what's actually happening and how like ... How was that effect built and how would you control it?

Chris Hendryx: So basically you can bring any model in. So usually kind of Vanellope's character and then it's converted into an asymmetric volume so basically, she's just filled with a fogbox. And then you kind of scatter points inside of that fogbox and a grid pattern so it's a really uniform ... It's not a random distribution. It's very kind of gridlike ... Of points. And then what we did, was we had various 3D textures that use, then we define different areas where we would either show Vanellope's original model or we would replace it with [inaudible 00:48:49] color cubes that matched her texture. So we would instance cubes, say, over a sweater that would match the shade of mint green that her sweater was. Or we would replace it with glowing blue and white cubes or we would replace it with binary code. So just zeroes and ones.

So basically it's just like where the cubes and the numbers showed up, we would just apply a transparency map to her model, so her model would disappear and the cubes would show up in its place. And we kind of just animated those textures so that you would see the cubes and the numbers kind of just moving through her body. And then we were also applying some distortions to her model so that it would kind of ... Like a sign wave, it would just stretch in different directions so it'd look like she was kind of jumping around a little bit. That was kind of the basic method.

Joey Korenman: So it was sort of like a 3D displacement map slash alpha channel slash-

Chris Hendryx: Yeah.

Joey Korenman: ... That's pretty slick. And then, so let me ask you this. This is actually a question that an amazing Cinema 4D artist, his name is Rich Nosworthy, and he's starting to learn Houdini and he was asking about this and this kind of brought it up. So if you do something like that in Houdini and you're taking a model that was like modeled, rigged, probably has a texture map applied in Maya and then you're bringing that into Houdini, but then you're actually gonna change the colors, 'cause now you're gonna have like different objects and this like fog volume thing you're talking about, which has some texture. And then that's gonna get rendered in ... You know, and then you guys have [inaudible 00:50:37]. How do these apps talk to each other? Like how does the color information, the texture information travel from Maya to Houdini to the renderer?

Chris Hendryx: Well like I said, we have our own really thorough render pipeline. So when animation bakes out, the character, really the only thing that's on the character is the position data. So it's just the geometry cache. Because we also, we use Ptex, so we don't use UVs. Or anything like that. Which is a blessing and a curse, like there're times I really wish I had UVs and there are other times that I'm glad that we don't have them at all. But then the shader aspect of it is completely decoupled from the application. So we're not using Maya shaders, we're not using Houdini shaders, we're using something that's independent of both programs, that's agnostic to them, that is again, the proprietary thing that we have.

But a way that I've done it in my own personal stuff, is there's lots of information that you can kind of bake into the model. So if you expert, say, an OBJ or an Olympic which supported in both Houdini and Maya now. You can save stuff like per point color data or you can save the UVs just baked into the model. And when you bring it into Houdini it just knows that that's on the geometry and you can see it inside, you have ways of visualizing it in the view port and inside of the parameter spread sheet, which kinda shows your point-by-point data.

So when you're in Houdini, you can actually manipulate that stuff. You can add additional kind of attributes to your geometry, you can manipulate the ones that already exist using different operators. And then, as long as you're baking it out to the same geometry format, so again, back to OBJ or Olympic, then as long as your renderer knows how to read that information, it's a pretty kind of straightforward workflow. There's a way to go back and forth between the applications without losing any information.

Joey Korenman: Got it. So yeah, the example that Rich was curious about, was something like, let's say you had a model of a car and it was going to melt. And in Houdini you can add, let's say you're tracking the temperature of each point on the model or something like that. And then you want to use that to drive the color of the shader. And you're saying that using OBJs or Olympic, as long as your renderer supports reading that data, you can use it however you want to?

Chris Hendryx: Yeah, it's kind of like when you bake out light maps or ambient inclusion maps or something. It's just data that exists on a geometry. I don't remember the way to get that information in Maya. I know you can in the Hypershade, there's some kind of a ... There's a node that basically will interpret just point information on your model. I'm sure someone knows how to do that. But in Houdini, you can just read any of those. 'Cause it doesn't really care what the attribute is. Like I could point any arbitrary attribute into color, so I could put my point position into the color which would be impossible to see in the view port, but it would do it. So you can take your temperature and you could use that, you could remap it using ramps and stuff. So you could kind of normalize the heat into a zero and one value and then create a little lookout curve that says, "I want white to be the hottest and then blue and then orange and you know, white to black." Kind of thing.

But then again, that depends on your renderer. In that case it would mostly be [inaudible 00:54:36] that would be doing it. But it's probably also possible using Maya's shaders.

Joey Korenman: Gotcha. So you know one of the things that I think, it's just kind of occurring to me throughout this interview, is just like how deep you can go with all this stuff. And it just seems like a rabbit hole and I mentioned before we actually started the interview that I'd been looking at Houdini tutorials and trying to understand it and why it was so popular for effects and I think I get it now. So if someone wanted to go about learning Houdini and I believe that there is actually like a free version you can download now-

Chris Hendryx: I don't know if it's free. I think it's a 100 bucks. But it's still relatively cheap compared to a lot of stuff out there.

Joey Korenman: Yeah, maybe you're right. There's some version you can get, it's not like the 6000 dollar or the 5000 dollar version.

Chris Hendryx: No.

Joey Korenman: But yeah. And now there's even some way of integrating it with Cinema 4D. I'm gonna have to do more research about this. But if someone wanted to dive in. What would you say they should start with in Houdini? 'Cause it's obviously massive. What would be a good place to start?

Chris Hendryx: Now the best place to start would be the sops, so that's kind of that surface operators. That's kind of your basic modeling tools. But modeling is a very kind of narrow definition of what you can do inside those sops. So it's essentially, and for the third time using Maya parallel, it's like you have your, what is it, the history, the geometry history. So it's got that list of every operation you've applied, so it's like you subdivided it and then you deleted a facet and then you extruded a phase and all that kinda stuff. Where eventually you'd want to freeze transforms and that would be your model. So inside those sops, it's basically all of those changes that you made to a model, but you never have to delete history. And then the final node in your chain is the output geometry that you would get. So basically what you would see in the view port. That one is, it's kind of the easiest to understand and is the one that has the most tutorials. Because the way that each section of Houdini handles data is a little bit different and not as obvious.

So Sops works top-down. So you have a node, you plug it into a node underneath it, you plug into another node underneath it and that's how it works. But if you go into dops, which I don't remember what that stands for, but that's where you do your fluid and your fire simulations and stuff, that also ... Like the plugs work in a top-down level, but it processes left to right, which takes a long time to wrap your head around. So when you're familiar with sops and you look at dops, it's not immediately obvious what dops is doing. So that's more kind of a higher level thing.

But I would definitely say, start with sops. And a really great place for tutorials and where I started learning the application when I started at Disney was on Vimeo. If you look up Peter Quint, and that's Q-U-I-N-T, his tutorials are indispensable. As long as you can get over his English accent. I had a hard time trying to figure out what he said, "All right, so now you want to put in the value of nought point nought five." And, so ... "Do you want five or do you not want five? Or ... Oh okay, those are zeroes, just the English version of zeroes. Okay. I get it."

Joey Korenman: What a joke.

Chris Hendryx: So I don't know, as an American it was weird for me to hear zero as nought, and it took some getting over. But his tutorials are better than anything else I've seen and they're really easy to follow and digest and they go really in depth in explaining what's happening.

Joey Korenman: That's awesome. That's killer, that's a great resource. So we're gonna have show nodes and we'll definitely link to that. That's great. I feel like I kinda want to go play around with Houdini now. I don't have time, but if I did, I'd go check out those tutorials. So all right, one more question, one more question, Chris. So what is the most difficult, technically demanding effect that you have worked on?

Chris Hendryx: Technically demanding ...

Joey Korenman: Craziest rig, you know.

Chris Hendryx: I mean, to date, probably the Elsa magic stuff. 'Cause that was one of the things where I was the owner of it, so throughout the show as people found things either difficult to use or wanted additional features, I had to kinda keep updating it as the show went on. And the funnest part about it was, we had been experimenting with a motion capture stage at the studio, which for the most part was used by the lay-out department, so they could get kind of accurate camera movements. So they had a little camera rig with the motion tracking balls on it and they would simulate the camera moves through the scenes, which you could see on the monitor. You'd see how the camera is looking at the actual world.

But we decided to hack the motion tracking rig to let us draw those base curves that I was talking about before. So we actually had just a couple of different, little like ones and essentially like selfie sticks that just have the motion tracker balls at the end. And then we would do, well it'd be really embarrassing to watch, I'm sure, 'cause there's a couple of people who recorded it on their phones, we would just do like little ballet dances in the motion tracking room with these sticks. And those kind of became the base curves, especially for the end of the movie where the entire city is falling. And we had to have these really kind of large curves that would be a real pain in the butt to draw by hand. But it's super easy, 'cause our bodies just naturally make all these really nice S-curves in the air.

So we used the motion capture stage to capture that information, and then just exported as curves. And that took a lot of work to clean those up. Cause motion capture, especially like when you've clued the tracking balls and stuff, it doesn't ... It creates really dirty kind of geometry. But in the end, it was ultimately really rewarding to have, basically see my arm movements become magic in the movie.

Joey Korenman: That is the most complex, like roundabout way I've heard of doing something. It's amazing.

Chris Hendryx: I mean, yeah, probably [crosstalk 01:01:43]-

Joey Korenman: It's genius. It's great. That's really cool. Awesome. Cool. Well, Chris, let me take this opportunity to say that I hope you update your reel soon, because I didn't see any Frozen shots on the one I saw. I think the reel I found was several years old-

Chris Hendryx: Yeah, I don't have anything from Disney at all. I don't think.

Joey Korenman: Yeah. Are you allowed to put that stuff on your reel? You must-

Chris Hendryx: Yeah. Well after the movie's been released in theaters we're allowed to show what we did. I just haven't had a reason to update it.

Joey Korenman: Yeah, gotcha. And I know I said, "One more question," but now I just thought of one more. So where does this lead for you? Is effects where you want to stay for the rest of your career?

Chris Hendryx: This is the first job that I've ever had that I had considered a career out of. I don't have any intention of leaving. But one of my things I wanted to do was, more, probably as in like a freelancer side gig, do kind of more illustration work. And one of my big hobbies is game design and theory. So that's something that, as a fan of CG I have always dreamed about doing, but I haven't taken the steps to make it kind of a practical road to follow. But I mean, I don't know. I'm still young, I could change careers at some point. But-

Joey Korenman: It goes by quick, man. It goes by fast. I mean, it's interesting you say game design 'cause I know Houdini, I think, is starting to be used a lot more in games just because kind of the way it works. It makes a lot of sense for games that need to be procedural or have a million variations on the same thing in them.

Chris Hendryx: Yeah, that's the one place where I would say Houdini is actually not the application I would use at all. Because for a lot of those procedural base worlds like Minecraft and No Man's Sky and stuff like that, those pretty much have to be coded from scratch. So they're essentially creating their own Houdini in that sense of building a procedural world.

Joey Korenman: Oh my God.

Chris Hendryx: Yeah.

Joey Korenman: And if someone wanted to pick up a little coding, 'cause obviously you've got some coding under your belt, what would you recommend they learn? Like which language?

Chris Hendryx: In the VFX industry, Python is definitely the go-to. That's really easy to kind of pick up and understand and the syntax is very simple. And it's the ... At least every major program I know of has a Python API, so like Nuke, you can Python script in, Houdini you can Python script in, Maya, you can Python script in, I'm fairly certain you can do it in Cinema 4D, I know you can do it in 3D S-Max. So it's one of those things where you ... I learned it in the context of Maya. Like Mel was starting to get too restrictive, so I learned how to do Python inside of Maya and then from there, once you understand how the programming language works, you can apply it to other applications or just stand alone programming.

Joey Korenman: Cool. Yeah, you definitely can use it in Cinema 4D, no After Effects though, as far as I know.

Chris Hendryx: No, none of the Adobe applications have it.

Joey Korenman: Well, maybe they'll get on that. Awesome. Well Chris, thank you so much. This was by far the geekiest interview that I have done today. This was awesome man.

Chris Hendryx: I was glad to make it as geeky as I could.

Joey Korenman: When I was teaching at Ringling, one of the things that kept coming up with students, especially underclass men, was the idea that the only reason their work wasn't actually as good as they wanted it to be, was because they didn't have the right plug-in or the right software and, "Shoot, why don't we have Houdini here at Ringling? Then I could really make my masterpiece." There was something Chris said in this interview, which really hit home. And it was, "You never let the computer do the work." Right? It's not the computer, it's not the program, it's you. It's the artist, if your vision isn't good and your design sets and your animation skills aren't good, it doesn't matter if you're using a free app you can download off the internet or if you're using Houdini which is thousands and thousands of dollars. It does not matter.

So what I hope you took away from this interview is that it's not just the app, as cool as the app is and as great as it might fit into the pipeline. It's also the artist and it's the skill and the brain behind the keyboard and the mouse or tablet or whatever, that's actually making the beautiful work, all right? And also I'd like to say too, I'm really interested in Houdini, I really am a huge software geek. It seems like something that might be really fun to play around with and there might be some interesting new opportunities it opens up. It's not gonna do all the work for you, but it might be fun.

Chris Hendryx: However, I don't really have a lot of free time for Houdini. So if any of you actually go out there and you learn a little bit of Houdini, I'd love to hear what your thoughts are. Please leave a comment on the page where this interview lives, on schoolofmotion.com, and if you dug this interview, there are other interviews just like it, with brilliant artists on School of Motion, along with a lot of free content for all to go through and learn from. So I want to say thank you for listening, I hope you enjoyed it and I will catch you on the next one.

EXPLORE ALL COURSES

Dive into real-time 3D with our Unreal Engine beginner's course by Jonathan Winbush. Master importing assets, world-building, animation, and cinematic sequences to create stunning 3D renders in no time! Perfect for motion designers ready to level up.

Explore this Course

Unlock the secrets of character design in this dynamic course! Explore shape language, anatomy rules, and motifs to craft animation-ready characters. Gain drawing tips, hacks, and Procreate mastery (or any drawing app). Ideal for artists seeking to elevate their craft.

Explore this Course

Elevate your freelance motion design career with our guide to client success. Master a repeatable method for finding, contacting, and landing clients. Learn to identify prospects, nurture leads, and develop a thriving freelance philosophy amidst chaos.

Explore this Course

Rev up your editing skills with After Effects! Learn to use it for everyday needs and craft dynamic templates (Mogrts) for smarter teamwork. You'll master creating animated graphics, removing unwanted elements, tracking graphics, and making customizable templates.

Explore this Course

Stand out with Demo Reel Dash! Learn to spotlight your best work and market your unique brand of magic. By the end, you'll have a brand new demo reel and a custom campaign to showcase yourself to an audience aligned with your career goals.

Explore this Course

Illuminate your 3D skills with Lights, Camera, Render! Dive deep into advanced Cinema 4D techniques with David Ariew. Master core cinematography skills, gain valuable assets, and learn tools and best practices to create stunning work that wows clients.

Explore this Course

Master After Effects at your own pace with Jake Bartlett's beginner course. Perfect for video editors, you'll learn to create stylish animated graphics, remove unwanted elements, and track graphics into shots. By the end, you'll be equipped for everyday AE needs and more.

Explore this Course

Revolutionize your Premiere workflow with customizable AE templates! Master creating dynamic Motion Graphics Templates (Mogrts) in After Effects to speed up your team's work. By the end, you'll craft easily-customizable templates for seamless use in Premiere Pro.

Explore this Course
Your download is in your inbox!!!
Check your email (spam, too) for the download link!
Please check the spam folder if you don't see the message within a minute or two. Google likes to hide your downloads, sometimes.
Oops! Something went wrong while submitting the form.

Not sure where to start?

If you’re a beginner, here are some great courses to help you get started:

After Effects Kickstart

Dive into the fundamentals of motion design with our most popular (and recently updated) After Effects course.

LEARN MORE

Photoshop + Illustrator Unleashed

Master the basics of Photoshop and Illustrator and gain invaluable insights in this introductory level course.

LEARN MORE

Design Kickstart

An introduction to the design principles behind all great work.

LEARN MORE

More Advanced?

If you’re a more advanced student looking to up your game, here are some great options:

Animation Bootcamp

Learn the art and principles of creating beautiful movements in Adobe After Effects.

LEARN MORE

Design Bootcamp

Learn to design for motion in this intermediate-level, project-based course.

LEARN MORE

Cinema 4D Basecamp

Learn Cinema 4D from the ground up in this exciting introductory C4D course.

LEARN MORE

Now is the time to learn the skills you need to advance in your motion design career: