Free/Open Physics modeling software
February 25, 2005 6:30 PM   Subscribe

I am looking for free physics software (as in beer *or* speech) to model motion of a solid object in 3D. More specifically, I am looking for a package of java classes or other low level constructs that I can extend myself. Any Ideas?

If no freeware exists is there any good commercial software packages out there? I would prefer freeware though. Thanks.
posted by kuatto to Computers & Internet (7 answers total) 1 user marked this as a favorite
To clarify: you want a coding interface, as opposed to an interactive wireframe interface?

If it's the former, research on POV-Ray animators.

If it's the latter, there are plenty, like Blender or just about any animation package.
posted by Gyan at 7:01 PM on February 25, 2005

Response by poster: Well, I *am* looking for a pre-written code to model in 3d. To be clear, I am *not* primarily interested in animating the object.

I am looking for parameterized methods/functions that describe a physical situation. For instance, given initial conditions, like distribution of mass in an object etc, it could return information (like numbers/units) on rotational inertia.

But I am looking, not just for a parameterized rotational inertia function, but a whole range of functions - mainly kinematics and mechanics.

eg. (from wiki)
Dimension, Space, Time, Motion, Length, Velocity, Mass, Momentum, Force, Energy, Angular momentum, Torque, Harmonic oscillator, Wave, Work, Power,

basically, I am looking for documented methods/functions that I can use to build a simulation of a specific situation.

Whew, sorry to be so long winded!
posted by kuatto at 7:43 PM on February 25, 2005

Although I was only interested in modelling 3d fractal rotatable objects, without adding physics parameterization, the java3d classes worked pretty well for me as initially approachable and understandable. Adding the laws of motion would've been a whole 'nother project, but if I had to do it, I would probably try to find out if someone else had done anything along your lines of thinking with the java3d classes and see if I could build or adapt something from there. Java3d is free, don't forget, meaning that a lot of people have hacked interesting shit with it.

Good luck.
posted by telstar at 9:12 PM on February 25, 2005

Response by poster: telstar, the java3d api is completely new to me, thanks for pointing it out! My brother was looking at java interface to opengl, I will have to show him this.

Indeed, searching for "java3d and physics" has unlocked much.

First off, this site pretty much sums it up:

These pages aim to give enough physics information to allow physical objects to be simulated by a computer program. The main interest is in simulating solid objects and fluids at our usual level of experience, so we concentrate on Newtonian physics as opposed to relativity or quantum mechanics.

Awesome site. Includes some classes in c++ and java. I just wish I had more matrix algebra under my belt! It appears that most of the implementation is left as an exercise to the reader!

In fact, damn! This page rocks! I just wish there was more code to back up all the pretty equations. Anyways, it's a great start. Thanks Gyan and telstar for the input.
posted by kuatto at 10:08 PM on February 25, 2005

Best answer: I just wish there was more code to back up all the pretty equations.

I don't know if it doesn't implement enough of the stuff on the site or if you just missed it (that site has the weirdest navigation ever), but the site's associated program mjbWorld is Java and OpenGL (the java3d version seems to have been abandoned) with source available and has at least some physics stuff. There's also an implementation in C# if you want.

It sounds like you might be looking for a physics engine or SDK with Java bindings. I've never used one before so can't really give any recommendations, but ODE is a pretty popular free choice (BSD licensed) for games and it's also used in some more professional stuff like SoftImage XSI too. It has a manual you'll want to look through to see what it supports. Most importantly, googling ODE and java found Odejava which looks like it might work for you. There are other SDKs available, some of which are free for non-commercial use (and others which cost $65k), but I don't know if any have Java bindings. Also, games are the main/hottest market for physics SDKs (or maybe "physics SDK" is gaming-specific lingo) currently, so they will be targeted more at making things look good and being able to run in real-time than being accurate (this applies to ODE too), but all that matters is if they are accurate enough for your project. Googling "Physics Engine", "Physics SDK" or "Dynamics SDK" should get you a good sized list.

Using an SDK/engine will be easiest, but it looks like mjbWorld may be more concerned with mathematical accuracy (over speed) than the SDKs aimed at real-time use. If that is the case and the most important thing for your project is accuracy or the SDKs are all too blackbox-like, you may just want to using the code from mjbWorld. Also, googling java physics simulation gives a lot of stuff (even a text book on doing physics in Java!) but I don't know if any of it has code available.

Downloading ODF Rocket (55 MB, win32) should help give you an idea of what a physics SDK can do. Plus it's just plain fun to play with!
posted by Nick Tamm at 3:22 PM on February 26, 2005 [1 favorite]

Response by poster: Fantastic! Thanks Nick Tamm, and everyone else, this will keep me busy for quite a while (just reading the docs alone!).

It seems part of request is trying to figure out what you want. With all of these answers I am sure to find it.
posted by kuatto at 12:07 AM on February 27, 2005

Response by poster: At the risk of being even more verbose, ODE has a lot of what I am looking for - a basic system. The java extensions are a real bonus as well!
posted by kuatto at 12:28 AM on February 27, 2005

« Older Please Identify a UFO for me   |   Is there a Creative Commons license that would... Newer »
This thread is closed to new comments.