   #
   canvasAnimate : ->
     this.canvasRender()
-    setTimeout (->
-      requestAnimationFrame( this.canvasAnimate.bind(this) )
-    ).bind(this), 120 # ~30 fps
+    # setTimeout (->
+    requestAnimationFrame( this.canvasAnimate.bind(this) )
+    # ).bind(this), 120 # ~30 fps
 
   #
   canvasRender : ->
+    this.canvas.camera.position.x += ( this.canvas.mouse.x - this.canvas.camera.position.x ) * 0.05
+    this.canvas.camera.lookAt(this.canvas.scene.position)
     this.canvas.renderer.render this.canvas.scene, this.canvas.camera
-    TWEEN.update()
 
   #
   canvasResize : (e)->
-    w = this.canvas.element.width()
-    h = this.canvas.element.height()
+    w = this.canvas.element.parent().width()
+    h = this.canvas.element.parent().height()
     this.canvas.camera.aspect = w / h
     this.canvas.renderer.setSize w, h
     this.canvas.camera.updateProjectionMatrix()
-
-
-  # canvasDrawColors : ->
-  #   this.canvas.scene.remove this.canvas.particles
-  #
-  #   geometry = new THREE.Geometry
-  #   geometryColors = []
-  #   for i,color of this.colors
-  #     vertex = new THREE.Vector3()
-  #     vertex.x = (color.x - Math.floor(this.canvas.matrixDimensions[1] / 2)) * 15 #this.canvas.colorBoxSize
-  #     vertex.y = (color.y - Math.floor(this.canvas.matrixDimensions[0] / 2)) * 15 #this.canvas.colorBoxSize
-  #     vertex.z = color.z / 100
-  #     geometry.vertices.push( vertex );
-  #     geometryColors[i] = new THREE.Color parseInt(color.color.hex, 16)
-  #
-  #   geometry.colors = geometryColors
-  #
-  #   material = new THREE.PointCloudMaterial { size: 20, vertexColors: THREE.VertexColors, sizeAttenuation: true }
-  #
-  #   this.canvas.particles = new THREE.PointCloud geometry, material
-  #   this.canvas.scene.add this.canvas.particles
 
   #
   canvasDrawColors : ->

    offsetZ : null
    minZ : 0
    maxZ : 0
    positionOffsetZ : 250
    matrixDimensions : [0,0] #y,x
    colorBoxSize : 5
  }
  this.colors = []
  this.colorsMatrix = []

      # $('body').append this.canvas.element
      return

    w = this.canvas.element.parent().width()
    h = this.canvas.element.parent().height()

    this.canvas.scene = new THREE.Scene()
    # this.canvas.scene.fog = new THREE.Fog 0xffffff, 1, 10000

    this.canvas.camera = new THREE.PerspectiveCamera 25, w / h, 1, 86400
    this.canvas.camera.position.set 0, 0, 3600

    this.canvas.renderer = new THREE.WebGLRenderer { canvas: this.canvas.element.get(0) }
    this.canvas.renderer.setClearColor 0xFFFFFF, 1
    this.canvas.renderer.setPixelRatio window.devicePixelRatio
    this.canvas.renderer.setSize w, h

    this.canvas.mouse = new THREE.Vector2()
    this.canvas.matrixDimensions = [6,10]#[24,36] #y,x
    this.dataResetMatrix()
    this.dataSetColorBoxSize()
    this.canvasDrawColors()

    $(document)
      .on 'mousemove', this.canvasEventMousemove.bind(this)
