anchor.diff:          (if is-stereo
               (progn
                 ;; Left pass
  -              (projection AlignedEyeLeft<-Screen width height)
  -              (model-view AlignedEyeLeft<-VWorld :left)
  -              (dolist (shape shapes)
  -                (when shape (run shape)))
  -              (dolist (tx transforms)
  -                (when tx (run tx)))
  +              (projection AlignedEyeLeft<-Screen
  +                          AlignedEyeLeft<-VWorld
  +                          width height
  +                          :eye :left)
  +              (run *SCENE*)
   
                 ;; Right pass
  -              (projection AlignedEyeRight<-Screen width height)
  -              (model-view AlignedEyeRight<-VWorld :right)
  -              (dolist (shape shapes)
  -                (when shape (run shape)))
  -              (dolist (tx transforms)
  -                (when tx (run tx))))
  +              (projection AlignedEyeRight<-Screen
  +                          AlignedEyeRight<-VWorld
  +                          width height
  +                          :eye :right)
  +              (run *SCENE*))
               (progn                      ; No stereo (Center Eye)
  -              (projection AlignedEyeCenter<-Screen width height)
  -              (model-view AlignedEyeCenter<-VWorld :center)
  -              (dolist (shape shapes)
  -                (when shape (run shape)))
  -              (dolist (tx transforms)
  -                (when tx (run tx))))))))))
  -
  +              (projection AlignedEyeCenter<-Screen
  +                          AlignedEyeCenter<-VWorld
  +                          width height
  +                          :eye :center)
  +              (run *SCENE*)))))))
   
   ;; ---------------------------------------------------------------------grouping
   (defmethod run ((self Transform))
  
positive.code:           (sb-cga:matrix* Tx R))))))
    
  ;; ----------------------------------------------------------------------------
  (defun projection (mat width height)
    "Sets the projection matrix based on the center of the screen"
    (gl:matrix-mode :projection)          ; projection
    (let ((x (sb-cga:mref mat 0 3))
          (y (sb-cga:mref mat 1 3))
          (z (sb-cga:mref mat 2 3)))
      (let ((left (- x (/ width 2)))
            (right (+ x (/ width 2)))
            (bottom (- y (/ height 2)))
  
negative.code:                          (first viewpoints)
                           (make-instance 'Viewpoint))))
        (run BACKGROUND)
        (gl:matrix-mode :modelview)       ; model-view
        (gl:with-pushed-matrix
          (gl:mult-matrix (run Viewpoint))
          (dolist (shape shapes)
            (when shape (run shape)))
          (dolist (tx transforms)
            (when tx (run tx)))))))
  
  ;; --------------------------------------------------------------------------VR
  (defmethod run ((self VR))
    (when *SCENE*
      (with-slots (screen head 2d-mouse) (device self)
        (let* ((width (width screen))
               (height (height screen))
               (ipd (iod head))
  