Walter Schulz is a freelance Visual Effects Supervisor, Crowd Supervisor and Character Developer. In this post I outline my own extensive experience using both Massive and Golaem for CG crowd solutions.

Who am I?

I started using Massive back in January 2009, when it was taught at Gnomon School of Visual Effects in Hollywood, it was a 3 months course. My instructor there realized that I was really getting the hang of Massive rather quickly and a few months later he invited me to work with him on the film “Hereafter”. Before that I had been a strong generalist but mostly a rigger all of my career — I’ve been freelancing for 22 years now, non-stop.

My rigging background has been a great help when working in Massive. The logic behind the program somehow fit me perfectly — it almost felt like it was designed for my brain. I’m not really a programmer by choice, but I do understand and write code, Massive being mostly node-based visual programming software also suits me. You connect a node, find the condition, and if it doesn’t work you test it instantly and you disconnect it instantly. You don’t have to write lines of code and then do debugging, compiling or parsing lines of code.

MASSIVE PRIME — 4 Viewport Configuration + Placement menu

I’ve been using Massive and other crowd creation programs like Golaem for several years for digital crowd work on major film and episodic, including “Hugo”, “Transformers: Dark of the Moon”, “The Avengers”, “The Walking Dead” and “Independence Day: Resurgence”. Although I think Massive is superior, I do have a lot of experience with Golaem.

What Golaem and Massive really are

In my opinion, Golaem is more of a simple solution. It’s worth noting that Golaem is not an autonomous AI Agent system. Being solely a Maya plugin, it uses Maya particles, attaching predefined animated characters to the paths of each particle. It is possible to set simple triggers on a per shot basis, but it is not possible to build anything with functionality similar to a Massive AI brain.

The replication and rendering process in Golaem requires special attention. Clients sometimes believe each replicated crowd character is actual geometry, because that’s what it looks like on the viewports, and they try to find ways of caching them out in order to script the texture assignment.

This is where things break, the characters are actually particle instances, not only do they require special shaders as such, they also require a Golaem specific switch (visible in the Hypershade) in order for textures to remain assigned and propagated.

It is also necessary to have a different switch for each rendering solution — V-Ray, Arnold, RedShift, etc. All of them are completely incompatible from each other. Once you export, or try to export a cache as Alembic, for example, all textures are gone, requiring a scripting solution to randomize and reassign textures.

“Think of Golaem as animatronic dummies on a track, think of Massive as the Boston Dynamics robots, autonomous, with situational awareness and most importantly, true AI. Not to deter you from using either one. If you have a theme park, you may need just animatronics, but for other higher purposes you may need the Boston Dynamics robots.”

In fact, I believe all digital crowd solutions existing today, other than Massive, function on simple behavior triggering by setting up an environment, triggering behaviors or making the characters do specific actions. The interaction is non-existent in those software packages. It looks like they’re interacting, but they’re actually not aware of each other.

That’s something that in Massive is completely different — you can assign triggers and you can assign different conditions to each Segment (bone). For example, if an attacking soldier — an agent in Massive — hits another soldier on the back with a sword, then the latter actually reacts to the contact of the sword. This is carried out in the following order: 1) a specific segment on his spine (bone) detects the collision; 2) he recognizes that he has been struck with a sword; 3) he becomes dynamic and; 4) finally falls like a rag-doll.

In order to get limbs to bend in accurate angles, it is possible to modify and influence the joints angle limits and friction of each specific limb. Once these parameters are applied, the character drops more like a real wounded human falling to the ground. You can even add “Servo Force” in order for the character to still have voluntary motion as he falls. Furthermore, you can blend any motion with the dynamics being applied. This is particularly useful when a character is falling from a tall building, for example.

If you run a simulation in Massive then, after setting up the behaviors, you will see that the Agents do the exact same actions every time if nothing in the scene has changed. But each agent in the scene will be doing their own thing due to their unique situation in regards to the other agents and the environment.

My Golaem experience

Golaem gives you what’s called Entities, which are the characters. They’re ready to run, but they’re not refined in any way. A good example of this is, I worked on “Independence Day: Resurgence” last year, and I had to do crowds for the Area 51 hangar in the movie. There needed to be some military personnel in the foreground, and in the background you see hundreds of aircraft in a gigantic hangar. I had to put people walking around, working on the aircraft, carrying a wheel-cart or driving a flatbed utility cart.

I did the full development for over three weeks in Golaem and I wasn’t sure it was going to hold up, mainly because the motion capture looked processed — it just didn’t look right. Once you put it next to live action actors who are walking or idling, it just doesn’t hold up.

The way it works in Goalem is, they’re not actually walking, they’re characters attached on particles. They’re moving like they’re walking and you’re translating them as if they were traversing. If you’re lucky enough to have the particles at the right speed, then it’ll look just right. Otherwise their feet will be sliding. This is something I see on most of Golaem productions.

That’s what happened on “Resurgence”. I ended up doing the crowd by hand, placing all the characters with pre-applied animation and using internal tools in 3D Studio Max.

I had used Golaem earlier for “The Walking Dead” in 2015 on the last episode for Season 6. When they lure the zombies into a quarry, we had forty five hundred characters there. What was really hard to do in Golaem was to stabilize the animation of the zombies. They had done some custom motion capture for the show and the people playing the zombies were very good at it — they were twisting their feet and making other live action fancy moves with extreme poses.

What nobody expected was that all that very specialized motion caused the IK to snap and twist in awkward angles quite a bit, which made it really difficult to stabilize.

Another problem that was inherent to Goalem, was Entities reversing their paths instantly upon encountering an obstacle, rather than slowing down or changing direction smoothly. Being particles, they do not always have the expected behavior of an animated character.

A big factor was our very tight deadline as well.

Therefore in some of those shots I actually had to place a crowd of hand-animated zombies, re-targeted to different characters in front of the Golaem crowd Entities, just to hide some of the incorrect snapping motions. Sliding feet, snapping characters, snapping knees — those were really the biggest problems we encountered. I had to build countless corrective rigs.

Getting up to speed in Massive vs. Golaem

The time it takes to just get a project going in either Massive or Golaem all depends on what you have to do. Obviously, if you have to create human crowds, the ready-to-run agents in Massive will get you there faster than any other package, because it doesn’t require you to set up a specific pipeline other than the internal Massive pipeline itself. They come with built-in Sound Detection, Vision Detection, Lane Navigation, etc. — all you have to do is switch them on.

Massive Software has released the Massive for Maya and Massive for 3D Studio Max plugins now, and the core package is Massive Prime which is a stand-alone program and extremely powerful for brain development with the application of Fuzzy Logic. As far as laying out crowds on your shots, you have the exact same tools in all the plugins as well.

Normally, while working on a film or episodic production with Massive, you require one person to integrate the custom motions and another to develop the brain (in case you are creating a unique development in Massive Prime). But if you are working with the existing agents — which is what I did for “Hugo,” I actually built upon what was already there — you can really do this with just one person on the Massive Prime seat.

On “Hereafter”, for example, I was the only Massive Technical Director and I did most of the work under the guidance of Chad Finnerty, who was my Massive instructor at Gnomon. It took two and a half months to develop the agents from scratch, from the motion capture that came from Giant Studios, all the way to laying out the shots. It took me approximately over two weeks to finish the layout shots.

When working with Golaem, the main difference is that within the first day you are certainly able to get results with the ready-to-run Entities, just like with Massive’s pre-built Agents. However, the difference in the overall quality of the output and the results are really noticeable. The provided Entities in Golaem have poor quality mocap that looks processed and they just don’t look realistic; especially if you place them next to live action actors or in most cases, extras. When those same Entities are placed out in the distance, then they can work well for certain scenes.

The benefits of pleasant surprises

If I have to populate a mall, for example, with people walking or doing different things, then that is very, very simple to do with Massive. The reason is, all the characters there are basically just one single Agent that has a really well-developed brain. All the motions and all the “thought” processes are already built in.

You set up the crowds by laying out who’s going to be walking, whether you use lanes or flow fields, you can drive the crowd in different areas, and they will always have the behavior you expect to see in a crowd. They will have enough randomness, enough social force, you could call it, and the final results will have things that sometimes even you are going to be surprised by.

Actually, one time when I was working on “Hugo” I was asked to create small groups of people, like clusters in Massive that were going to be used as vignettes. I had to set up full rows of groups of two, three or four people talking to each other. The funny thing is that in one of the groups, two of the guys seemed to be arguing. They had gestures with their hands and all these actions were just something we had never seen before in the pre-built Agents.

This is something that you don’t have in Golaem; most of the actions included are very simple and very crude. For example, for a stadium you only have two actions of them sitting and watching. Then you have many more actions of them actually standing up or doing a wave or standing up and protesting. There’s actually more variations of them standing up than actually sitting, yet sitting is what people need to do most of the time in a football game or in a stadium enclosure.

You’re having to work with two actions and they repeat very quickly, and the pattern is clearly visible in the final result. Of course, you can create additional animations, but then that requires creating your own rig, and creating additional animation. Another clear example that in production, time is money!

Workflow: the differences

Massive is a great partner in your VFX workflow. If the director tells you, ‘I’d like to see more of the Fedora hats that we used to see in the 1940s,’ all it takes is to just bring it in, connect it to the Agent, and you have it working.

Massive has a non-destructive workflow. You never have to go back or destroy something that you did in order to go in a different direction. The way it was designed is very effective to always allow the TD to add or remove assets without having to redo anything you’ve already done. It saves considerable time — especially in long developments.

On the other hand, Golaem is more involved. In a similar case, once you create an Entity, if you need to change something, you have to go all the way back to the beginning, to the Maya rig which has everything skinned to it and add the new Fedora hat, say, on top of everything else. Then you need to re-process the Entity, repopulate the scenes and re-render. A very redundant workflow indeed. The more complex the Entity is, the more time it’s going to take.

The day to day

One of the biggest problems that I see with Golaem is that it creates a lot of sets of “twins” — meaning two characters with seemingly identical clothing, hair options and shoes.

Sometimes, when I see such cases in the OpenGL viewport, you can’t really tell if that is what you are looking at. Because if one guy is wearing a green shirt and blue pants, and right next to him there is another guy wearing green shirt with blue pants, then in OpenGL you can’t really tell if there is a hue or a saturation difference until you actually render the shot.

As a Crowd Supervisor, I always keep an eye out for such cases and immediately dig into the particle settings. I add an expression to change the characters completely, by shuffling them at random again, something that the software should be smart enough to correct in the first place.

Golaem releases new versions every three weeks, and sometimes they fix some things and break others. If you stop using it for a month, then when you come back, there’s a lot of things that have changed completely.

Golaem Character Editor

Even some tools have disappeared! They used to have the ‘target’ tool, which looked just like a target that was like a locator. If you placed it in your scene, the characters would be flowing in that direction, or away from that direction depending on how you set it up. Now, they removed that tool, and consequently you can make anything a target. It can be a cube, it can be anything else. That’s fine, but when you place a locator far way in the distance, it makes it harder to see. You no longer have that visual target that you had before.

I suggested to Golaem that they give at least the visual option to make it look like the Target Locator once you have assigned the object of choice. Their response was “Target Locator has indeed been replaced by the PopTool Locator”. This tool allows you to turn just about any object into a target, but at least it would be great to have the choice to get the visual help of a Target Locator.

Golaem sometimes has elements that work perfectly fine on your own computer, but then fail when you submit them to the render farm. The paths become a real issue as far as the caches go. This is something I encounter at every studio that I go to when using Golaem — they have a bottleneck when they submit Golaem to the render farm.

There are no additional cost to render Goalem caches. Hopefully the paths issues are being addressed in future versions.

Massive, also includes unlimited rendering licenses for all the packages available.

All things considered, I became an advanced Golaem user mostly through trial and error, rather than by learning the manual or watching the tutorials numerous times.

Horses for courses

It’s important to remember that Massive and Golaem are designed for different markets. I’m talking about the quality of the markets. It can work for some commercials, it can work for certain productions, but it’s not going to be good enough for the top productions, even though it has been used as some of those major films with mixed results, or by placing crowds in extremely wide angles.

The success stories with Golaem may occur when people have probably created Entities from scratch and utilizing their own motion capture. Then, you’re not using their pre-built Entities, you’re using your own custom development with the considerable cost that renting a mocap Session/Stage, clean up and man-hours to create the Entities will add to your already costly production.

They really are for different markets, not only for the quality of work but also for the type of development. People keep comparing them and it’s like comparing a Ferrari to a Toyota. They’re both cars, they both drive you where you want to go, but they are a completely different experience, quality and results. What would you choose?