Physics

Baraff's LCP algoritm, as used in ODE (and JOODE)

http://www.cs.cmu.edu/~baraff/papers/sig94.pdfand why it doesn't always work:

http://crl.nmsu.edu/users/sb/papers/thesis/node20.htmlGood introductory material

http://www.d6.com/users/checker/dynamics.htmCollision detection

BSP trees. Can be used to classify space quickly

http://www.faqs.org/faqs/graphics/bsptree-faq/The OBB tree, provides a

**fast ** boolean result for trimesh collisions

http://citeseer.ist.psu.edu/gottschalk96obbtree.htmlDEEP, Dual-space Expansion for Estimating Penetration Depth.

http://www.cs.unc.edu/~geom/DEEP/icra02.pdfSee

http://www.java-gaming.org/forums/index.php?topic=10976.195 for hints on deciphering this paper

Example of the sweep line algorithm, the fore father of initial planar subdivision algorithms (but a bit outdated now)

http://www.lupinho.de/gishur/html/Sweeps.html Math:-

JAMA is comprised of six Java classes: Matrix,

**CholeskyDecomposition**, LUDecomposition, QRDecomposition, SingularValueDecomposition and

**EigenvalueDecomposition**.

http://math.nist.gov/javanumerics/jama/Wikopedia's writup of Cholesky is fairly easy to read. Cholesky decompositions are used to solve linear equations. They use alot of square roots though.

http://en.wikipedia.org/wiki/Cholesky_decompositionThe Orbital library is a class library providing object-oriented representations and algorithms for logic, mathematics and artificial intelligence. It comprises theorem proving, computer algebra,

**search** and planning, as well as machine learning algorithms.

http://www.functologic.com/orbital/ECJ is a research Evolutionary Computing system written in Java. (Good for optimizations)

http://cs.gmu.edu/~eclab/projects/ecj/