iLQG package

The latest version (September 2011) of the iLQG/DDP trajectory optimizer. Includes a C-mex file for the backward pass and an example of an embedded-MATLAB-compiled forward-pass. In May 2011, support for first-exit problems was added.

Download: local.

CapSim - the MATLAB physics engine

A screen-capture of user interactionCapSim ("Capsule Simulator") is an open-source planar physics simulator designed for academic purposes. 
  • Simple yet full featured, pure Matlab code for readability and modifiability, perfect for research.
  • Planar capsules (a capsule is a segment with a radius) can be connected in arbitrary topologies, free floating or anchored.
  • All computation are done in a minimal coordinate system, i.e. angles and centers-of-mass, no "constraint stabillization".
  • Computation of centripetal and coriolis Jacobians allows us to use semi-implicit Euler integration, which is just as cheap as Euler, yet considerably more accurate.
  • Collision detection for capsule-wall and capsule-capsule collisions.
  • Full support for contact and friction impulses using two different contact solvers.
  • Support for several LCP solvers, including the PATH solver and the semi-smooth algorithm.

 Download: MathWorks, local.

Efficient MATLAB LCP Solver

This file is an efficient implementation of the semi-smooth algorithm for solving Linear Complementarity Problems. On most problems it will beat MATLAB-based pivoting methods (e.g. Lemke) by orders of magnitude, since they use tight loops, while this solver needs only several backslashes involved in the Levenberg-Marquardt minimization. If given a good starting guess (as when simulating smooth dynamics), it can converge in 2-3 iterations.

Download: MathWorks.

Swimmer Package

A 5-swimmer swims after a user-controlled target

This MATLAB package demos the swimmer dynamical system, along with controllers produced by the learning algorithm described in our NIPS 2007 paper. The swimmer dynamical system, invented by RĂ©mi Coulom, is a testbed for advanced motor control algorithms. A chain of d links in a viscous liquid are simulated on a planar surface. The controller must apply the d-1 joint torques given the 2d+4-dimensional state vector, in order to propel the body towards a target. The dynamical equations are derived here. The minimal package (250k) includes the code and one learned controller for a 3-swimmer. The full package (20M) includes controllers for 4-5- and 10-swimmers.



Comparison between mmx, ndfun and mtimesx

mmx is a utility mex-file for Matlab. It treats an N-D matrix of double precision values as pages of 2D matrices, and performs various matrix operations on those pages. mmx uses multithreading over the higher dimensions to achieve good performance. Singleton expansion is available for most operations. This code was written with Kendall Lowery.

Download: MathWorks, local.

Documentation, examples, benchmarks: