|
Foamy Ether - A Framework for a Theory Of Everything Conceived and written by
Peter C.M. Hahn
C.E.T. |
//////////////////////////////////////////////////
//
2DblankArray.thd
// Blank ether
array with alternating colors
//////////////////////////////////////////////////
// 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;
// set colors
var
green = RGB(108, 255, 108);
var
white = RGB(200, 200, 200);
// choose some
default material
//Material
(density, springConstant, dampingConstant, staticFriction, dynamicFriction,
thresholdVelocity);
var mat
= Material(1e-8, .0001, .00001, 1, 1);
factory.material = mat ;
// set spring
and damper constants
var
spngCnst = .00000001;
var
dmpCnst = .00000005;
// set
dimensions of array
var
width = 15; // enter number of balls for array width
var
depth = 15; // enter number of balls for array depth
var
spacing = 20; // enter spacing between balls
var
ball = "";
// position
camera in middle of array
// consider
camera to be hovering over array looking down on x z plane
scene.camera = {spacing*width/2, spacing*width,
spacing*depth/2};
// point camera
down at middle of array
scene.lookAt = {spacing*width/2, 0, spacing*depth/2};
// build 2D
array of spheres
var s =
array();
for (var
x=0; x < width; x++) {
s.append(array());
for
(var z=0; z < depth; z++) {
var ball = Sphere(2, {x*spacing,0,z*spacing});
// color every 5th ball on z & x axis
if(x%5 == 1 || z%5 == 1){
ball.color = green;
}else{
ball.color = white;
}
s[x].append(ball);
// set all outer edge balls as
stationary otherwise array collapses
if (x==0||x==width-1||z==0||z==depth-1){
ball.static = true;
}
}
}
// build array
of springs and dampers attaching to spheres on x axis
var spx
= array();
var dpx
= array();
var
dmpr = "";
var
sprng = "";
for
(x=0; x < width-1; x++) {
spx.append(array());
dpx.append(array());
for
(var z=0; z < depth; z++) {
// make spring and attach to
adjacent spheres
sprng = Spring(s[x][z],{0,0,0},s[x+1][z],{0,0,0});
sprng.springConstant =
spngCnst;
spx[x].append(sprng);
// make damper and attach to adjacent
spheres
var dmpr = Damper(s[x][z],{0,0,0},s[x+1][z],{0,0,0});
dmpr.damperConstant =
dmpCnst;
// color every 5th damper green on
x axis
if(z%5 == 1){
dmpr.color = green;
}else{
dmpr.color = white;
}
dpx[x].append(dmpr);
}
}
// build array
of springs and dampers attaching to spheres on z axis
var spz
= array();
var dpz
= array();
for
(x=0; x < width; x++) {
spz.append(array());
dpz.append(array());
for
(var z=0; z < depth-1; z++) {
// make spring and attach to
adjacent spheres
var sprng = Spring(s[x][z],{0,0,0},s[x][z+1],{0,0,0});
sprng.springConstant =
spngCnst;
spz[x].append(sprng);
// make damper and attach to
adjacent spheres
var dmpr = Damper(s[x][z],{0,0,0},s[x][z+1],{0,0,0});
dmpr.damperConstant =
dmpCnst;
// color every 5th damper green on
z axis
if(x%5 == 1){
dmpr.color = green;
}else{
dmpr.color = white;
}
dpz[x].append(dmpr);
}
}
// render scene
WaitFrame();
|
Peter C.M. Hahn C.E.T. |
|