Tutorial: Create a Sine with Nodes in Maya

Tutorial: Create a Sine with Nodes in Maya

Wow! It’s been more than a year since my last post here… Time flies 😕 Anyway, I’ve gotten a lot of questions about the procedural ribbon from my rigging reel, and I promised I’d do a tutorial on that, I’ll try to get that done next week or so 🙂

This however, is actually the thing that got me started on the procedural ribbon in the first place. My first thought was to start with getting the sine-function to work with nodes, and then work my way from there. The ribbon turned out totally different from this tutorial though, but I thought this could still be a useful technique to share.

First off, there’s several tutorials out there on how to create a sine-function in Maya, but I’ve never seen anyone do them with nodes. The main reason you would want to do things with nodes instead of using expressions is that expressions doesn’t always evaluate when you want them to, some times you have to scrub the timeline or playback the scene to force an evaluation of the expression. That can be really cumbersome if you need to adjust attributes that affects the result of the expression without seeing the changes instantly. Also, nodes evaluate way faster than expressions 🙂

The concept:

This is very basic, and the concept is very well demonstrated here, the tutorial just shows you how it can be applied to several objects in a way that lets you control the entire chain of objects affected by the sine with one controller.

Even if you know how a sine works, there’s still something to take out of doing it this way in Maya. Instead of dealing with just the math to get this to work (which you do with expressions), you’re dealing with a more practical setup, which easily can be modified to behave however you want it to. So as long as you know the “pattern” of the mathematical function, let your rigging brain take over and do a practical setup in Maya that lets you extract the behaviour of the function.

Here’s an interesting example Disney Research Lab released a little more than a year ago:
Computational Design of Mechanical Characters

The tutorial:

I’m using the translateY to output the sine in the tutorial, but remember that if you for example use this on a joint-chain, you could just connect the output to the rotate of the joints instead.

7,359 total views, 1 views today


  1. Aditya says:

    I have downloaded mecha_cat Model file
    but its not in default pose.
    Can you please share the default pose model file

    Thank you.

    • Jorn says:

      That is actually the pose in which the model initially was uploaded. I don’t even know if I still have my own rig files for the cat, so you’ll have to pose the model yourself before starting the actual rigging, sorry 🙁

  2. roman says:


  3. celia col says:

    Hello your tuto on the ribbon is great but I have a worry the last script in python for the scale of the group I have a syntax invalid while I have the same line as you. For line 1 I am on maya 2017 Please help me
    Thanks have nice day

    • Jorn says:

      As you’re getting invalid syntax, you’re most probably trying to execute the Python code from the MEL tab. In the script editor, make sure you’re running the script from the Python tab. It works in Maya 2017 here, so I’m pretty sure that should fix it 🙂

  4. badmanjam says:

    Awesome! Your technique is inspiring.
    Thank you

Leave a Reply

Your email address will not be published. Required fields are marked *