code: function( bodies, dt ){
  
              // half the timestep
              var dtdt = dt * dt
                  ,body = null
                  ,state
                  ;
  
              for ( var i = 0, l = bodies.length; i < l; ++i ){
  
                  body = bodies[ i ];
                  state = body.state;
  
                  // only integrate if the body isn't static
                  if ( body.treatment !== 'static' && !body.sleep( dt ) ){
  
                      // x = x_prev + v_prev * dt + 0.5 * a_prev * dt * dt
  
                      // use the velocity in vel if the velocity has been changed manually
                      if ( !body.started() ){
  
                          // Set old vals on first integration
                          state.old.acc.clone( state.acc );
                          state.old.acc.mult( dt );
                          state.old.vel.clone( state.vel ).vsub( state.old.acc );
                          state.old.acc.mult( 1/dt );
                      }
  
                      // Store old position.
                      // xold = x
                      state.old.pos.clone( state.pos );
  
                      state.old.vel.mult( dt );
                      state.old.acc.mult( 0.5 * dtdt );
                      state.pos.vadd( state.old.vel ).vadd( state.old.acc );
  
                      // revert
                      state.old.vel.mult( 1/dt );
                      state.old.acc.mult( 2 / dtdt );
  
                      //
                      // Angular components
                      //
  
                      if ( !body.started() ){
  
                          // Set old vals on first integration
                          state.old.angular.acc = state.angular.acc;
                          state.old.angular.vel = state.angular.vel - state.old.angular.acc * dt;
                      }
  
                      state.old.angular.pos = state.angular.pos;
  
                      state.angular.pos += state.angular.vel * dt + 0.5 * state.old.angular.acc * dtdt;
                  }
              }
          }
docs: extended