code: function( now ){
  
              var time = this._time
                  ,warp = this._warp
                  ,invWarp = 1 / warp
                  ,dt = this._dt
                  ,animDt = dt * invWarp
                  ,animMaxJump = this._maxJump * invWarp
                  ,animDiff
                  ,worldDiff
                  ,target
                  ,meta = this._meta
                  ;
  
              // if it's paused, don't step
              // or if it's the first step...
              if ( this._paused || this._animTime === undefined ){
                  this._animTime = now || this._animTime || Physics.util.ticker.now();
  
                  if ( !this._paused ){
                      this.emit('step', meta);
                  }
                  return this;
              }
  
              // new time is specified, or just one iteration ahead
              now = now || (this._animTime + animDt);
              // the time between this step and the last
              animDiff = now - this._animTime;
  
              // if the time difference is too big... adjust
              if ( animDiff > animMaxJump ){
                  this._animTime = now - animMaxJump;
                  animDiff = animMaxJump;
              }
  
              // the "world" time between this step and the last. Adjusts for warp
              worldDiff = animDiff * warp;
  
              // the target time for the world time to step to
              target = time + worldDiff - dt;
  
              this.emit('beforeStep');
  
              if ( time <= target ){
  
                  while ( time <= target ){
                      // increment world time
                      time += dt;
                      // increment animation time
                      this._animTime += animDt;
                      // record the world time
                      this._time = time;
                      // iterate by one timestep
                      this.iterate( dt );
                  }
              }
  
              // set some meta
              meta.fps = 1000 / (now - this._lastTime); // frames per second
              meta.ipf = (worldDiff / dt).toFixed(2); // iterations per frame
              meta.interpolateTime = dt + target - time;
  
              // record the time this was called
              this._lastTime = now;
  
              this.emit('step', meta);
              return this;
          }
docs: chainable
  Physics.world#step( [now] ) -> this
  - now (Number): Current unix timestamp
  
  Step the world up to specified time or do one step if no time is specified.