anchor.diff:  (define ApplyGravity (syscall 1111 (cons
      (list type-vptr type-void* type-int+)
      (lambda (body timestep threadIndex)
  -      (NewtonBodySetForce body '(0 -9.8 0 0))
  +      (NewtonBodySetForce body '(0 -4.8 0 0))
   )) #f #f))
   
   
  
positive.code:                0 0 1 0 ; right
  
                 ,(/ (- (rand! 400) 200) 100) ; x
                 ,(+ id 20)                   ; y
                 ,(/ (- (rand! 400) 200) 100) ; z
                 1       ; posit
               ))))
     (iota 100)))
  (for-each (lambda (cube)
     (NewtonBodySetMassProperties cube 1.0 collision)
     (NewtonBodySetForceAndTorqueCallback cube ApplyGravity)
  
negative.code: ; создадим "пол"
  (define collision (or
     (NewtonCreateTreeCollision world 0)
     (runtime-error "Can't create background" #f)))
  (NewtonTreeCollisionBeginBuild collision)
  ; пол
  (NewtonTreeCollisionAddFace collision 4 '(
     -10 0  10
      10 0  10
      10 0 -10
     -10 0 -10) (* 3 4) 0) ; (* 3 4) is stride, where 4 is sizeof(float)
  ; ступеньки
  (NewtonTreeCollisionAddFace collision 4 '(
     -4 0.6  4
      4 0.6  4
      4 0.6 -4
     -4 0.6 -4) (* 3 4) 0) ; (* 3 4) is stride, where 4 is sizeof(float)
  (NewtonTreeCollisionAddFace collision 4 '(
     -2 1.2  2
      2 1.2  2
      2 1.2 -2
     -2 1.2 -2) (* 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)
  