             renderer        : undefined # 'webgl' or 'canvas' or undefined to choose best
             background      : [1,1,1]
             spin            : false     # if true, image spins by itself when mouse is over it.
-            camera_distance : 10
             aspect_ratio    : [1, 1, 1] # a triple [x,y,z] of length three, which scales the x,y,z coordinates of everything by the given values.
             stop_when_gone  : undefined # if given, animation, etc., stops when this html element (not jquery!) is no longer in the DOM
             frame           : undefined # frame options

            @opts.height ?= @opts.width*2/3

            @setDynamicRenderer()
            @init_orbit_controls()
            @init_on_mouseover()

            # add a bunch of lights

            type    : 'png'      # 'png' or 'jpeg' or 'webp' (the best)
            quality : undefined   # 1 is best quality; 0 is worst; only applies for jpeg or webp
        @renderer.domElement.toDataURL "image/#{opts.type}", opts.quality

    init_light: (color= 0xffffff) ->
        ambient = new THREE.AmbientLight(0x404040)
