anchor.diff:        (setf iteration (+ iteration 1))
         
         (gl:clear gl:color-buffer-bit)
  +      
  +      (gl:uniform color-loc (cast (- 1.0 speed) f32) (cast speed f32) (cast speed f32) 1)      
  +      (range it 0 (cast circle-cnt i64)
  +	     (let ((circle (deref (ptr+ circles it))))
  +	       (let ((dist (pt-dist cam-pos (vec (member circle x) (member circle y)))))
  +		 (when (< dist (member circle z))
  +		   (setf speed (* 0.998 speed))))
  +	       (gl:bind-buffer gl:array-buffer vbo-circle)
  +	       (gl:vertex-attrib-pointer 0 2 gl:float gl:false 0 null) 
  +	       (gl:uniform offset-loc (vec (member circle x) (member circle y)))
  +	       (gl:uniform size-loc (vec (member circle z) (member circle z)))
  +	       (gl:draw-arrays gl:line-strip 0 (cast circ-pts u32))))
  +
  +
         (gl:bind-buffer gl:array-buffer vbo)
         (gl:vertex-attrib-pointer 0 2 gl:float gl:false 0 null) 
         (gl:uniform offset-loc player-pos)
         (gl:uniform size-loc (vec 1 1))
         (gl:uniform color-loc 0.5 0.6 0.7 1)
         (gl:draw-arrays gl:line-strip 0 (cast points-cnt u32))
  +
         
  -      (range it 0 (cast circle-cnt i64)
  -	     (let ((circle (deref (ptr+ circles it))))
  -	       (let ((dist (pt-dist cam-pos (vec (member circle x) (member circle y)))))
  -		 (print dist newline)
  -		 (when (< dist (member circle z))
  -		   (setf speed (* 0.995 speed))))
  -	       (gl:bind-buffer gl:array-buffer vbo-circle)
  -	       (gl:vertex-attrib-pointer 0 2 gl:float gl:false 0 null) 
  -	       (gl:uniform offset-loc (vec (member circle x) (member circle y)))
  -	       (gl:uniform size-loc (vec (member circle z) (member circle z)))
  -	       (gl:draw-arrays gl:line-strip 0 (cast circ-pts u32))))
         (glfw:swap-buffers win)
         (print (- (timestamp) ts) " µs cnt:" points-cnt newline))
   
  
positive.code: (load "gl-ext.lisp")
  
  (glfw:init)
  (defvar win (glfw:create-window 512 512 "test.." null null))
  (glfw:make-current win)
  (defvar prog (gl:create-program))
  (defvar frag (gl:create-shader gl:fragment-shader))
  
negative.code:   (vec2-length (- a b)))
  
  (let ((iteration 0)
        (speed 2.0))
    (while (< iteration 40000)
      (let ((ts (timestamp)))
        (let ((lastpt (deref (ptr+ points (cast (- points-cnt 1) i64)))))
  