     # initialize functions to create new vectors, which take into account the scene's 3d frame aspect ratio.
     init_aspect_ratio_functions: ->
         if @opts.aspect_ratio?
-            x = @opts.aspect_ratio[0]
-            y = @opts.aspect_ratio[1]
-            z = @opts.aspect_ratio[2]
-            @vector3 = (a, b, c) -> new THREE.Vector3 x*a, y*b, z*c
-            @vector  = (v) -> new THREE.Vector3 x*v[0], y*v[1], z*v[2]
-            @aspect_ratio_scale = (v) -> [x*v[0], y*v[1], z*v[2]]
+            [x, y, z] = @opts.aspect_ratio
+            @vector = (a, b, c) -> new THREE.Vector3 x*a, y*b, z*c
+            @aspect_ratio_scale = (a, b, c) -> [x*a, y*b, z*c]
         else
-            @vector3 = (a, b, c) -> new THREE.Vector3 a, b, c
-            @vector  = (v) -> new THREE.Vector3 v[0], v[1], v[2]
-            @aspect_ratio_scale = (v) -> v
+            @vector = (a, b, c) -> new THREE.Vector3 a, b, c
+            @aspect_ratio_scale = (a, b, c) -> [a, b, c]
 
     data_url: (opts) ->
         opts = defaults opts,

                spriteMaterial = new THREE.SpriteMaterial map: texture
                particle = new THREE.Sprite spriteMaterial

                p = @aspect_ratio_scale o.loc
                particle.position.set p[0], p[1], p[2]
                @_points.push [particle, o.size/200]

            when 'canvas'

        mx = (x0+x1)/2
        my = (y0+y1)/2
        mz = (z0+z1)/2
        @_center = @vector mx, my, mz

        if @camera?
            d = 1.5*Math.max @aspect_ratio_scale(x1-x0, y1-y0, z1-z0)...
            @camera.position.set mx+d, my+d, mz+d/2

        if o.draw
