Thursday, January 8, 2009

Interview with Jill Ramsay [Alias Maya4.5]

AliasWavefront's Jill Ramsay is the director of Brush-based technologies and a Maya Product Manager. She has, over the years, spent a lot of time on the discussion groups answering questions from the Maya community after hours, earning her "hero" status among users of Maya. She is Product Manager of Fluid Effects, the new Maya 4.5 Unlimited module that allows the creation of fluids, oceans, smoke, and so on. She spoke with us about the creation of the product, how it has evolved, and gave us some insight into the way functionality gets added to Maya.
Perry Harovas Please give us some background about how Fluid Effects came into being in its present form.
Jill Ramsay Jos Stam has been sort of playing around with various fluid solvers for, I would say, quite a number of years. I saw some 2D fluid solver technology being prototyped by Jos and the rest of the research department at least two and a half years ago. He started with just a touch screen prototype in 2D where you could swirl an image around in a fluidic manner using the 2D fluid solver. So, we decided when we were planning Maya 4, that this was something we would like to investigate. We started working on it as a product before Maya 4 shipped, actually, but we continued through the Maya 4 process into the next release of Maya, version 4.5, to actually bring that out as a product working with Duncan Brinsmead, who of course is taking care of the rendering side of things for us.
Perry Harovas I've been very interested in fluid dynamics for years, and in the last six months or so I've read everything that Jos has published. What I've garnered is that he's taken something that was very "researchy," if that's a word, and figured how to kind of stabilize it so that you can use it in a production environment
Jill Ramsay That sounds correct to me. Yeah, certainly one of the hardest challenges in fluids is to keep the solvers stable and to have them not, you know, freak out and go beyond their limits. Although Fluid Effects is physically based and to a certain extent the simulations are physically accurate, that is not the most important thing when you're working in the production environment. True physical accuracy is not necessarily what's required—it's simulation of something that looks good and feels good and can be calculated in a reasonable amount of time. So it does, as you say, take that from a pure research and scientific topic into something that is useful for a production environment.
Perry Harovas And, you know, if it looks right, it is right, basically.
Jill Ramsay Exactly, for us. Whereas, if you're making aircraft wings, it can't just look right; it has to be right, or somebody's going to crash.
Perry Harovas How does Fluid Effects work so quickly? Is it because it's not 100% real-world dynamics based? Or did Jos have to sacrifice a few small animals?
Jill Ramsay (laughs) Well, we have two Navier-Stokes solvers within Fluid Effects. We have a 2D solver, which is very, very fast, and of course in real life there's no such thing as a 2D fluid. So, yes, in that sense we get a lot more speed because it's not truly realistic. And we have the 3D solver, which is a lot slower to simulate. It's still much faster than what's been done in the past in true Navier-Stokes simulation. And that is down to sacrificing small animals and having incredibly brilliant people working for us, which is wonderful!
Perry Harovas That actually leads me to another question which is, what is the memory hit for rendering Fluid Effects? Is really going to tax an animator's computer?
Jill Ramsay Well, yes, it will, unfortunately. We have this concept of grids—if you can imagine a grid of voxels which hold the data—and for every sort of fluid attribute that you want to simulate dynamically, such as density, velocity, temperature, and so on, you need a grid of voxels in memory. That is quite computationally intense and quite memory intensive. So, yeah, you're going to need a decent system to run fluids on.
Perry Harovas And that brings me very nicely to another question, which is: Can Fluid Effects be used fairly interactively on a G-Force card, or are we going to need something heavier?
Jill Ramsay I haven't personally tried it on a G-Force card, but I don't believe that it's particularly dependent on overlay planes or anything like that, which is the only area in which G-Force cards tend to fall down. So I should imagine you'd be absolutely fine with a G-Force card. But that is something we need to try.
Perry Harovas I will be trying it very shortly. And as a side note, which has nothing to do with the interview, I feel like I'm going to get the shakes if I don't get the Maya 4.5 beta soon!
Jill Ramsay I know, I'm sorry! I must say as well, this is totally normal. This is what happens with beta. I mean, what happened today is that we were just about to send the thing out the door and we found a really nasty crash. So that means that the bug has to be found, the code has to be either backed out from what was causing it or fixed, and then the betas have to be re-released and then re-verified by QA. So that immediately puts another two days on the schedule.
Perry Harovas Well, that's preferable than having everybody crash immediately

Jill Ramsay Well, the thing is, it's beta, so there will be problems, but we don't want a problem that is going to stop people from beta testing, from getting anything done. That's not helpful. Actually the bug has nothing to do with fluids; it's something else. But you know it's a piece of code, and we have to make it reasonably usable in beta.
Perry Harovas Right, which actually is a good lead-in for the next question, and this is something I think to all our readers has been kind of misunderstood and ethereal, as it certainly has been to me: How does a major new module get added to Maya? Considering Maya's size already, how do you go about actually creating a way for a user to interact with a new module and than hook up all the things that module needs to access? It seems to me that you do all these things, everything has a ripple effect, and you have to go back and decide "was that a good move or not a good move." It seems like it's quite an involved process.
Jill Ramsay You're absolutely right; it is a difficult thing to do. And one of the things that we try to do within Maya is to have the various parts of the software work well together with other parts of the software, and that's, as you say, increasingly difficult the larger the software gets. So, for example, with Fluid Effects, we'd start off with a prototype—and the prototype would generally not even be within Maya. And, for example, Jos's work was not done in Maya; it was a stand-alone prototype. Then we have to get someone to build it into Maya. What usually happens is, it starts off with some incredibly rudimentary and rather bad UI, and we then put it in front of our in-house user community. We have product specialists working on the team who first of all sit down and try to play with it, and then, basically, it's weeks and months of trying to refine the UI and come up with concepts.
For example, you'll see when you get the code, we came up with the concept of having a container and then the fluid stuff that goes inside it, and that wasn't originally there in the UI. We were having a terrible problem in getting the concepts of what was the fluid and what was the space around it sort of thing. Finally, over a period of time, we had several trials and meetings with the user community, and we suddenly hit on this: well, what if that outside thing was called the container and then we sort of talked about different ways of filling the container? And suddenly it all fell into place, and then the UI was developed around that. And when we'd done that, we found that users who were exposed to it for the first time were much more able to grasp what was going on.
So, it's really a sort of trial-and-error thing. And we're still not done of course. Next we send it out to people like yourself in the beta community and see how they get along with it. Because we become familiar with the concepts over a period of time, it's not easy for us to see how hard that is for a first-time user. You know, we need to constantly expose the product to fresh blood to see how users react. But Fluid Effects particularly was very, very difficult because it is a difficult concept to understand in real life. So, yeah, a lot of what we do is trying to get that right. It's a difficult process
Perry Harovas You said that the next stage is sending it out to beta teams, although in many ways it sounds to me like your hands are tied because you've had to feature lock before you send it out. And so anything that's fundamentally wrong with it that is found by the beta team is an integral part of it now.
Jill Ramsay Well, you've got a good point. If it would require an entire rewrite, it's not going to happen, and we have to rely on the fact that our own internal user base would've found something that was that bad. But if we find that our beta sites don't understand this term or this concept, we can try to fix the UI to make that better, and we certainly will do that.
Perry Harovas OK, geek question, now: Can we finally do pyroclastic clouds? And more important probably, can we fly through them in a nice, smooth way?
Jill Ramsay Yes! There are certain Fluid Effects that we won't be able to do with the first release, and people will be disappointed about that I'm sure, like pouring water and that kind of thing. That's not something we'll be doing in the first release. But atmospherics, clouds, really nice pyroclastic effects are exactly what we will be able to do, and Duncan's already done some interesting renders and tests. I must warn you that render times are not going to be super fast on this, though, and that's one thing that we validated with some customers before we began this project. We asked if it was it okay if render time was going to be fairly significant, and the feedback we got was: it's okay as long as I can get some good interactive feedback of the motion and what's going on before I send it off to the render farm.
Perry Harovas With AliasWavefront opening up basically unlimited licenses and with hardware being so cheap, that's less important. I concur, basically, it's less important than interactivity in production.
Jill Ramsay Right, that's what we were told. So, yes, I think you'll be very pleased with the pyroclastic sort of effects that you can get.
Perry Harovas I think that's been kind of the hallmark for Maya since day one, because I was a PowerAnimator user before I was a Maya user. I really struggled for quite a long time with slow updates of IK and things that weren't the fault of AliasWavefront, or actually at that point Alias. At that point the code was 10 or 11 years old. It was code piled on top of code, and when Maya came out and the speed and interactivity of every element of it was apparent, that was the thing that drew me to it and drew a lot of people to it. And it looks like you're keeping that up and that's remained a focus
Jill Ramsay Certainly. And we're doing everything we can in that respect. It is tough. I heard that there are some people who sit in a room waiting for computational fluid dynamics to solve with their industrial software at the rate of a day a frame. So, anything we can do that is two seconds a frame is certainly a great advance there. Our 2D solver is great. It's more or less real time, but 3D is slower. I'm not going to pretend to you that it's not. And you may well have some frustration with that. But it's all on a relative scale of what you're looking at in the outside world to do this kind of thing.
Perry Harovas How does Fluid Effects differ from some of the other fluid plug-ins for Maya, such as Arete and RealFlow?
Jill Ramsay It's a matter of integration, really. With Fluid Effects, if you want your fluid to drive the particles in your scene, you can have that happen. If you want it to affect soft bodies, you can have that happen. If you want your character to walk through and disturb fluid, you can have that happen.
Perry Harovas Is the rendering of the fluids an embedded renderer within the normal Maya renderer, or is it one that's maybe been optimized for volumes? Or is it just an extension of Maya's native renderer?
Jill Ramsay I would say that it's an extension of Maya's renderer.
Perry Harovas It's not a post effect?
Jill Ramsay Not a post effect, no. It's within 3D there.
Perry Harovas I can hear people cheering right now that it's not a post effect.
Jill Ramsay Me too!
Perry Harovas Even though they're both fantastic for what they can do, their limits, I think, drive people a little nuts.
Jill Ramsay I'm sure they do.
Perry Harovas But I think unreasonably so in a lot of ways, because people are given this great technology, and Alias doesn't make any false promises as to what it is or what it isn't. They just say this is a new technology, this is a way that we found to do it, and here are the workarounds to doing it. And then immediately a lot of the response is, "Well, how come it can't do A, B, and C?" And I think part of why this new technology is so cool, if we're talking about for instance Paint FX, is it's a new way of doing something that enables us to do something we could never do before, and we have to make certain sacrifices to be able to do it so quickly (or even at all).
Jill Ramsay I think that's true. And I also think that if we were to spend the time making it do what they want it to do, which would be, "Okay, you don't want any other features for 4.5 at all, we're just going to make Paint FX not be a post effect," we probably still couldn't even do it. But say we did. Many people would just say, "All right, thanks. So how come there aren't any other features?" That's what's really frustrating, because it's just… don't you get how long it takes for us to do that?
Perry Harovas Well, that was the response for Maya 4. People said it's basically a large bug fix
Jill Ramsay Yes, despite the fact that what everybody asks us to do again and again and again was to fix the existing stuff.
Perry Harovas I'm probably going to be accused of being an employee of AliasWavefront, but I've always been—to the degree that I can be as a user of the software—sympathetic to the challenge that it must be to try to make everybody happy all the time, which is absolutely impossible.
Jill Ramsay Totally. I must say sometimes we do get a little fed up because we can't do anything right. If we lower the price, the people who just bought it complain that we've taken away their value. If we don't lower the price, we're gouging. Sometimes there's just nothing you can do. It's quite frustrating.
Perry Harovas I know there's a reason that Maya's used in so many production houses out there, and I really think that reason is the value it brings…you can get software cheaper, but can it do the same number of things? And is it as open? The answer is no. And developing technology like that is expensive. And that also takes time to develop. And I think if you own a CG facility, you're keenly aware of how long it takes to do things, what things cost, how much of a value you have to put on human beings that are working for you, and how long it takes those people to actually do something for you.
Jill Ramsay Absolutely.
Perry Harovas It's almost like a dynamic effect. I'm such a geek that I always relate it back to CGI, but the people that are working for you in a company, especially a company as massive as AliasWavefront, they kind of feed off each other. If one person does something that causes a ripple effect, everybody else is affected. And there's an ebb and a flow in a company like that, much like a particle (or fluid) system! Nobody works in a vacuum.
Jill Ramsay Absolutely. That's so true.
Perry Harovas Could you describe what the brush-based technologies division is, and also what it might be in the future? You know, what types of things you're looking at to try to bring that kind of paradigm to the rest of Maya
Jill Ramsay Well, we have two types of brush technology in Maya at the moment. There's Artisan in all its various guises, and there's Paint FX. And in version 4 we re-architected Artisan, and we began to port over the tools to the new architecture. We were immediately able to see the benefit of that because we could now paint in fluids. One of the reasons for the port was that Artisan was written as a very NURBS-specific tool, and it was hard to extend it to work on other surface types. We expended a lot of effort to make it work on polys, and we started to expend an equivalent amount of effort making it work on SubD's, so we realized that wasn't the right thing to do. The right thing to do is to re-architect Artisan so it's surface independent, and so that's what we did. I sort of managed that whole process
Basically we see the brush-based paradigm of Artisan as just being part of Maya wherever you go. There are now something like 13 Artisan tools within Maya. People originally seemed to think it was just a sculpting tool. That was the one they grabbed hold of and they could get their head around. But that was just one of 13 tools in there. So whatever new feature we put in, like we put in fluids, the obvious way to paint velocity or to add velocity directions into your fluids is with a brush; so we have Artisan painting velocity within fluids now. You can paint down the temperature where you want the fluid to heat up, and we have that working quite nicely. The same with Fur. The way that we can comb the hair in Fur I think is one of the coolest things about Maya's particular fur implementation. And cloth—if you want to paint where the stiffer part of the material is, you can use the brush to do that. And it's a natural paradigm, something that we want to keep building on.
Perry Harovas Could you be more specific as to how Maya particles can interact with Fluid Effects, and does it really make particles obsolete?
Jill Ramsay No, it certainly doesn't make particles obsolete. What we can do is connect a fluid to a force, and then connect the particles to the fluid. So, what that allows you to do is to mix the two types—have the particles be carried along with the fluid or in fluids by the motions of the fluid.
Perry Harovas Could you tell me about the different ways to surface fluids, one of them being, I guess, the poly display, and how much is that tied into the rest of Maya? Meaning can you apply deformers to the poly fluid and do all the rest of the poly tools work on the poly version of the fluid, et cetera?
Jill Ramsay Well, if you convert to poly, it's simply a poly. So you can do anything you like with it at that stage. It's not a special type of poly; it's just a poly. You have three kinds of surface types inherent in the fluid itself. There's either a soft cloudlike volume with no surface—it's just a volume right through; then we have a hard surface, which is more like a blobby type of particle surface, for things like say mercury or ice or that kind of thing; and there's something called a cloud surface, which has a softness on the very edge so you don't get that sudden cut-off where a voxel is either on or off or full or not full.
Perry Harovas With regards to the poly fluid, what happens to the UVs as it's being created?
Jill Ramsay Now this is one area in which we do have a limitation right now. There are no UVs on the fluid. There are UVWs, and it's not super straightforward to extract UVs from that. So, the UVs—god knows what sort of UVs you get, you probably don't get anything on the fluid on the poly that comes out the other end. [Jill tests the UV's on her computer.] Yeah, there are no UVs. One of the nice things though with the fluid is you can actually simulate the UVs also. For example, if you've got a texture on say lava, you can pull the UVs along with the fluid so that they move naturally with the fluid, which is what you'd expect. If the UV stays still, obviously the texture is going to sit there, and the fluid won't move through it, which wouldn't look realistic at all. Also, you can animate or move the texture node itself. You can texture the opacity, the color, and the incandescence of the fluid with a Perlin texture, which is one of the ways you get more detail in the fluid without upping the resolution usually.
Perry Harovas It's a Perlin noise texture, but it moves and flows along the fluid itself.
Jill Ramsay Yes, you can turn that on. The only issue with that is you can't move it too far because the UVs get stretched beyond all recognition from their original position, and then they start to get very stringy. If you want the texture to move a really long way, you also animate the position of the texture placement. You'd move that along with it rather than just try and move the UVs, because the stretching would be extreme.
Perry Harovas Can you use any texture on a fluid?
Jill Ramsay I know it's definitely a very bad idea, and I'm not sure whether we have made it impossible or just recommend that you don't do it. There are other ways to texture, though. You could use the fluid as a texture on something else. So the fluid could be a texture without actually being a fluid in both 2D and 3D, which is kind of nice.
Perry Harovas Oh wow.
Jill Ramsay So that's another very cool thing that you can do with this that I really love. It's the nonrealistic fluids, so things like…have a fluid go dripping around simulating and doing stuff and then use that as a texture on a logo or something for a company sign. Very cool. You can get some effects that just obviously you would never normally see. Some real "fluidy" motion going on, which is a lot of fun as well.
Perry Harovas How does that specifically work in 3D? Is there a conversion process?
Jill Ramsay It's a solid texture in that case. If you use a 3D fluid, it acts as a solid texture. If you use a 2D fluid, it acts as a 2D texture.
Perry Harovas And Maya takes care of slapping that texture on whatever you're putting it on?
Jill Ramsay Yes. You'll see in Hypershade that when you go into the 2D textures, there's a new texture type called 2D fluid, and if you go into the 3D textures, there's a new texture type called 3D fluid. Once you create that, a fluid appears in your scene, and you can do all the things you would normally do to it, but it gets applied only as a texture.
Perry Harovas Now for the obvious—I'll give you the history on the question. I did an effect for a film five or six years ago that I was never happy with. It was a tornado. This was right at the time Twister came out, and we were asked to basically combine a tornado and the Tasmanian devil. And having just read that, I'm sure anybody else would know that that's never going to come across as something interesting. It was a failed effects shot. So I'm of the mind to redo, every few years, some of the things that always annoyed me about my previous projects, and one of them is redoing this twister. To make my life easier, how many presets are you planning on shipping with the product, and are there any tornado presets? (laughs)
Jill Ramsay (laughs) The thing is, Duncan will do all the presets at the last minute—that's what happened with Paint FX. We all stressfully slaved away and managed to get two or three or five each, and then Duncan came along at the last minute and put 300 in. We're kind of hoping for a rerun of that, although it won't be 300—these are much more time-consuming to create than Paint FX brushes, which if you know what you're doing you can create in two minutes each. So I would hope that we can have at least 50. The other thing we're doing is, we're going to have them all available on the website, and hopefully we're going to have a link within Maya directly to the website to go and get them, which will be really fun.
Perry Harovas And I imagine that some of your presets are going to be things that if somebody wants an explosion, they have an explosion and it's ready, but other ones may be just instructive in nature.
Jill Ramsay That's absolutely correct. There are two reasons for the presets. One is to just get people started and give them some things to play with, and the second is to say, "Here's what we're doing here. This is the way that we've put this together." And the chances are you won't use that actual preset, but you'll learn from it how to do something on your own. There are a lot of really cool texturing tricks that only Duncan knows, so we have to make sure we get one of each of those in there at least.
Perry Harovas Speaking of Duncan, where did Jos leave off and Duncan start?
Jill Ramsay Well, Duncan has really done everything apart from the actual solver, the actual Navier-Stokes solver. So he's done everything else, even implementation within Maya. We have teams of people working on it. Julia Pakalns follows along behind and cleans up the mess after the geniuses. Julia is amazing. She's sort of a technical team lead and does all the grunt work, although she's fairly genius-like herself. Duncan and Julia have worked together to actually implement the stuff right within Maya. But Duncan really understands what's going on in there with the way these things appear in the render. Rendering is a big chunk of what fluids is all about. Lighting and rendering—he put the volume lights in so that they can interact nicely with the fluids. And all of the ramp shader stuff—which you saw in Siggraph I presume?
Perry Harovas Yes. Please elaborate, though.
Jill Ramsay The ramp shader stuff is just a way of defining attributes that Duncan has implemented. He did it for fluids, but as a result we have these things all over the place. We have a ramp shader on its own, which has nothing to do with fluids, that you can use for toon shading and all sorts of things, which is really cool.

Perry Harovas What is the Ocean Shader? The results look better than The Perfect Storm in many ways, which is amazing in its own right.
Jill Ramsay The Perfect Storm was a combination of many different effects—particles, shaders, all dynamics, and god knows what else. The Ocean Shader is purely a shader, so what you see in those effects is a plane and a shader. That's what's incredible about it. It's just really amazing.
Perry Harovas And I saw foam being generated. That's all part of the shader?
Jill Ramsay That's part of the shader, yeah.
Perry Harovas Has anybody checked his DNA to see if he's really human?
Jill Ramsay Oh, we know he's not human. We've known that for a long time! (laughs)
Perry Harovas Well, Jill, I want to thank you so much for talking to me, and the one thing I wanted to get across to you for a long time is this: I've read your posts—everybody has read your posts—and can't believe that you are actually human. Because you answer questions left and right when it seems that you should have gone to sleep long ago We all really appreciate the input into the Highend3D board and the listserv and things like that. It's just quite amazing. And you're definitely an asset to the whole Maya community.
Jill Ramsay Well, that's very kind of you, Perry. I really appreciate that, and it is nice to hear, because sometimes you only hear the bad news.
Perry Harovas I have a feeling that Maya 4.5 will change a lot of that!

Have a Story/ Interview tell us and get on the Post

No comments:

Post a Comment