|
Foamy Ether - A Framework for a Theory Of Everything Conceived and written by
Peter C.M. Hahn
C.E.T. |
//////////////////////////////////////////////////
// 3Darray.thd
// This shows a 3D ether array.
//////////////////////////////////////////////////
// set
background color
scene.backColor=RGB(92,92,98);
// turn gravity
off
scene.gravity={0,0,0};
// remove
shadows for faster rendering
scene.shadow = false;
// use degrees
as metric for angles
factory.useDegrees = true;
// turn
collision detection off so things don't blow up
factory.detectCollision = false;
var spngCnst
= .00000001; // set spring constant
var dmpCnst
= .0000005; // set damper constant
// set colors
var green = RGB(108, 255, 108);
// build array
of spheres
var width = 7; // enter number of balls for array width
var depth = 7; // enter number of balls for array depth
var height = 7; // enter number of balls for array height
var spacing = 20; // enter spacing between balls
// position
camera
scene.camera =
{width*spacing/4, height*spacing, -depth*spacing};
// point cammera
scene.lookAt =
{width*spacing/2, height*spacing/3-5, depth*spacing/2};
// build 3D
array of balls
var s = array();
for (var x=0; x < width; x++) {
s.append(array());
for (var y=0; y < height; y++) {
s[x].append(array());
for (var
z=0; z < depth; z++) {
var
ball = Sphere(1, {x*spacing,y*spacing,z*spacing});
ball.color
= green;
//ball.visible
= false;
s[x][y].append(ball);
// set all outer edge balls as
stationary
if
(x==0||x==width-1||z==0||z==depth-1||y==0||y==height-1){
ball.static
= true;
}
}//z
}//y
}//x
// build 3D
array of springs and dampers attaching to balls on x axis
var spx
= array();
var dpx
= array();
for
(x=0; x < width-1; x++) {
spx.append(array());
dpx.append(array());
for (var
y=0; y < height; y++){
spx[x].append(array());
dpx[x].append(array());
for
(var z=0; z < depth; z++) {
var sprng
= Spring(s[x][y][z],{0,0,0},s[x+1][y][z],{0,0,0});
sprng.springConstant
= spngCnst;
spx[x][y].append(sprng);
var dmpr
= Damper(s[x][y][z],{0,0,0},s[x+1][y][z],{0,0,0});
dmpr.damperConstant = dmpCnst;
dmpr.color
= green;
dpx[x][y].append(dmpr);
}//z
}//y
}//x
// build array
of springs and dampers attaching to balls on z axis
var spz
= array();
var dpz
= array();
for
(x=0; x < width; x++) {
spz.append(array());
dpz.append(array());
for (var
y=0; y < height; y++){
spz[x].append(array());
dpz[x].append(array());
for
(var z=0; z < depth-1; z++) {
var sprng
= Spring(s[x][y][z],{0,0,0},s[x][y][z+1],{0,0,0});
sprng.springConstant
= spngCnst;
spz[x][y].append(sprng);
var dmpr
= Damper(s[x][y][z],{0,0,0},s[x][y][z+1],{0,0,0});
dmpr.damperConstant
= dmpCnst;
dmpr.color
= green;
dpz[x][y].append(dmpr);
}//z
}//y
}//x
// build array
of springs and dampers attaching to balls on y axis
var spy = array();
var dpy
= array();
for
(x=0; x < width; x++) {
spy.append(array());
dpy.append(array());
for (var
y=0; y < height-1; y++){
spy[x].append(array());
dpy[x].append(array());
for
(var z=0; z < depth; z++) {
var sprng
= Spring(s[x][y][z],{0,0,0},s[x][y+1][z],{0,0,0});
sprng.springConstant
= spngCnst;
spy[x][y].append(sprng);
var dmpr
= Damper(s[x][y][z],{0,0,0},s[x][y+1][z],{0,0,0});
dmpr.damperConstant
= dmpCnst;
dmpr.color
= green;
dpy[x][y].append(dmpr);
}
}
}
// render scene
WaitFrame();
|
Peter C.M. Hahn C.E.T. |
|