Remembering Ruby’s Saloon, and how it helped make Maya
By Ian Failes
“Three to four months before SIGGRAPH, it was complete hell. Because it was all night, all week until the demo. We were working on pre-release alpha software that wasn’t ours yet. The render didn’t work. The dynamics would blow up half the time.” – Corban Gossett, Maya product specialist
If you were lucky enough to be one of the first users of Maya back in the late 1990s (then an Alias|Wavefront product and now an Autodesk release), you probably came across Mel the cowboy and the short he starred in called Ruby’s Saloon. They were part of the demo scenes produced by Alias|Wavefront’s team to help market Maya and to bug test the new software, which had grown out of Alias’ PowerAnimator and Wavefront’s Explorer before those two companies merged in 1995 after both were purchased by SGI.
Making a CG short film like this had, up until that point, really only been the domain of studios such as Pixar. Which made Ruby’s Saloon a notable achievement, especially as it was produced alongside the gradual development of Maya. What’s more, since it was a demo film, it and the features it promoted had to ‘work’ at notable trade shows and at customer sites.
vfxblog spoke to several members of the main team of Maya ‘product specialists’ – Kevin ‘Bubba’ Lombardi, Corban Gossett, Adrian Graham and Jason Schleifer – who worked on Ruby’s Saloon and demonstrated Maya as it was being written and rolled out – now more than 20 years ago.
Assembling a team
Kevin Lombardi: I became one of the lead demo guys for Wavefront which was in Santa Barbara. SGI came along and then Alias and Wavefront were merged together to become a wholly owned subsidiary of SGI. At the time, both Alias and Wavefront were working on their own versions of what we were all calling our ‘next generation’ animation systems.
Corban Gossett: I was working at Wavefront as a senior project specialist. Alias and Wavefront were obviously competitors. Wavefront was working on a next-gen system called Twister, and Alias was working on a next-gen system called Maya, ie., they had already started Maya. And then one happy-go-lucky day we all merged, and we’re one big happy family. They flew us all up to Toronto, where Alias was based. Literally, the entire company all flew up to Toronto and we did this big unveiling. We basically showed Twister, which was more around the character animation and dynamics because, we had had animation and Dynamation.
Adrian Graham: I started at Alias as an intern and after working there for five months, they hired me full-time as a ‘product specialist’ to build demos and give demos and train the customer engineers. Actually, three weeks after I joined, the Alias|Wavefront merger happened. At that point, you could see the battle for supremacy amongst which software was going to become the next-gen software but, they ended up pulling details from Alias’ PowerAnimator and from Wavefront Explorer and TDI and they sort of cherry-picked the functionality from each of those and it became the basis of Maya.
Jason Schleifer: I had been at Wavefront as an intern just as Maya was first getting started. So I think I started the week after SIGGRAPH New Orleans 1996 where they showed the ‘Gunbot’ demo. My job was to basically just test Maya as much as possible for the dynamics team. So I was doing that, and I was not a dynamics guy, but the stuff was pretty easy. Then I got hired on the support team.
Kevin Lombardi: I remember one of the first Alias|Wavefront user group meetings, suddenly there’s 3,000 people in the room. One of the first little animations we did was we had this robot that used IK animation, and we showed it walking across a surface, and using dynamics, and it kicked a trash can, and the trash can went bouncing across this little stage that we built, and then we put a little polygon up above and made it rain particles down below. And it was all hardware graphics, because the very first version of Maya that was developed didn’t have a renderer.
Corban Gossett: It’s interesting because we had all been working separately on new software, as I said, the one at Wavefront was called Twister.
Jason Schleifer: I think the Wavefront guys were saying that the goal with Twister was to be able to have a character on a skateboard, holding a rope, and then you could pull the rope which would affect the character and then his friction on the skateboard would move the skateboard forward, and the wheels would move properly. Which is still hard, dammit!
Corban Gossett: We then merged and what became of Twister was rolled into what became of Maya. We kind of took it a few steps back. We kept Maya as kind of the core, but we integrated the animation and dynamics side from what was Twister, as well as the scripting language, which was what used to be called Sophia, which was the Dynamation scripting language, but then turned into Mel.
Kevin Lombardi: What the companies called the group of us were the product experts, because we were either experts of the Wavefront software, or Alias software. And so we were tagged as the group that were going to become the Maya experts, and we were kind of working closely with the developers to help design workflows and pipelines and UI designs and basically the sequence of buttons that you would click to make something happen. It was all about the user experience and how we, as artists, and not being programmers, really want an artist’s tool to be presented to us and make us more productive.
The birth of Ruby’s Saloon
Adrian Graham: We wanted a clever way to show all the different components of Maya as it stood at that point. We wanted to incorporate animation and deformers and effects and set driven keys and the interactive viewport. The fact that you could turn on lighting and the viewport was a big thing – up to eight lights at the time!
Corban Gossett: The idea was that we wanted to do an internal short that we could use for demo materials to kind of show off the new features of Maya – what Maya was. We had started showing Maya a little bit to special customers. It wasn’t a big secret that we were working on this next generation thing. But nobody had really seen it up front and centre. We hadn’t announced it at SIGGRAPH, we hadn’t done a big dog and pony show. And so Ruby’s Saloon was meant to kind of be this like, ‘TA-DA!’
Jason Schleifer: Remember, you did do a pre-show of the Gunbot at one of the SIGGRAPH conferences.
Corban Gossett: That’s right. We had shown Maya a little bit.
Jason Schleifer: Like, an announcement of ‘this new technology we’re working on.’
Corban Gossett: Yes, because at that SIGGRAPH they announced Maya and said we were going to ship within a year. It was like, ‘Holy shit!’ And then of course three years later, we actually delivered. But, we did show the Gunbot, which was a model that Jeff Bell had modelled and we animated.
Jason Schleifer: The big excitement was that you could move the two legs and the body. And you guys put an expression on the body to keep it halfway between the legs. So you’d move the legs like that and the body would move, with a little bit of tilt. And everyone was like, ‘What the?!’ Everyone blew their fucking shit. It was crazy.
Corban Gossett: Bubba – Kevin Lombardi – was the top demo guy back then and we had brainstormed on coming up with an idea and the whole thing really was a Rube Goldberg kind of contraption. That was the whole Ruby’s Saloon idea.
Kevin Lombardi: I don’t know how I thought of this, or I don’t know if I was the only one who thought up a Rube Goldberg contraption. I just stole ideas off of various Rube Goldberg designs that I had seen. Like, you fire something at a target and it hits a rotating arm, that makes a match strike a flint and the match lights up something. In this case, the fuse on the rocket that pulls the door off of the bird cage, which releases the bird. It’s all those things I had seen used in other contraption designs, looking through the Rube Goldberg encyclopaedias that we were researching at the time.
Adrian Graham: Maya’s new tools were a perfect match for a Rube Goldberg contraption. You could totally overwork it to however you wanted.
Kevin Lombardi: And so I sat down with the guys and we started to storyboard something, and it all started with, what if a cowboy walks into a bar? And seriously, that’s kind of how it began. Those guys always tease me because I was a big country western music fan, and I was kind of into country music. One of my exercises to test the modelling was that I built a little cowboy. A little fat, tubby, blonde haired, big moustached little cowboy, and he didn’t have a name, and of course we didn’t render him because it was just hardware rendering that we were using at the time.
Corban Gossett: How I remember we got a cowboy was…
Jason Schleifer: …Bubba wanted chaps.
Corban Gossett: But, you know, I think part of it is, what we wound up doing is – some of this came out from a feature. So, for example, with chaps, which were basically these tubes that we used artisan and lattices to form. And we started to build chaps and it’s like, oh and we can build cowboy hat. And then it’s like, ‘Oh, well, let’s build cowboy.’ It showed one shape and it was a bunch of tools that were new, so, back then, that we kind of take for granted today. And so we started building Ruby’s Saloon.
Kevin Lombardi: Unforgiven was my favourite movie at the time, if you know that western movie with Clint Eastwood, and so that’s where I got the idea to model the inside of the bar/whorehouse. And so I always wanted to animate the cowboy to look sort of like Yosemite Sam, that really exaggerated, snappy animation that uses deformations and breaking lines and profiles. And the guys were against it, because they wanted to do something a little bit more traditional, but anyway, we all sort of pitched in and did our own thing. Jason animated a walk cycle, I animated the guy kicking the door down, Corban animated the dodo bird, and we sort of all just took ownership of different parts of the sequence and then put it all together.
Jason Schleifer: I was actually working in support at the time, and one of the things that we did was we would always – there were dog and pony shows to try and keep developers excited. So I would do little dog and pony shows showing how I was using Maya, using Mel, and stuff like that. And during one of those all-hands meetings, where we were doing dog and ponies, Bubba and Corban talked about Ruby’s Saloon. Bubba showed the saloon that he had modelled and I think had a model of the cowboy, like spin around. And he was like, ‘We’re doing a short film.’ And I was like, ‘What the fuck? People are doing short films in this company? Holy crap. Okay.’
So I talked to my boss and I said, ‘You know, it’s great that I’m supporting all these Maya people, but the support team should really know how to use Maya, so they can support them.’ And he was like, ‘That’s a really good idea.’ And I was like, ‘Why don’t I go to Toronto and teach them all how to use Maya?’ He was like, ‘Okay.’
So I wrote a quick course on how to use Maya, flew to Toronto so I could help train up the team over there, and positioned my desk outside Bubba’s office in a hallway so that I would be able to be seen by him whenever he walked past. And every time he walked past, I’d try to act super smart using Maya. He’d walk out, I’d be like ‘Do-do-do-do-do.’
He saw me and he’s like, ‘What are you doing?’ I’m like, ‘Oh, I’m just rigging a leg in Maya. Just doing some IK. Blah-blah-blah.’ And he goes, ‘Oh, do you think you could do like a leg for this cowboy?’ I’m like, ‘Totally. I had no idea what I was doing, but I’m like, ‘Totally. Of course, I can.’ So I rig up the leg and I show him, just a very simple inverse foot rig in Maya. And he says, ‘Oh, that’s pretty cool. Why don’t you come out to sushi with us tonight?’ Because he and Corban and Adrian were all going out to sushi. So I was like this young, just out of school guy, and I’m like, ‘Oh, okay.’ So we go out to sushi and they totally screwed me over.
Corban Gossett: We did not screw you over.
Jason Schleifer: Well, you all somehow convinced me to pay for the sushi dinner, which was like expensive sushi and saki and beer. It was like a $400 bill or something. This was like my first time going on a business trip. And I had to expense it. And luckily my boss was really good friends with them. She was like, ‘Corban, you jerk.’ So it was fine. But, basically, I got to join the team then and in my spare time was working with them on the Ruby’s Saloon stuff. And then I got pulled into doing the demos and really learned how to do presentations from watching these guys do it.
Adrian Graham: There were actually two iterations of Ruby’s Saloon. The first one was very cartoony and Jason and I were all crazy about Looney Tunes so we wanted it to have a lot of squash and stretch – there was the squash deformer was just implemented at the time – so we could do all this sort of crazy Looney Tunes type of rigging. And we went that direction and I was the TD at the time, I didn’t do the creative stuff but I did the scene setup and there was just a lot of manual scripting that was required to get consistency and the asset generation and all that stuff to work.
Kevin Lombardi: By that point, it was the most volume of animation that anybody, any group, had produced with Maya, which wasn’t ready yet for primetime. It wasn’t being used in the market, so we were the only first five or six guys that were making it work, aside from, of course, all the programmers that were involved.
Adrian Graham: At the time, Alias|Wavefront spent a lot of money on those events, especially SIGGRAPH, and there was a big push. We would be very careful about what we would release before SIGGRAPH and what we showed to the public because there was the big reveal that happened at SIGGRAPH.
Kevin Lombardi: The initial unveiling was like, ‘Hey guys, this is our software in development. It’s not going to be available for another year and a half, but we want to show you what we’re working on,’ and it just blew people away. They were just so excited, it was like something that they had never seen before. And we were really happy and proud about it, and it was really exciting.
Adrian Graham: We were all pretty junior and wet behind the ears but we considered it a real production and, I mean, I guess you could say it was maybe the first full-scale short done in Maya.
The tech of Ruby’s Saloon was the tech of Maya 1.0
Kevin Lombardi: The whole point of Ruby’s Saloon was A, to create marketing buzz, so that the market would go, oh my god, there’s this great new thing on the way. And so Ruby’s had to have dynamics and it had to have particles and it had to have inverse kinematic animation, and it had to have some sort of a skinning thing and rigging and all of that kind of stuff – all those great things that were coming to the forefront of doing animation for film and digital effects for television.
And then there’s also side B, that is like, ‘Holy crap, if this thing’s going to be used by people, we gotta make sure that it works.’ And so we were testing and producing at the same time. So when stuff didn’t work, we’re like, okay, you guys, we need to do it this way instead. But mostly during that six month production phase, the bugs were easy to find. Those were like, oh God, why is Mel’s belt all twisted around his body? Well, that’s just because the attachment on the skinning of the belt is all messed up, and the skinning isn’t working right.
Adrian Graham: I tried to do everything as accurately as possible for the film. So, for the bullet shot, for example, I actually fired a rigid body bullet at the weighted object, the hand – I didn’t animate that back and forth – I think it’s actually in our rigid body simulation. Because that bullet is travelling so fast, it passed through the surface from one frame to the next. So, you had to really tweak all the sub-frame samples to catch the time. But when you do that, it messes with the animation so you have to offset everything. It’s just kind of the same limitations and challenges that you have today. It’s surprising how little has changed. But, again, as the rocket takes off here, to get a smooth trail of particles, I think I did that with sprites. You have to crank up the over samples to get it to not be chunky, which is really lame.
Kevin Lombardi: I remember one of the most important things was when we were animating with inverse kinematics, it was like, God, I can’t make the foot stay planted on the ground when I move the rest of the body! And so that’s a big thing, when you’ve got an animation team that’s trying to figure out how to integrate an inverse kinematics solver into the system. And that was just another one of the things that was either, hey, this is busted, we need to improve it, or hey, this user interface just sucks and we need to make it better. It’s kind of a combination of the two.
Adrian Graham: One of the other technical challenges of making a short, back then, there was no RV or anything. So, to be able to load this at full resolution in its entirety and view it at any great length, locked 24 or 30 FPS, was near impossible. So I remember the earliest versions of this, we had to watch it on ZaP!iT. We would have to cue up the frames and watch it on an NTSC monitor that was driven from a dedicated SGI O2 running ZaP!iT.
Corban Gossett: Then there were particles. The rocket squashes and stretches with the little burning fuse and then just takes off. We had integrated particles, which at the time were harder to render. We didn’t have a software render particles system at that point. The fact that we had a lattice on the geometry to squash it. And that we could then animate the geometry to take off and then have a stream of particles blow out. That was a big deal.
Kevin Lombardi: Dynamics were really kind of new to the scene, especially rigid body dynamics, at the time. And that was really one of the things that we wanted to excel at, because Wavefront had been developing a lot of technology for that, based on some earlier software that they had in development. There was one called Dynamation. It was all about using particles and rigid body dynamics to do effects. And that was the basic spine to the tech that we ended up integrating into Maya.
Jason Schleifer: There was that rope attached to the rocket. For that we had basically a NURBs curve and a tube extrude along it. And then put clusters on each of the points, so the NURBs curve and then just keep those to make it look like the rope that was attached to the rocket was dynamic.
Corban Gossett: The other cool thing that we did was, we had the expression for the wheel. So no matter how you moved the unicycle across the rope, the wheel would always roll.
Jason Schleifer: As long as you went forward.
Corban Gossett: As long as you went forward in Z. As soon as you turned it, it would blow up. But then the cool thing was, and this is what kind of blew us away, even internally, is that not only did we have an expression on the wheel that would go with it along the rope, it’s that we parented the whole unicycle to that cluster thing so that whenever we moved the cluster, the rope, the unicycle would follow it. We then added some lean into via the expression so if it started going forward, it would lean, but that was all automatic. So all we did was that one control.
And the kicker, I remember, is we added a lattice onto the tyre and parented it to the unicycle so that we could get – like, the tyre was not perfectly round. If you looked at the bottom, the tyre would actually look like it was riding on the rope and we squished it with a lattice. But the fact that we could parent to that contraption, it was awesome.
Jason Schleifer: There just wasn’t the ability to do this kind of stuff back then.
Corban Gossett: Yeah, I look at it now and I go, ‘You can do that in your sleep.’ But back then, for us, that was pretty eye-opening.
The art of the demo, or: the art of crashing gracefully
Kevin Lombardi: Some of the most excitement from the user community was that, oh, wow, this is suddenly available to me as a regular guy. I don’t have to go get a job at ILM or Pixar in order to do this stuff. And I think that’s where the attention, the volume of attention that it got, just exploded, because suddenly it looked like, oh, here’s something that everybody can use. It’s not just this tiny user community of the five big studios that were doing stuff at the time.
Adrian Graham: We were rock stars at the time, in terms of the crowds at NAB and SIGGRAPH. People were really excited to see this thing called Maya, this replacement for PowerAnimator and Wavefront Explorer. We got some really amazing reactions and wild clapping and whoops from the audience a few times during the user group meetings. Bubba and I were given carte blanche to do any type of demo that we wanted. And I remember using the Ruby’s Saloon content, the assets, using the Mel cowboy, the rigged head, with phonemes and everything and we were introducing facial animation as part of the Ruby’s Saloon thing, we wanted to show facial animation.
Kevin Lombardi: But three months before SIGGRAPH, we were still working on this thing and trying to get frames rendered until 2:00 in the morning, and then we’d go home and come back at 8:00 in the morning to work all the next day. It was just running into bug after bug after bug, whether it was a skinning issue that we had to send back to the R&D guys to fix some sort of an algorithm that they were developing, or whether it was a rendering bug that happened that the rendering guys had to take care of, and it was all being on this cutting edge, if you will, of product development. And we were the guys that were just on the assembly line, trying to make it work so that it rolled off functional.
Corban Gossett: Three to four months before SIGGRAPH, it was complete hell. Because it was all night, all week until the demo. We were working on pre-release alpha software that wasn’t ours yet. The render didn’t work. The dynamics would blow up half the time.
Jason Schleifer: Software would just crash like that.
Corban Gossett: From one day to the next, it would be okay. Then the next day it just like, none of worked. And we’re like, ‘Oh my God.’
Corban Gossett: The thing literally almost didn’t render. We had issues with everything from shadows not working to getting flicker in the images, you know, little highlight spots, like, it was just everything because they were building it literally on the fly at that time.
Corban Gossett: I think we wound up scripting everything because there was some stuff that we just couldn’t render. Like, we wanted to show something and we literally would at times have a button that would do a bunch of things behind the scenes because we knew if we hit the button, it would crash. So we would literally put the demo and every step almost in a row in the shelf button and we could just click, click, click, click, and click. But it gave this impression that we were doing something and in the application, but we were running a shit load of scripts behind the scenes to kind of make it all work and seamlessly not crash.
Jason Schleifer: The other trick, which I love, that Corban would do, is there was always a point in some of these demos where the program would just crash no matter what. Like there was nothing you could do about it. And it was just something about the amount of time the demo was going and the order that you went. There would be like a memory leak or something. So what we would do was we would have the application up, mine would be up and you’d be working through the demo. There’d be another copy of Maya up, full screen, right behind it, right after the stage where it would normally crash. So there would go through the demo and you’d hit the button that would cause Maya to crash, but then the other Maya is right there at the next step. And you just keep going.
Adrian Graham: I remember one demo, it was where we showed how to animate Mel the cowboy saying something. This was when blend shapes were still a new thing, and I think it was at SIGGRAPH in New Orleans, and we animated Mel. We recorded Bubba saying, ‘Too much gumbo.’ And I don’t know if you remember that, but basically, we had a belch and then Mel saying, ‘Too much gumbo. We did that five, six, seven times a day, all the people, all the booths around us because Bubba’s booming voice recorded in AIFF file were playing over and over and you were like, scrubbing the time slider and then keying the phonemes so that Mel was saying, ‘Too much gumbo.’ And that garnered a lot of laughs. Like I said, we were given a lot of leeway to create whatever demos we wanted.
Jason Schleifer: I think one of the reasons why Maya kind of caught on was because when we were doing these presentations we were trying to tell the stories of what the artists were going through and what they were trying to solve. And so we were leading you through this journey of what the software tool could do, and how it could solve all of your problems. Now all of these things could be connected to do something really amazing that you hadn’t seen before.
And a lot of what we would do with Ruby’s Saloon – we would do these demos, package them up, make the movies, shoot a bunch of marking material, and then those things would go to the application engineers, who were the ones then going out to other customers and demoing the stuff. So there could’ve been a lot of that as well, where you were seeing stuff years later that had been sort of taken from that.
Corban Gossett: We had the character because that was showing off the artisan tool, like the painting geometry where you could put the ripples in the chaps and that kind of stuff. The dynamics – so one of the things we did with the dynamics was we wanted to show interactively how fast the dynamics were. So we had the cowboy throw the hat.
Jason Schleifer: Oh, that took forever.
Corban Gossett: And basically we wanted to have him throw the hat and have it land, you know, and catch on a hat rack. So the demo basically was us literally for days, trying to figure out the exact dynamics needed to through the hat across the scene. It was like we had to change the gravity. We had to change how dense the object was and all this kind of stuff. So we wound up building this demo that basically showed where you would kinda like well imagine the cowboy’s just gonna throw that hat away. He wants it to get there. So we would say, ‘Let’s make the gravity like 100, it would go ‘shww-boom’, and fall down.’ Well let’s make it 50, it’d go ‘whoosh’ and it’d go straight up.
We had this one exact number that we had to always type in. And sure enough every time we would type that number in, and we’d get it’d be exactly like that. Imagine it was 23.769 and you’d type that in and sure enough you would just watch it and it would float across the scene and it would land perfectly and just sit there. People were fucking blown away. Like the fact that you’re like, ‘Oh my God,’ because it was all interactive and it wasn’t something that we were key framing. But it was such a hack to come up with that number. It was just like trial and error, trial and error.
Note: if you also remember Chris Landreth’s Bingo, stay tuned for a look back at how that short film was made in early Maya, too.
Illustration by Maddi Becke.