Return to J(tt)Z main page

Ageia PhysX Novodex NET Wrapper

I originally wrote this wrapper because I was adding physics to a C# program and there was no NET wrapper out there. Since some people showed interest in the wrapper I decided to release it.
The NET wrapper is essentially complete now besides bug fixes.
There is more information available in the readme file including requirements, how to compile with it, and acceptable use of the wrapper.

October 11th 2006                        Version 2.5.1

Here's the newest 2.5.1 wrapper. I don't have time to put  up the 2.5.1 samples now.
Novodex_NET_Wrapper_DLLs_10_11_2006.zip (v2.5.1) (292KB)

September 11th 2006               Non-DirectX Version

There are now two versions of the NET wrapper. One which is very DirectX friendly and one version that doesn't require DirectX at all. They are essentially identical. The DirectX version just replaces NxVec3 and NxMat34 with Vector3 and Matrix in most places. Also the DirectX version has implicit conversion operators for NxVec3 and NxMat34 to Vector3 and Matrix.
The readme file explains the differences between the two versions in more depth.
All major classes have been finished. (Finished as in coded but not fully tested.)
Fluids are in but since I don't have the hardware I can't test them to see if they work.
There are two versions of SimpleTutorial one using the DirectX wrapper and one using the non-DirectX wrapper.


Requires PhysX System Software 2.4.4 or above. Get the latest version here.

Novodex_NET_Wrapper_DLLs_09_11_2006.zip (v2.4.4) (287KB)
NovodexTutorials_09_11_2006.zip (2701KB)
NovodexWrapperCode_09_11_2006.zip (414KB)

Downloads

The demos and tutorials will contain all necessary DLLs including the wrapper DLLs and the Novodex DLLs.
If you just want the wrapper DLLs then download 'Novodex_NET_Wrapper_DLLs'.

Most recent version
Novodex NET Wrapper DLLs (v2.4.4) (287KB) (September 11th 2006)
Novodex SDK
PhysX Drivers
DirectX SDKs and Redistributables

All available
NovodexTutorials_09_11_2006.zip (2701KB)
NovodexTutorials_08_25_2006.zip (1344KB)
NovodexTutorials_08_18_2006.zip (1335KB)
NovodexTutorials_08_12_2006.zip (1325KB)
NovodexTutorials_06_08_2006.zip (1052KB)
NovodexTutorials_05_05_2006.zip (1025KB)
NovodexTutorials_08_07_2005.zip (786KB)
NovodexTutorials_06_23_2005.zip (709KB)
NovodexWrapperCode_09_11_2006.zip (414KB)
NovodexWrapperCode_08_25_2006.zip (189KB)
NovodexWrapperCode_08_18_2006.zip (185KB)
NovodexWrapperCode_08_12_2006.zip (183KB)
NovodexWrapperCode_06_08_2006.zip (164KB)
Novodex_NET_Wrapper_DLLs_09_11_2006.zip (v2.4.4) (287KB)
Novodex_NET_Wrapper_DLLs_08_25_2006.zip (v2.4.4) (154KB)
Novodex_NET_Wrapper_DLLs_08_18_2006.zip (v2.4.4) (150KB)
Novodex_NET_Wrapper_DLLs_08_12_2006.zip (v2.4.4) (148KB)
Novodex_NET_Wrapper_DLLs_06_08_2006.zip (v2.3.2) (133KB)
Novodex_NET_Wrapper_DLLs_05_05_2006.zip (v2.3.2) (133KB)
Novodex_NET_Wrapper_DLLs_08_07_2005.zip (v2.2) (126KB)
Novodex_NET_Wrapper_DLLs_06_23_2005.zip (v2.2) (98KB)

August 25th 2006               Wrapper and Tutorial Update

Filled in some minor missing methods.
Added NxScheduler and NxTask class.
Added a car to SimpleTutorial.

Novodex_NET_Wrapper_DLLs_08_25_2006.zip (v2.4.4) (154KB)
NovodexTutorials_08_25_2006.zip (1344KB)
NovodexWrapperCode_08_25_2006.zip (189KB)

August 18th 2006               Wrapper and Tutorial Update

Fixed managed memory "leaks" associated with meshes.
Made it so that if you aren't using NxCharacter.dll or NxCooking.dll you don't have to place them in your path.
Fully implemented BoxControllers and CapsuleControllers.
Updated SimpleTutorial to have an example of using box and capsule controllers.

Novodex_NET_Wrapper_DLLs_08_18_2006.zip (v2.4.4) (150KB)
NovodexTutorials_08_18_2006.zip (1335KB)
NovodexWrapperCode_08_18_2006.zip (185KB)

August 12th 2006               Wrapper and Tutorial Update

Updated to Novodex 2.4.4.
Added cloths and non-triangleMesh heightfields.
Filled in some missing methods.
Made the SimpleTutorial even more complex by adding a cloth, a flag, a non-triangleMesh heightField and a multishape actor.

Novodex_NET_Wrapper_DLLs_08_12_2006.zip (v2.4.4) (148KB)
NovodexTutorials_08_12_2006.zip (1325KB)
NovodexWrapperCode_08_12_2006.zip (183KB)

June 9th 2006                             Managed Code

Since I don't have any of those fancy comments in the code I decided to put up the C# code for the wrapper. It's much easier to search through the code to figure something out rather than randomly search through a list of methods.
This is just the managed code, it doesn't include the native part of the wrapper. This code is released in place of documentation and you are not allowed to modify or release it.

NovodexWrapperCode_06_08_2006.zip (164KB)

June 8th 2006               Wrapper and Tutorial Update

Fixed some bugs in NovodexUtil which wouldn't allow a triangleMesh to work with a static actor.
Added heightField utility functions to NovodexUtil.
Added a utility function for creating planes to NovodexUtil.
Made the SimpleTutorial even more complex by adding a static heightField and a static building.


Download Simple Tutorial (1052KB)

The unicycle works really poorly. For some reason when the wheel stops moving it freezes. You can steer the wheel but it won't drive forwards or backwards until you bump it with another object or shoot it.

Novodex_NET_Wrapper_DLLs_06_08_2006.zip (v2.3.2) (133KB)
NovodexTutorials_06_08_2006.zip (1052KB)

May 5th 2006                           Wrapper Update

In last couple days I put a little more time into updating the wrapper. NxWheelShape seems to work now.
I added a unicycle using NxWheelShape to the tutorial.

Novodex_NET_Wrapper_DLLs_05_05_2006.zip (v2.3.2) (133KB)
NovodexTutorials_05_05_2006.zip (1025KB)

May 2nd 2006                           Wrapper Update

Here's an early release of my port from 2.2 to 2.3.2.
(I just noticed that 2.4 is out but hasn't been released publicly. I'm sure that would be a minor port.)
It hasn't been tested very thoroughly. It seems to work fine for me.
NxWheelShape was added but is untested.
Fluids still aren't implemented.

Update: Links to crappy DLLs pulled.

August 7th 2005                           Wrapper Update

Yikes, that took a long time to release an update. I'm putting up some stuff which is about a month old but never got around to putting up.

So what's new?
I continued adding methods and classes. Minor classes like NxSphere, NxCapsule, and NxSegment were added. More major classes include NxEffector, NxSpringAndDamperEffector, NxUserEntityReport and many of the controller classes. The character controller classes haven't been added though. Also, fluid classes have been partially implemented, but untested because fluids haven't been enabled in Novodex's DLLs.

The most important change for anyone who is using the last version of the wrapper is that the NxJoint creation methods have been moved from NxJoint to NovodexUtil. NovodexUtil contains methods to simplify the creation of joints without using the descriptors. Each joint type has it's own method with appropriate parameters, such as NovodexUtil.createPrismaticJoint(...).
There is something annoying about using the wrapper. You need to have NxCooking.DLL, and NxCharacter.DLL in your path even if you're not using anything from those DLLs. I'm hoping to figure out a way to prevent the program from complaining when unnecessary DLLs aren't in the path.

New downloads.
Novodex_NET_Wrapper_DLLs_08_07_2005.zip (v2.2) (126KB)
NovodexTutorials_08_07_2005.zip (786KB)
The tutorial doesn't contain much new. It has just been updated to work with the changes made to the wrapper.

June 23rd 2005                             Simple Tutorial

This tutorial started out as a simple box on plane demo but it grew into something showing off how to use most the major classes from Novodex. NxPhysicsSDK, NxScene, NxActor, NxShape, NxJoint, NxMaterial, NxUserDebugRender, NxUserContactReport, NxUserRaycastReport, NxUserNotify.......
Remember this isn't a Direct3D tutorial so just ignore that code. Keep the Direct3D region collapsed to make it easier to follow the physics code.


The tutorial contains an executable, the wrapper DLLs and the Novodex DLLs.
If you don't have .NET installed or the April DirectX you can get them here.
.NET 2.0 redistributable (24MB)
DirectX April 2005 redistributable (35MB)
Love that bloat. Any DirectX version before April will be incompatible with this program because of my D3D render. I've heard about a June version but I'm waiting to check it out when I get my broadband back.

April 18th 2005                 Original C# Novodex Demo

Here's the original Novodex demo I put out. This demo uses Novodex2.1.2.
From the original posting "....This demo is built upon an editor which I've been making. For simplicity I've stripped the editor down, but there is some editor functionality left. That's what differentiates this phsyics demo from the usual 'knock the box pile over' demo. Of course you can still knock box piles over, but you can also create and manipulate objects well enough to build your own stuff to play with. The renderer is pretty slow. Using a simple renderer with D3D is rather slow, it's not as tolerant to ugly unoptimized data like openGL is......"

Click for larger picture

Requires .NET 2.0 and a version of DirectX which is April 2005 or newer.
.NET 2.0 redistributable (24MB)
DirectX April 2005 redistributable (35MB)
Woo, only 60MB of bloat for a 820KB program if you don't already have .NET or a recent version of DirectX.



BUGS

The readme lists some bugs and issues. If you find any bugs which are soley caused by the wrapper and aren't from Novodex itself then email them.

Copyright © 2006 Jason Zelsnack. All Rights Reserved