anchor.diff:                 0 0 1 0 ; right
   
                  ,(/ (- (rand! 400) 200) 100) ; x
  -               ,(+ id 20)                   ; y
  +               ,(+ id 10)                   ; y
                  ,(/ (- (rand! 400) 200) 100) ; z
                  1       ; posit
                ))))
  -   (iota 100)))
  +   (iota 20)))
   (for-each (lambda (cube)
      (NewtonBodySetMassProperties cube 1.0 collision)
      (NewtonBodySetForceAndTorqueCallback cube ApplyGravity)
  
positive.code: ; создадим "пол"
  (define collision (or
     (NewtonCreateTreeCollision world 0)
     (runtime-error "Can't create bacground" #f)))
  (NewtonTreeCollisionBeginBuild collision)
  (NewtonTreeCollisionAddFace collision 4 '(
     -100 0  100
      100 0  100
      100 0 -100
     -100 0 -100) (* 3 4) 0) ; (* 3 4) is stride, where 4 is sizeof(float)
  (NewtonTreeCollisionEndBuild collision 1)
  (NewtonCreateDynamicBody world collision '(1 0 0 0  0 1 0 0  0 0 1 0  0 0 0 1))
  (NewtonDestroyCollision collision)
  
negative.code: 
  
  (define $ (or
     (dlopen "./libNewton.so")
     (dlopen "newton")
     (runtime-error "Can't load newton library" #f)))
  
  