   # choose a pace to try to place a baby
   babyPoint: ->
     length = 2 * @radius + Math.random() * ( @dispersalRadius() - 2 * @radius )
-    angle = Math.random() * Math.PI * 2
+    angle = Math.random() * tau
     x = Math.round( @x + length * Math.cos angle )
     y = Math.round( @y + length * Math.sin angle )
     # bounce points outside universe back in

    return unless radius > 0
    ctx = @universe.ctx
    ctx.beginPath()
    ctx.arc x, y, radius, 0, Math.PI*2
    ctx.fillStyle = color
    ctx.fill()
  setAttributes: ( options = {} ) ->

  # the direction of its gaze, and where it's headed
  drawHead: ->
    inc = @visualAngle() * qt
    @eyeSize ?= @calcEyeSize()
    @drawEye inc
    @drawEye -inc
  calcEyeSize: ->
    ratio = @visualRange() / @genes.visualRange[2]
    size = ratio * @radius / 4
    Math.max size, .75
  drawEye: (inc) ->
    a = @angle + inc
    [ x, y ] = @edgePoint a
    @drawCircle x, y, @eyeSize, 'black'
  drawTail: ->
    a = @angle + Math.PI
    [ x1, y1 ] = @edgePoint a
