
Jed Brown:
On 12 Mar 2008, ndmitchell@gmail.com wrote:
I don't think there are a great deal of Haskell users who _really_ need a physics engine right now. However, there seem to be a massive number who are working with matrices. I am informed that a lot of physics is just matrix stuff underneath (but don't know anything myself).
Perhaps a nice direction to take this project would be to build an NDP matrix library first, then use that library to build a physics engine on top of it. A physics engine would certainly be very cool, and a parallel matrix library would certainly be very much in demand.
Indeed, a matrix library would be really nice. Before getting serious about this, please take a very close look at how PETSc (http://www-unix.mcs.anl.gov/petsc/) handles matrices. The abstraction is very important because most large matrices of interest are sparse or have some symmetry that makes them asymptotically cheaper to apply (like with an FFT, FMM, or tensor product).
I agree that a good matrix library would be very useful. However, I am less sure that starting with a general matrix library is a good way to make progress towards a physics engine. Especially, for a simple engine we have a small set of (application-dependent) types of matrices, requiring a small number of the many possible matrices representations. In contrast, to write a good general-purpose matrix library, you need to support a whole range of representation and algorithms. In my experience, it is a lot harder to get somebody who is motivated to write a general-purpose library than getting somebody who is motivated to write an application, which you can run and show to people at the end. Don't get me wrong, if there is anybody who wants to write a matrix library using NDP, that would be absolutely fabulous, but otherwise I'd happily settle for a person who implements just enough matrix operations to get some nice physics going. Manuel