     init_aspect_ratio_functions: ->
         if @opts.aspect_ratio?
             [x, y, z] = @opts.aspect_ratio
-            @opts.aspect_ratio = new THREE.Vector3 @opts.aspect_ratio...
-            @vector = (a, b, c) -> (new THREE.Vector3 a, b, c).multiply(@opts.aspect_ratio)
-            @aspect_ratio_scale = (a, b, c) -> [x*a, y*b, z*c]
-        else
-            @opts.aspect_ratio = new THREE.Vector3 1, 1, 1
+            @aspectRatio = new THREE.Vector3 @opts.aspect_ratio...
+            @vector = (a, b, c) -> (new THREE.Vector3 a, b, c).multiply(@aspectRatio)
+        else
+            @aspectRatio = new THREE.Vector3 1, 1, 1
             @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,

        material.color.setRGB opts.texture.color...

        mesh = new THREE.Mesh geometry, material
        mesh.position = @vector opts.loc...
        mesh.rotation.set opts.rotation...

        geometry.computeBoundingBox()

                        text.position[offsetDirection[1]] -= realOffset

                format = (vec, coord) =>
                    num = vec[coord]/@aspectRatio[coord]
                    Number(num.toFixed 2).toString()

                offsetDirection = ['-','y']
