-nancheck = (v) ->
-    if v? and (v!=v or v[0]!=v[0]) then debugger
-    v
-
 {mat2, mat3, mat4, vec2, vec3, vec4, quat} = require 'gl-matrix'
 {update_ob_physics} = require './physics.coffee'
 {clamp} = window

        # TODO document and distinguish:
        # - methods that one can override (init, step)
        # - members usually assigned in step()
        # - members used in evaluate()
        # - methods for regular usage, that can be chained
        {exclude=[], start_marker, end_marker} = options or {}
        full_exclude_list = []

                full_exclude_list.push thing
        @objects = for ob in objects when ob not in exclude then ob
        {@scene, scene: {@context}} = @objects[0]
        # Position in animation frames, usually assigned in step(),
        # used when evaluating the animation
        @pos = 0
        # Set and used when evaluating the animation to calculate frame_delta
        @last_eval = performance.now()
        # All the rest are only used in step()
        @speed = 0
        # Set start_frame and end_frame
        # from markers (if any) or from scene
        {markers_by_name, frame_start, frame_end} = @scene
