[Ocaml-biz] linear algebra libraries

Brandon J. Van Every vanevery at indiegamedesign.com
Sun Sep 12 17:06:33 PDT 2004


Tony Edgin wrote:
>
> Okay.  I can't resist any longer.  Brandon, you are into AI,
> right?  Sparse
> matrices are incredibly useful for optimized AI computations,

Not for games, and I don't see any other market for shrinkwrapped AI.  I
don't see a need for corporate or embedded AI.  I think pitching OCaml
as an AI platform is a strategy for securing academics.  I think OCaml
can secure exactly the corner of academia that it does now.  In short, a
lost cause.  No matter what the utility of OCaml for AI, it will be the
victim of ongoing academic fashion.  Academics already do the things
that matter to other academics.  We need to focus on the industrial and
business uses of OCaml, not the academic ones.

But if you want to try anyways, Frank Dellaert's group at Georgia Tech
is mentioned on the Significant Applications page.
http://www.cc.gatech.edu/~dellaert/  They do robotics and machine vision
stuff in OCaml.

> unless your a primitive "if-then-else" guy.

Which would describe the game industry.  Although, my own architecture
is set logic: grids of hexes, and bitmaps to define regions of them.
Bears a striking resemblance to 3D rasterization problems.  Very
deliberate on my part, given that my background is 3D graphics, not AI.

> Also at the core of any 3D game engine is
> linear algebra library.

Um, no.  You might be thinking of a *physics* engine, but 3D engines
don't need linear algebra libraries.  If you want to talk about writing
game physics engines in OCaml, first I say show me the 3D engine.  Then
show me why you're going to displace all the man-years that Havok has
been putting into their stuff.

There's ODE http://www.ode.org/ , but it doesn't have an OCaml binding.
The good news is it does have a native C interface, despite being
written mostly in C++.
http://www.ode.org/ode-latest-userguide.html#sec_1_0_0
So it's feasible to use it with all sorts of languages, including OCaml.

Anyways, this makes ODE important, not a linear algebra library.  Using
extant code is far more compelling than inventing new code.  Unless of
course the extant code doesn't exist, as in the case of an OCaml 3D
engine.

> Thus Brian's idea of an updated LA package would be useful to you.

Speaking of which, one really should look at all the entries under the
HUMPS before going to town on this sort of thing.
http://caml.inria.fr/humps/caml_Mathematics.html  What are they not
accomplishing?  Or do they do the "move on from BLAS/LAPACK" job just
fine, and they're just not well marketed?

> This maybe moot, but is there anyone on this list that has
> experience in writing 3D game engines?

Yes, me.

> If there isn't, then it would be extremely hard for
> us to do that.  I might even say impossible.

It's not within ocaml-biz's ken.  It doesn't even seem to be within
ocamlgames' ken, and I would have expected to see more 3D jocks there.
It could be that writing a game and writing a 3D engine just aren't the
same thing anymore.

> I'm not suggesting we do Brian's LA package idea,

Brian's LA package idea is far too huge a project for ocaml-biz to
undertake.  We don't happen to all be linear algebra experts.  A
reasonable procedure would be for interested parties to examine the
HUMPS math archives, talk to math people, and settle on some standard
that the math community wants and needs.  Then implement or extend it.
It should have its own mailing list.  Just as if I do find people for an
OpenGL 3D engine, it will have its own mailing list.

> but I'm guessing there are
> at least some Ocaml programmers with domain knowledge in numerical
> mathematics.

A good question to solicit on caml-list.  Brian can lead the way if it's
the project he wants to do.


Cheers,                     www.indiegamedesign.com
Brandon Van Every           Seattle, WA

When no one else sells courage, supply and demand take hold.




More information about the Ocaml-biz mailing list