Posted April 20, 2021

Main Road Post VFX Supervisor Andrey Maximov talks about the evolution of their inhouse muscle tool, developed over the course of several films dating back to version 15 of Houdini. Using a mix of wire solver, FEM and more recently, Vellum - this muscle toolset was used to deliver character FX for both facial and body simulations (of tissue, muscle, fat and skin). Films like Attraction, Cosmoball and Sputnik, have shaped and refined the muscle toolset along the way. We get a glimpse of the innovation and artistry that goes on behind-the-scenes at MRP!


Hello Main Road Post, it has been a while since we last caught up with you - the last time was when Attraction came out! The breakdown video you made is still fresh in the mind, even though some years have already since passed. More recently, we saw your work in the sci-fi film Sputnik! But before we get into that, can you talk about the start of your foray into doing FX for creatures and just creature work in general.
Let’s start with Attraction. Not everyone may be aware that you developed your own proprietary muscle system inside of Houdini, since version 15. Was that the serious start of doing creature work?

Andrey Maximov VFX Supervisor

We had started creating our proprietary muscle system about a year before working on the first part of Attraction. This development was not linked to any project, but was our own initiative, as we understood, already then, that the quality of CG-characters in global motion pictures was so high, that we needed to have proper organic muscle systems.

It is one thing to create robots, when all you do is mechanics, without any tricky tasks or challenges of deformations, but quite another when you have to create living beings and need to work on muscles, skin, soft tissues and their dynamics.

Andrey Maximov

It took us about a year to make the first iteration of the muscle framework. We were working on it in between projects, and Attraction was the first movie where we tried this system to control deformations of a fully CG character. However, the character in Attraction was not a living being; rather it resembled a robot, but with a lot of soft, rubber-like joints. And we applied these muscle dynamics to improve animation, i.e., to add secondary animation to various parts of its body. Our idea was to add weight, momentum and realism to the alien’s movements. We think we managed.

That was the first version of the framework. Since then, we have constantly improved and refined it from project to project, adapting it to specific tasks. Now it is the fourth version of the framework.

Animated base layer for facial animation, driving middle layer (FEM) and outer skin layer. 

Most changes and improvements to the framework were made during our work on Cosmoball, because, in addition to the dynamics of the body muscles (body, arms and legs), we had to create a realistic face animation. We spent a lot of time and effort to refine the framework in order to create not only body muscles, but also facial muscles, more fine and delicate with a lot of specifics which made them different from body muscles.

Facial muscles generally originate from the surface of the skull bone, and are attached to the skin of the face. Most of these mimetic muscles move the face skin rather than the musculoskeletal system. This is why we considerably expanded the functionality of muscles. We also made a special effort to increase their performance so that everything worked at least by an order of magnitude faster than before.


When it comes to custom tools, creating anything custom takes countless hours of research and testing, and that’s not inclusive of the development itself. And on top of that, you have to also train staff to use the custom tools, prepare documentation, deal with bug-fixing and all that which comes with custom toolsets. There are other muscle solutions on the market that you could have used. Why did you choose to develop your own?

Andrey Maximov VFX Supervisor

We chose to create our own muscle system inside of Houdini, firstly, because we did not want to depend on the development of third-party tools and think how to align various packages.

Secondly, it was crucial for us not only to use some readily available tools (even great ones), but, due to our internal culture, to develop the tools and hone them to our own needs based on our tasks and to make the tools convenient for us.


After Attraction, you continued to further R&D on your muscle tools, doing more testing of muscles, fat and skin. Can you tell us about the general pipeline of this, and how, if even, it differs from the one used for the Attraction character?

Andrey Maximov VFX Supervisor

After Attraction, we continued improving our muscle toolset. In every big project where we needed this toolset, we adjusted it to the specific tasks and objectives. For muscle dynamics in Attraction, we used solely the wire solver: it produced very simplified secondary dynamics. It is quite fast (its great advantage), and we got almost real-time muscle simulation, which helped us a lot in working on animation, as we did not have to wait…

When an animator made their version of animation, they could see right away how it would look with the muscle dynamics processed. 

Then, when working on the next project - Cosmoball - and creating the mystic grey dude, we significantly refined the entire muscle toolset, as I had mentioned: we were able to create face rigs and added a lot of functions in order to customize mimetic muscles.


Is there use of FEM? Any changes to the muscle toolset?

Andrey Maximov VFX Supervisor

Yes, we did use FEM to process the face animation. Roughly speaking, we built a closed model of the soft tissues of the face and inserted mimetic muscles inside the model. In other words, we practically simulated the structure of the real human face. We used controls to manage the model, and created the deformation using the muscles. After that, we transferred the closed model to a FEM representation and simulated over it; with the FEM solver, we solved the tasks of keeping the volume and creating wrinkles on the face skin. This was a big and interesting development connected with mimetic muscles; as for body muscles (arms, legs, etc.), we did not add anything to the toolset during our work on Cosmoball, only increased its performance.


Now to your recent project, the sci-fi film Sputnik - we saw the breakdown video showing all of the various layers of thin musculature of the alien. Is not doing FX for thinner muscles a bigger headache than bulkier muscle-mass anatomy?

Andrey Maximov VFX Supervisor

Indeed, it is easier to some extent to make the anatomy of bulky, muscle-mass characters than creating lean ones, because they have their own specifics to focus on (thin skin, membranes, ligaments and the like).


And on top of that, some skin tearing to finish it off. How worried was the creature department when they saw the brief? When did you start work on the Alien and how long did you have to deliver the shots?

Andrey Maximov VFX Supervisor

Actually, we do not have a creature department.

However, the teams who were developing the Alien for Sputnik, were not worried; they were rather excited about this complicated and interesting task. In fact, the task emerged from the first meetings with the director and discussions about his vision of the Alien (how realistic it should look like, etc.).
This was a kind of challenge for us -- we had to create a 

character which would look striking not only when moving fast, running or jumping, like in Attraction, but also in slow shots and with very smooth movements. The shooting style of Sputnik, its pace and camera movements implied that there would be a lot of long shots – dozens of seconds – when the audience could see the Alien in full detail, and motion blur would not hide any faults. We needed to create all the aspects of its skin behavior and anatomy as realistic and convincingly for the audience as possible.

We immediately realized that we also had to create, in sufficient detail, the entire inner structure of the Alien, because its skin was supposed to be semi-transparent. That meant that we not only could see its inner structure from the effects on the surface of the skin, but also directly observe the movement of its muscles, as well as its ligaments or bones, under the semi-transparent skin. 

That is why we started working on the skeleton. Then we added muscles using our muscle toolset which allowed us to quickly add muscles of various groups. Despite its anthropomorphous anatomy (it has two arms and two legs) and symmetry, the Alien has an unusual structure of the head, body, shoulder and hip joints. In addition to using some known muscle patterns, we had to devise and develop the alien anatomy, thinking of how its muscles might work and be attached within its body. Not only was it necessary to figure out how to make it look convincing and natural, but it was also necessary to ensure that these muscles were, literally, functioning. The Alien should always look naturally and correctly in any positions taking into account its anatomy. This took us a lot of time, about two months. We built and refined its entire muscle framework: about 120 muscles in the body. We realized that the muscle dynamics and the dynamics of soft tissues in general should be more realistic and fine. As we used only wire solver to simulate the muscle dynamics, we figured out that it would be better to use muscles only for controlling the skinning of the character, and then to add a layer of secondary dynamics over them, for which FEM could be used.

However, when we were developing the character, Vellum was released. And we decided to create secondary dynamics using Vellum, as it proved to be good and fast and produce quite steady simulation of soft tissues. Thus, we used several layers: the first layer of muscles and bones with complex animation patterns; it was overlaid with soft tissues and fat simulated in Vellum; and finally a layer of skin which was simulated additionally also in Vellum, but with different constraints: it was slid on the soft body and created a skin sliding, wrinkles and the like.

This was a multi-step and multi-stage simulation structure. We spent a lot of time and effort to customize a solution for Vellum (for skin simulation), as the skin was not a trivial object: on the one hand, it should freely move over the entire surface, which, in turn, constantly changed;  on the other hand, the skin should not get detached from the surface (to some limits), because there was no air under the skin, and if the skin was pulled at some spot, the surrounding areas were strained, but not detached from the surface, unlike a fabric laying on a surface with some air beneath. To create this aspect of the skin movement, we spent some time and wrote several lines of code in VEX. 

 By the way, Vellum has now the 18th version of sliding constraints, which solve, by at least 90%, the task we were solving before they were released, so we actually invented them for ourselves.

 As for skin tearing, we worked on this shot after the character was created. We had already had a wealth of experience in Vellum, particularly, in creating skin and other organic elements in it. Therefore, it took us about 2-2.5 weeks to simulate skin tearing, and the task was not very demanding. We took the skin already created by that moment, and adjusted the settings so that it could tear and we could indirectly control the process for artistic purposes.


Could you tell us anything else about doing creature FX?

Andrey Maximov VFX Supervisor

In general, I have covered most of our simulation workflow for Sputnik. A few more words about how we achieved this result. It would take an endless number of trials and enormous efforts to configure the parameters manually. Instead we used the wedge tool to select the necessary combinations of parameters for simulation of Alien’s skin and soft tissues. For example, when we developed the soft dynamics of fat, a combination of four parameters had to be chosen. We first created a test animation of the Alien, which was quite contrasting (a so-called stress animation), and we built on it several tens of thousands simulations using the wedge tool. Fortunately, we have a farm, and Vellum itself is quite fast to simulate a sequence of 100-200 frames over two minutes. We uploaded everything to the farm and got several thousands options the next day.

We have our proprietary tool to quickly evaluate these simulation options by changing the values of the parameters in real time and seeing how the result changes accordingly. Since it is impossible to review or download and evaluate several tens of thousands simulations and choose the only one, we wrote a small proprietary cache loader to speed up the evaluation of simulations visually. We applied the same method to configuring the skin parameters. We built a prototype and processed it in wedge to define which parameters fit best (there were six or more parameters). In addition to selecting six parameters, we had to figure out different values for different spots on the Alien’s body (arm, belly, tail, head, etc.), because the skin might be rougher in one area and more elastic in another, and different areas required different combinations of values for these parameters. This was, I believe, the major challenge in this work, because all the parameters were not uniform over the skin surface.


How many shots in total for the Alien?

Andrey Maximov VFX Supervisor

As far as I can remember, there were about 100 shots (from distant to close up) with the Alien.


Looking back from here to Attraction, this muscle toolset certainly got a lot of development. The characters are different no doubt, but...well, the results speak for themselves!

Andrey Maximov VFX Supervisor

Of course, the version of the muscle asset we used in Sputnik differed greatly from the first version used in Attraction. However, believe it or not, we made only few changes to the muscle toolset for Sputnik: we spent 2-3 days to add some additional functions. I can say that by the time we started working on Sputnik, the muscle toolset functionality was sufficient to solve all the tasks set in the movie. 

As I said before, most changes and improvements to the muscle toolset were made during our work on Cosmoball. We spent a lot of time and effort to improve its functionality and performance.


Do you have any plans to commercialize your toolset for Houdini users? What magic can we expect to see from Main Road Post in the near future? ;)

Andrey Maximov VFX Supervisor

To be honest, we did not think about commercializing the muscle toolset somehow. It is unlikely that we will monetize or sell it, perhaps we will make it publicly available, but so far, we have not thought about it. On the other hand, we have already made publicly available our proprietary shaders, including the principled shader among others; so, maybe we will do the same with our muscle toolset in the near future, but no promises.

As for our development plans, we have a lot of ideas, because we have gained a great deal of experience and understanding where to go next with developments. We will probably start with reorganizing the architecture of the entire toolset and dividing it into several practical nodes. This will make the data flow more open for users and will enable users to interfere with some aspects of work of the toolset at various levels. I mean that we want to make its structure similar to the vellum toolset or the grooming toolset in Houdini. Secondly, we plan to add a possibility of using the toolset in Vellum, i.e. to simulate the muscle dynamics in Vellum. This is already possible, though: we can take the muscles ‘as is’ and send them for simulation. But this requires some additional efforts from users, and we want to unify it and build several practical nodes to make the process faster and more convenient for the end user.

Thirdly, we want to expand the entire toolset by adding a lot of developments we made during our work on Cosmoball and Sputnik: skin tools, improved performance and fat configurations, that means, to expand its functionality and embed our latest achievements.


Thank you for your time, Main Road Post!

Main Road Post

Russian Federation, Moscow,5th Novopodmoskovniy side street,6, 4th floor




  • DNSFOX 3 months, 1 week ago  | 

    Really good read! I sure really hope that they release their system or maaaaybe we see a muscle system upgrade in Houdini 19! ;)
    Either way muscles and kinefx = dream combo!

  • Masoud 3 months ago  | 


  • BerkErdag 2 months ago  | 

    Just perfect!

  • SiriusLizard 1 month, 3 weeks ago  | 

    Looks amazing! I would pay good money for these tools, particularly if they come with kinefx integration!

  • sekjarcgchcb 1 month, 3 weeks ago  | 

    Looks amazing

  • sekjarcgchcb 1 month, 3 weeks ago  | 

    looks great really interesting+1!!

  • sekjarcgchcb 1 month, 3 weeks ago  | 

    looks great really interesting+3!!

  • JOEMI 1 month ago  | 

    I had worst experience in my career each time I mess with Mainroad|Post. Especially with their earlier muscle developement system, which was awfully implemented by person. who had no knowledge about robustness and production readiness of his tools. We made then just 3 of 4 planned minutes of cg during a year of production - three or four location, 2 complex anthropomorphous characters, some simplified human doubles and bald beasts. When I left them - I gone to other studio, where I've implemented pipeline which was enable to produce full-length full-cg movie with heavy rich environments and 20+ highly detailed characters - birds, people - during 18 months.
    I have to just inform you.

Please log in to leave a comment.