         up = new THREE.Vector3()
         @controls.addEventListener 'change', =>
             if @renderer_type is 'dynamic'
-
-                if @_points?
-                    for point in @_points
-                        scale = @camera.position.distanceTo point.position
-                        point.scale.set scale, scale, scale
-
-                if @_text?
-                    up.set(0, 1, 0).applyQuaternion @camera.quaternion
-                    for mesh in @_text
-                        mesh.up = up.clone()
-                        mesh.lookAt @camera.position
+                for hook in @changeHooks
+                    hook()
 
                 @renderer.render @scene, @camera
 

            if error
                return @opts.callback? error

            @attach_to_dom @opts.parent

            if @_init
                return @opts.callback? undefined, @

            in_frame    : true

        if opts.use_cloud
            return @_addCloudPoint opts
        else
            return @_addSpherePoint opts

    addIndexFaceSet: (opts) ->
        opts = defaults opts,
