World {
  Name "Example World 1 (Big World)";
  Version 0x00010101;

  Object {
    // first define the vertices
    Vertex A (-40,-40,-40);
    Vertex B ( 40,-40,-40);
    Vertex C ( 40, 40,-40);
    Vertex D (-40, 40,-40);
    Vertex E (-40,-40, 40);
    Vertex F ( 40,-40, 40);
    Vertex G ( 40, 40, 40);
    Vertex H (-40, 40, 40);
    // then define the polygons
    Poly (B,A,C);  // front
    Poly (D,C,A);  // front
    Poly (B,C,F);  // right
    Poly (G,F,C);  // right
    Poly (A,E,D);  // left
    Poly (H,D,E);  // left
    Poly (D,H,C);  // bottom
    Poly (G,C,H);  // bottom
    Poly (A,B,E);  // top
    Poly (F,E,B);  // top
    Poly (E,F,H);  // back
    Poly (G,H,F);  // back
    } Box80;
  Object {
    Vertex A (0,-40,0);
    Vertex B (-20,40,20);
    Vertex C (-20,40,-20);
    Vertex D (20,40,-20);
    Vertex E (20,40,20);
    Poly(A,B,C);
    Poly(A,C,D);
    Poly(A,D,E);
    Poly(A,E,B);
    Poly(B,E,D);
    Poly(B,D,C);
    } Pyramid;
  Object {
    Vertex A (0,-30,0);
    Vertex B (-30,0,0);
    Vertex C (0,0,30);
    Vertex D (30,0,0);
    Vertex E (0,0,-30);
    Vertex F (0,30,0);
    Poly(A,B,E);    Poly(A,E,D);
    Poly(A,D,C);    Poly(A,C,B);
    Poly(D,E,F);    Poly(C,D,F);
    Poly(B,C,F);    Poly(E,B,F);
    } Diamond;
  Object {
    Vertex A (-20,-20,-20); Vertex B (20,-20,-20);
    Vertex C (20,20,-20);   Vertex D (-20,20,-20);
    Vertex E (-20,-20,20);  Vertex F (20,-20,20);
    Vertex G (20,20,20);    Vertex H (-20,20,20);
    Vertex I (-120,0,0);    Vertex J (0,0,120);   // red
    Vertex K (120,0,0);     Vertex L (0,0,-120);  // white
    Vertex M (0,120,0);     Vertex N (0,-120,0);  // blue
    Poly(B,N,A) blue;  Poly(F,N,B) blue;  Poly(E,N,F) blue;  Poly(A,N,E) blue;
    Poly(B,K,F) white; Poly(F,K,G) white; Poly(G,K,C) white; Poly(C,K,B) white;
    Poly(F,J,E) red;   Poly(G,J,F) red;   Poly(H,J,G) red;   Poly(E,J,H) red;
    Poly(A,L,B) red;   Poly(B,L,C) red;   Poly(C,L,D) red;   Poly(D,L,A) red;
    Poly(D,M,C) blue;  Poly(C,M,G) blue;  Poly(G,M,H) blue;  Poly(H,M,D) blue;
    Poly(E,I,A) white; Poly(A,I,D) white; Poly(D,I,H) white; Poly(H,I,E) white;
    } SpikeStar;
  Object {
    Vertex LowerLeft  (-20, 20, 0);
    Vertex LowerRight (20, 20, 0);
    Vertex Upper      (0, -20, 0);
    Poly   (LowerLeft, LowerRight, Upper);
    Poly   (Upper, LowerRight, LowerLeft);
    } Triangle;
  Object {
    Vertex A (-60,-60,-15); Vertex B (-60,-60,15); Vertex C (60,-60,-15);  Vertex D (60,-60,15);
    Vertex E (-60,-30,-15); Vertex F (-60,-30,15); Vertex G (-30,-30,-15); Vertex H (-30,-30,15);
    Vertex I (30,-30,-15);  Vertex J (30,-30,15);  Vertex K (60,-30,-15);  Vertex L (60,-30,15);
    Vertex M (-60,30,-15);  Vertex N (-60,30,15);  Vertex O (-30,30,-15);  Vertex P (-30,30,15);
    Vertex Q (30,30,-15);   Vertex R (30,30,15);   Vertex S (60,30,-15);   Vertex T (60,30,15);
    Vertex U (-60,60,-15);  Vertex V (-60,60,15);  Vertex W (60,60,-15);   Vertex X (60,60,15);
    Poly (D,B,A); Poly (D,A,C); Poly (X,D,C); Poly (X,C,W);
    Poly (W,U,V); Poly (W,V,X); Poly (A,B,V); Poly (A,V,U);
    Poly (G,H,J); Poly (G,J,I); Poly (I,J,R); Poly (I,R,Q);
    Poly (R,P,O); Poly (R,O,Q); Poly (H,G,O); Poly (H,O,P);
    Poly (C,A,E); Poly (C,E,K); Poly (K,I,Q); Poly (K,Q,S);
    Poly (S,M,U); Poly (S,U,W); Poly (O,G,E); Poly (O,E,M);
    Poly (B,D,L); Poly (B,L,F); Poly (J,L,T); Poly (J,T,R);
    Poly (N,T,X); Poly (N,X,V); Poly (F,H,P); Poly (F,P,N);
    } SquareRing;
  Object {
    Vertex A(0,0,-8);    Vertex B(-16,-39,0); Vertex C(16,-39,0); Vertex D(39,-16,0);
    Vertex E(39,16,0);   Vertex F(16,39,0);   Vertex G(-16,39,0); Vertex H(-39,16,0);
    Vertex I(-39,-16,0); Vertex J(0,0,8);
    Poly(B,A,C); Poly(C,A,D); Poly(D,A,E); Poly(E,A,F); Poly(F,A,G); Poly(G,A,H); Poly(H,A,I); Poly(I,A,B);
    Poly(C,J,B); Poly(D,J,C); Poly(E,J,D); Poly(F,J,E); Poly(G,J,F); Poly(H,J,G); Poly(I,J,H); Poly(B,J,I);
    } Saucer;
  Object {
    Vertex A (33,53,-29);  Vertex B (51,45,10);    Vertex C (0,69,-4);    Vertex D (-15,-43,-52);Vertex E (41,25,50);
    Vertex F (68,1,13);    Vertex G (-14,31,60);   Vertex H (11,-4,68);   Vertex I (-64,-24,11); Vertex J (48,-21,45);
    Vertex K (8,-47,50);   Vertex L (-35,-58,-14); Vertex M (30,-24,-57); Vertex N (45,-51,13);  Vertex O (-47,18,-48);
    Vertex P (61,15,-30);  Vertex Q (-32,-16,59);  Vertex R (-8,47,-50);  Vertex S (-35,53,26);  Vertex T (-40,53,-17);
    Vertex U (20,-60,-29); Vertex V (2,-69,9);     Vertex W (-13,-1,-68); Vertex X (-67,18,-5);  Vertex Y (-35,-51,32);
    Vertex Z (27,19,-61);  Vertex AA(-56,-22,-35); Vertex BB(-56,14,38);  Vertex CC(13,58,36);   Vertex DD(59,-29,-22);
    Poly(I,AA,L); Poly(H,J,E);  Poly(O,R,W);  Poly(BB,G,S); Poly(Q,Y,K);  Poly(J,F,E);
    Poly(CC,G,E); Poly(H,K,J);  Poly(CC,E,B); Poly(D,L,AA); Poly(D,W,M);  Poly(O,W,D);
    Poly(F,J,N);  Poly(X,AA,I); Poly(M,Z,P);  Poly(Z,W,R);  Poly(M,U,D);  Poly(F,P,B);
    Poly(U,M,DD); Poly(K,H,Q);  Poly(V,N,J);  Poly(A,P,Z);  Poly(Q,H,G);  Poly(T,S,C);
    Poly(T,O,X);  Poly(Q,BB,I); Poly(H,E,G);  Poly(U,V,D);  Poly(E,F,B);  Poly(DD,N,U);
    Poly(V,K,Y);  Poly(C,CC,A); Poly(T,R,O);  Poly(W,Z,M);  Poly(X,I,BB); Poly(Z,R,A);
    Poly(V,Y,L);  Poly(AA,X,O); Poly(BB,S,X); Poly(G,CC,S); Poly(DD,M,P); Poly(AA,O,D);
    Poly(R,C,A);  Poly(V,U,N);  Poly(CC,C,S); Poly(DD,F,N); Poly(F,DD,P); Poly(R,T,C);
    Poly(B,P,A);  Poly(BB,Q,G); Poly(J,K,V);  Poly(I,L,Y);  Poly(V,L,D);  Poly(B,A,CC);
    Poly(I,Y,Q);  Poly(S,T,X);
    } Ball;

  }; // end of World block


Palette {
  Color -256 (0,255,0);
  Color 0    (0,0,0);
  Color 256  (0,255,0);
  } green;

Palette {
  Color -256 (0,0,255);
  Color 0    (0,0,0);
  Color 256  (0,0,255);
  } blue;

Palette {
  Color -256 (255,0,0);
  Color 0    (0,0,0);
  Color 256  (255,0,0);
  } red;

Palette {
  Color -256 (255,255,255);
  Color 0    (0,0,0);
  Color 256  (255,255,255);
  } white;

Palette {
  Color -256 (255,255,255);
  Color 0    (0,0,0);
  Color 42   (255,0,0);
  Color 85   (255,128,0);
  Color 127  (255,255,0);
  Color 170  (0,0,255);
  Color 212  (0,255,0);
  Color 255  (255,0,255);
  Color 256  (255,255,255);
  } Rainbow;
  
Palette {
  Color 0   (0,0,0);
  Color 85  (255,0,0);
  Color 170 (255,128,0);
  Color 256 (255,255,0);
  } Fire;

Path {
  Segment (-77,-146)      "EESESSESESSESSSSESESSESSSESESSESSSESSESSSESSSESESESSESESSESSSESESSESSSES
                           ESSESSSESSESSSESSSESESESESESSESSSSESESSESSSESSESSESSESSESSESSESSESSSESES
                           ESSESSESESSWWSWWSWSSWSWWSWSWSWWSWSWSSSWSWSWSWSSWSWSSWSWSWSSWSSSSSSSWSSWS
                           SSSSSWSWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
                           WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWNNNNNNNNNNNNNENNNNNNNN
                           ENNNNNNNENNNENNENNNNNNNENNNNNENENNENNENENNNNNNENNENENNNENNENENENNNENNENN
                           NNENNENENNENNENENENENENNNENNENENENENENNENENENENENENNENENENENNENEENENENEN
                           ENENENEENENENENENENEENENENENENEENEEENENEENENENENEEENENEENEENENE";
  Segment (77,-144)       "EEESESEESESEESESESEESEESESEEESESESESEESESEESESESESESESESESESEESESESESESE
                           SESESESESESSSESESEESESSESSESESESSSESESESESESSESSESESESESESSESSSSESSESSSE
                           SSSESESESSESESSESSSSSSESSESSSESSSSESESSESSSSSSESSESSSSSSSSSESSSSSSSSSSSS
                           SESSSSSSSSSWWSWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
                           WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWNNNNNNWNNWNNNNNNN
                           WNWNWNWNNWNWNNWNNWNWNWNNNWNWNWWNWNWNWWNWWNWNWNWNNNENNNENNENENNNENENENENN
                           NNENNENNENENENNNENNENENNNENNENENNENENENNENNENENNNNNNENNENENNENNENENNENEN
                           ENNNENNENENNENNENENNNENNENENENNNENNENNNENNENENNNENNENEN";
  Segment (-4,-29)        "EEEEEEEESEEESEESEEESEESESSESESESEESESSESSSESESSESSSSSSESSSSSSWSSSSSSSWSS
                           WSWSSSWSSWSWSWSWSWSWSWSWWWWWSWWSWWWSWWWWWWWWNWWWNWWNWWWWWNWNWNWWNWNNWNWN
                           NWNNNWNWNWNNWNNWNNNWNNNNNNNNENNNENNENENENENNNENNENENENENENENENEENEEENEEN
                           EEE";
  Segment (-30,41)        "EESESEEESEESESESEESEEEEEESEEEEEEEEEEEEEEEEEEEEEEEENEEEEENEEENENENEENEEEN
                           EEESSESSESESESESESESSESESSESESESESSESESESESESSESSSESESESESESSESSESESEESE
                           SSESSESESESSESESSESSESESESESESESSESESESESESSESSESESESSESESSESESESESESESE
                           SSSESESSESESESESSSSWSWSWSWSWWSWWWSWWWSWSWSWWSWSWWSWWWSWWSWWWSWWWWSWSWWSW
                           WSWSWSWWWWWSWWSWWWWWWSWWWWWWWSWWSWWWWWWWWWSWWWWWWWWWWSWWSWWWWWWWWWWWWWWW
                           WWWWWWWWWWWWWWWWNWNWWWWWWWWWWWWNWWWWWWWWWNWWNWWWWWWWNWWWWWNWNWWWWWWNWWWN
                           WWNWWNWNWNWWWWWNWWNWNWWWNWWNWNWNWWWNWWNWWWNWWNWNWWNWNWNNNNNENENENENENENE
                           NNENENNENENENENENENNNENNENENENENENNENNENENNNENEENENENENNENNENENNENENENNE
                           NNENENNENENENENENENNENENENNENNENENNENENENENNENENENENENNENENENNENNENENNE";
  } NukePath;

Scene {
  Name "Big Example Scene";
  Version 0x00010101;
  Light (0,0,1);

  Item Diamond {
    Palette Fire;
    CmdStream Translation {
      Move   60  (0, -256, 512);
      Stay   100;
      Spline 120 (128, 0, 512) (0, 256, 400) 60 60;
      Stay   20;
      Move   120 (0, -256, 512);
      Orbit  240 (25, -200, 400) 0.0 2.2;  // Pc, Alpha(z) (degrees), V(theta) [degrees/frame]
      Move   120 (0, -256, 512);
      Orbit  120 Star1 0.0 2.2;  // Object Name, Alpha(z) (degrees), V(theta) [degrees/frame]
      Stay   100;
      };
    CmdStream Rotation {
      Spin     60  -6.0;             // degrees/frame
      Stay     60;
      Move     120 0.0 -90.0 45.0;  // Phi(x) Phi(y) Theta(z)  [degrees]
      Stay     60;
      MoveSpin 120 4.5 90.0 0.0;    // V(Theta(z)) [degrees/frame] Phi(x) Phi(y) [degrees]
      Spin     60  6.0;             // degrees/frame
      Stay     60;
      };
    } Diamond1;


  Item SpikeStar {
    Palette blue;
    CmdStream Translation {
      Move   60  (0, 256, 512);
      Stay   100;
      Spline 120 (-128, 0, 512) (0, -256, 400) 60 60;
      Stay   20;
      Move   120 (0, 256, 512);
      Stay   100;
      };
    CmdStream Rotation {
      Spin     60  6.0;             // degrees/frame
      Stay     60;
      Move     120 90.0 0.0 45.0;   // Phi(x) Phi(y) Theta(z)  [degrees]
      Stay     60;
      MoveSpin 120 3.0 0.0 -90.0;   // Phi(x) Phi(y) [degrees] V(Theta(z)) [degrees/frame]
      Spin     60  6.0;             // degrees/frame
      Stay     60;
      };
    } Star1;


  Item Points {
    CmdStream Translation {
      Move 120 (0,-256,512);
      Stay 120;
      Move 120 (256,0,512);
      Stay 120;
      Move 120 (0,256,512);
      Stay 120;
      Move 120 (-256,0,512);
      Stay 120;
      Move 60 (0,0,400);
      Stay 60;
      };
    CmdStream Rotation {
      Stay 120;
      Move 180 90.0 0.0 90.0;
      Stay 60;
      Move 180 45.0 -45.0 120.0;
      Stay 60;
      Move 180 0.0 -45.0 180.0;
      Stay 60;
      Move 180 0.0 -90.0 180.0;
      Stay 60;
      Move 180 0.0 -90.0 -90.0;
      Stay 60;
      Move 180 0.0 0.0 0.0;
      // original position
      Spin 180 2.0;
      };
    CmdStream Morph {
      EmptyCube     60 1500 20;     // point spacing              [pixels]
      FilledCube    60 120 20;      // point spacing              [pixels]
      Sphere        60 120 100      // Minimum Radius             [pixels]
                           120      // Maximum Radius             [pixels]
                           15.0     // Velocity Theta(R)          [degrees/frame] 
                           8        // Radial Points              [count]
                           125;     // Axial Points               [count]
      Corkscrew     60 120 100      // Minimum Radius             [pixels]
                           200      // Height                     [pixels]
                           1.5      // Minimum Velocity (Theta)   [degrees/frame]
                           0.5;     // Minimum Velocity (Z)       [pixels/frame]
      GridCurve     60 120 400      // side length                [pixels]
                           1000     // Radius                     [pixels]
                           20       // Stationary Frames          [count]
                           40;      // Moving Frames              [count]
      RandomCloud   60 120 100      // X Size                     [pixels]
                           100      // Y Size                     [pixels]
                           100;     // Z Size                     [pixels]
      SnowField     60 120 448      // Initial Field Size         [pixels]
                           0.285    // Scale Factor               [degrees/pixel]
                           0.375    // Maximum Sin Acceleration   [degrees/frame^2]
                           0.25     // Positive Threshold         [coefficient]
                           -0.25    // Negative Threshold         [coefficient]
                           0.625    // Maximum Force              [coefficient]
                           0.00976; // Friction Coefficient       [coefficient]
      GaseousSphere 60 600 150      // Radius                     [pixels]
                           20       // Points                     [count]
                           0.5      // Minimum Velocity           [pixels/frame]
                           7.5      // Maximum Velocity           [pixels/frame]
                           0;       // Minimum Radius             [pixels]
      BouncingCubes 60 120 800      // Arena Size                 [pixels]
                           70       // Cube Size                  [pixels]
                           8        // Inter Points               [count]
                           0.2539   // Gravity Strength           [coefficient]
                           0.39868  // Outer Spring Coefficient   [coefficient]
                           0.07629  // Outer Damper Coefficient   [coefficient]
                           0.58313  // Inner Spring Coefficient   [coefficient]
                           0.07019; // Inner Damper Coefficient   [coefficient]
      Vortex        60 120 120      // Minimum Radius at top      [pixels]
                           30       // Maximum Velocity (Theta)   [degrees/frame]
                           2.0      // Minimum Velocity (Final Z) [pixels/frame]
                           10.0;    // Maximum Velocity (Final Z) [pixels/frame]
                                    // vortex height is always 256
      Marquee       60 120 NukePath // Path Name
                           1.0      // Velocity                   [steps/frame]
                           200;     // Numeber of points          [count]
      SaturnRings   60 120 20       // Ring Height                [pixels]
                           100      // Minimum Ring Radius        [pixels]
                           200      // Maximum Ring Radius        [pixels]
                           80       // Planet Radius              [pixels]
                           1.0      // Planet Rotation Velocity   [degrees/frame]
                           0.25;    // Minimum Ring Velocity      [degrees/frame]
      };  // end of morphing command stream


    };    // end of Points object definition
  
  };  // end of scene description


// end of file
