This is the result of the Projet Long. A lot of documentation on the implementation can be found at here.