I am currently wrapping physX for dosp(open source project), I will be making it freely available for non S3GE users as well, it will not have all the features of Dark Physics but I wil be adding more in the future.
Here are a list of available commands I have written and tested(needs more testing though, just to be sure)
/**
* Initializes the SDK and creates a scene
*/
void start(bool useDebugger);
/**
* Releases the SDK and any memory
*/
void stop();
/**
* Updates all the actors in the scene
*/
void updateactors();
/**
* Starts simulation on another thread, use getphysicsresults() to end simulation
*/
void simulate();
/**
* Gets the physics results from the last call to simulate()
*/
void getphysicsresults();
/**
* Creates a standard ground plane, passing through the point 0,0,0
*/
void creategroundplane();
/**
* Sets the gravity for the default scene
* -# Input:
* -# X, gravity along the X-axis
* -# Y, gravity along the Y-axis
* -# Z, gravity along the Z-axis
*/
void setgravity(float X, float Y, float Z);
/**
* Creates a physics box around an object
* -Input:
* -# id, DarkGDK object ID
* -# actorId, use this to access the physics/collision box, this in turn can update the
* respective DarkGDK object
*/
void createbox(int id, int actorId, bool dynamic, bool yOffset);
/**
* Creates a physics sphere around an object
* -Input:
* -# id, DarkGDK object ID
* -# actorId, use this to access the physics/collision box, this in turn can update the
* respective DarkGDK object
*/
void createsphere(int id, int actorId);
void kinematicon(int actorId);
void kinematicoff(int actorId);
/**
* Apply a force to an actor
* -Input:
* -# actorId, ID number of the physics actor
* -# x, magnitude of force along the x-axis
* -# y, magnitude of force along the y-axis
* -# z, magnitude of force along the z-axis
*/
void applyForce(int actorId, float x, float y, float z);
/**
* Draws wireframe physics/collision box around object
* -# targetID, DarkGDK object number
* -# sourceID, DarkGDK object you want to draw box around
*/
void drawbounds(int targetID, int sourceID);
void makestaticmesh(int id);
void makestaticmesh(int id, int tempID);
void createobjectdatafile(int id, char *filename);
void createcharactercontrollercapsule(int id);
void updatecontrollers();
void movecharactercontroller(int id, float x, float y, float z);
// To DO
/**
* Creates a convex mesh
* -# id, DarkGDK object number
*/
void createConvexMesh(int id);
Just need to add or change a couple of things before I make it available.
There are other people wrapping Newton and Havok but don't think they are available at the moment.