 ```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