       eachObject: (iterator) ->
         I.objects.each iterator
 
+      ###*
+      Start the game simulation.
+      @methodOf Engine#
+      @name start
+      ###
       start: () ->
         unless intervalId
           intervalId = setInterval(() ->
             step()
           , 1000 / I.FPS)
 
+      ###*
+      Stop the simulation.
+      @methodOf Engine#
+      @name stop
+      ###
       stop: ->
         clearInterval(intervalId)
         intervalId = null

    canvas = I.canvas || $("<canvas />").powerCanvas()

    self = Core(I).extend
      add: (entityData) ->
        self.trigger "beforeAdd", entityData


      play: ->
        I.paused = false

      ###*
      Pause the simulation
      @methodOf Engine#
      @name pause
      ###
      pause: ->
        I.paused = true

