ok, newton or ode, i would prefer ode, i looked at it,
much easier. i hope monk didn't get too far, it would be unfortunate to have that wasted.
[edit] here is a little demo: ( if you have a recent upgrade it shouldn't need a dll)
rem Init DBPro
sync on : sync rate 60 : autocam off
position camera 0,200,-500
point camera 0,100,0
randomize timer()
create bitmap 1,30,30
ink rgb(255,0,0), rgb(0,0,0)
box 1,1,30,15
ink rgb(0,255,0), rgb(0,0,0)
box 1,16,30,30
get image 1,1,1,30,30,1
delete bitmap 1
make light 1
position light 1, 200, 400, -100
point light 1, 0,125,0
rem Init ODE
ode start : ode set world gravity 0,-20,0 : ode set world step 0.04
ode set world erp (0.2)*2.5 : ode set world cfm (10^-5)*2.5
rem Make a floor with sides
make object box 1,800,10,500
position object 1,0,-5,0
ode create static box 1
ode set contact fdir1 1, 10
make object box 2,800,20,10
position object 2,0,0,-250
ode create static box 2
make object box 3,800,20,10
position object 3,0,0,250
ode create static box 3
make object box 4,10,20,500
position object 4,400,0,0
ode create static box 4
make object box 5,10,20,500
position object 5,-400,0,0
ode create static box 5
for n = 2 to 5: Color object n, rgb(128,0,128): next n
rem Make physics based cubes and stack 'em
for n = 1 to 5
for m = 1 to 10
cube = 100 + m + ((n-1) * 10)
make object cube cube,50
color object cube, rgb (rnd(128) + 128,rnd(128) + 128,rnd(128) + 128)
position object cube,(-250) + ((m-1) * 50.1),25 + (n-1) * 50.2, rnd(10) / 10.0
ode create dynamic box cube
ode set contact fdir1 cube, 100
` If bottom row, make static...
`if n = 1 then ode set response cube, 1: ode set gravity cube, 0
` Make bouncy...
`ODE SETSURFACE MODE cube, 1, 1
`ODE SET CONTACT cube,1,-10000
`ODE SETSURFACE MODE CONTACT BOUNCE cube, 10
`ode set contact bounce cube, 0.5
`ODE SET BODY MASS cube, 100
next m
next n
rem Make a physics based sphere
make object sphere 200,100,6,10
texture object 200,1
position object 200, 0,50,-225
ode create dynamic sphere 200
ode set contact fdir1 200, 100
time = timer()
while timer() < time + 2000
sync
endwhile
`ode add force 200, -10 + rnd(20),100,30,0,10,0
ode set linear velocity 200, rnd(20) - 10, 00, 20
do
ode update
sync
loop

forever loading...