In 3D world there are several function curves that are essential to know and to remember. These fc (Function Curves) are the basist for basicly every thing you see, and hear, in the world, from the Navier-Stokes equations that can simulate weather pattern, to simple sine and cosine functions that can control a bouncing ball without key-framing. Lets start with the basics, sin and cos are the first trigonometry functions that you learn in your early school days, this tutorial is to briefly summarize their common usage. Y = sin (time*frequency)*amplitude + offset This curve was created by using this simple xsi vbscript: Try playing around with the values for amplitude, frequency and offset, you can also alter the line y=amplitude*sin(frequency*x)+offset by something like: y=sin(8*x)*(1-cos(x)) As you can see the possibilities this very simple equation as unlimited use and is very useful, here is one other simple application: I know that XSI as a curves->spiral command but as you can see control of a object and particles can easily be achieve by simple fc. What's that you say ? Bring on Twister and Mission to Mars.... Not so fast... All thought these fc is a great way to gain control, but, to create those complex special f/x you will need bigger equations.... and as soon as I can figure out how to use functions like fmod, floor, linstep, and others in XSI I'll do 3D Math 102, meanwhile you might want to take out the old school books !!

This tutorial courtesy of Eric Poirer and XSIStation

int i dim x dim y dim z int num_cv dim increment dim amplitude dim frequency dim offset i=0 x=0 y=0 z=0 num_cv=30 increment=1 amplitude=1 frequency=1 offset=0 SICreateCurve "crvlist", 3, 0 do while i <= num_cv i=i+1 x=increment+x y=amplitude*sin(frequency*x) + offset SIAddPointOnCurveAtEnd "crvlist", x, y, z, False loop int i dim x dim y dim z int num_cv dim increment dim amplitude dim frequency dim offset i=0 x=0 y=0 z=0 num_cv=30 increment=0.1 amplitude=1 frequency=1 offset=0 SICreateCurve "crvlist", 3, 0 do while i <= num_cv i=i+1 z=increment+z x=cos(z*10)*z y=sin(z*10)*z SIAddPointOnCurveAtEnd "crvlist", x, y, z, False loop

This tutorial courtesy of Eric Poirer and XSIStation