Chaos Scripts

Home Forums Scripts Chaos Scripts

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #2245 Reply
    IanniX
    Keymaster

    Hi all,

    I’m trying to use Iannix for the production of graphical scores based on the output of chaotic differential equations. For a test I am trying to implement and map the Lorenz equations in some form. My plan right now is to use a for() loop to iterate some number of Euler approximations of the functions and use the output of x, y, and z to generate curves, linesegments, triggers, ect… I’m coming to an anonymous parse error on the line where I instantiate my for loop. Would it be appropriate to post my code, as it is, here? I’ve really hit a wall. My Javascript is not so good so I may be making some glaring mistakes. Thanks.

    #2757 Reply
    Anonymous
    Inactive

    Yes ! But please copy/paste your code in your post 🙂

    #2758 Reply
    Anonymous
    Inactive

    Sorry for the lateness of my response. I am still interested in learning how to do this. Here is my code:

    //Script “Lorenz Graph”
    //Insert requests for global variables:
    function onConfigure() {
    title(“Lorenz attractor”);
    ask(“General”, “initial x”, “xo”, 0);
    ask(“General”, “initial y”, “yo”, 0);
    ask(“General”, “Initial z”, “zo”, 0);
    ask(“Parameters”, “sigma”, “s”, 10);
    ask(“Parameters”, “beta”, “b”, 2.66666);
    ask(“Parameters”, “row”, “p”, 28);
    ask(“Euler”, “Delta t”, “dt”,.01);
    ask(“Euler”, “Number of Steps”, “r”, 10);

    var x = xo;
    var y = yo;
    var z = zo;
    var i;
    }

    //Insert code to create score:
    function onCreate() {
    run(“clear”);
    run(“zoom 100”);
    run(“center 0 0”);
    run(“rotate 0 0 0”);
    run(“registerTexture background 0 0 0 0 ./Tools/background.jpg”);

    //Add curve
    run(“add curve 1001”);
    run(“setPos current ” + xo + ” ” + yo + ” ” + zo);
    run(“setPointAt current 0 ” + xo + ” ” + yo + ” ” + zo);
    for(var index = 0; index <= r; index++)
    {
    i = index;
    //evaluate Euler method
    x = xo + ( s * ( y – x )) * dt;
    y = yo + ( x* ( p – z ) – y ) * dt;
    z = zo + ( x * y – b * z ) * dt;
    //create line at xo, yo, zo to x, y, z
    DrawEul(x, y, z);
    //set new initial values
    xo = x;
    yo = y;
    zo = z;
    }
    run(“add cursor 1”);
    run(“setCurve current lastCurve”);
    run(“setSpeed current auto 100”);

    }
    //Custom function
    function DrawEul(ex, wy, ze) {
    //run(“setPointAt current pNum ” + exo + ” ” + wyo + ” ” + zeo);
    run(“setPointAt current pNum ” + ex + ” ” + wy + ” ” + ze);
    }

    #2759 Reply
    Anonymous
    Inactive

    Ok, you have some different mistakes in your code. x0/y0/z0 have to be declared in onCreate function. Moreover, the setPointAt JavaScript syntax was wrong.
    Here is the correct code… but all points are on (0, 0, 0)…
    Fon’t forget you can trace your code by using console(“hello world”); function (and log trace appear in “Received messages” in IanniX.

    //Script "Lorenz Graph"
    //Insert requests for global variables:
    function onConfigure() {
    title("Lorenz attractor");
    ask("General", "initial x", "xo", 0);
    ask("General", "initial y", "yo", 0);
    ask("General", "Initial z", "zo", 0);
    ask("Parameters", "sigma", "s", 10);
    ask("Parameters", "beta", "b", 2.66666);
    ask("Parameters", "row", "p", 28);
    ask("Euler", "Delta t", "dt",.01);
    ask("Euler", "Number of Steps", "r", 10);

    }

    //Insert code to create score:
    function onCreate() {
    var x = xo;
    var y = yo;
    var z = zo;
    var i;

    run("clear");
    run("zoom 100");
    run("center 0 0");
    run("rotate 0 0 0");
    run("registerTexture background 0 0 0 0 ./Tools/background.jpg");

    //Add curve
    run("add curve 1001");
    run("setPos current " + xo + " " + yo + " " + zo);
    run("setPointAt current 0 " + xo + " " + yo + " " + zo);
    for(var index = 0; index <= r; index++) {
    //evaluate Euler method
    x = xo + ( s * ( y - x )) * dt;
    y = yo + ( x* ( p - z ) - y ) * dt;
    z = zo + ( x * y - b * z ) * dt;
    i = index;
    //create line at xo, yo, zo to x, y, z
    console(x + " " + y + " " + z);
    DrawEul(index, x, y, z);
    //set new initial values
    xo = x;
    yo = y;
    zo = z;
    }
    run("add cursor 1");
    run("setCurve current lastCurve");
    run("setSpeed current auto 100");

    }

    //Custom function
    function DrawEul(index, ex, wy, ze) {
    //run("setPointAt current pNum " + exo + " " + wyo + " " + zeo);
    run("setPointAt current " + index + " " + ex + " " + wy + " " + ze);
    }
Viewing 4 posts - 1 through 4 (of 4 total)
Reply To: Reply #2758 in Chaos Scripts
Your information:





© IanniX Association

What is IanniX? | Download | Showcase | Forums | Research | About