PhysX™ Candy Wrapper
PhysX™ Candy Wrapper is a C# wrapper for (formerly AGEIA™). It's also compatible with Visual Basic or any other .NET framework languages.
The library is open-source and customizable. You can your own managed math (vector, matrix, etc.) library into the PhysX interface. Pre-built XNA, Mogre and Truevision3D compatible binaries exist.
PhysX state is manipulated through .NET-style object properties, collections, enumerations and callbacks.
Supported PhysX features
Version 2.8.1 (March/October 2008) of the PhysX SDK is supported.
Here is a list of PhysX objects that are currently accessible:
- scenes: batched queries, overlap testing, raycasting, triggers, actor-pair/group filtering, debug renderable, active transforms
- shapes: box, sphere, capsule, plane, triangle mesh, convex, wheel, heightfield, CCD skeletons
- actors, materials
- joints: cylindrical, distance, fixed, point-in-plane, point-on-line, prismatic, pulley, revolute, spherical, D6
- soft bodies
- force fields
- cooking: triangle mesh, convex mesh, cloth mesh, soft body mesh
- visual remote debugger
- collections / (de-)serialization: binary, XML or Collada formats
If you experience any problems, please .
PhysX Candy Wrapper is now compatible with XNA 3.1.
are available for Mogre (a port of the Ogre3D) engine and Truevision3D (TV3D) engine.
You can connect to Visual Remote Debugger.
Released the binary, which fixes XNA quaternion conversion functions.
Released the eyecm-physx-xna-090505 binary, which contains a minor bugfix.
Project status went from Alpha directly to Production/Stable.
No one complained about any bugs in the last few months, so I figured it's ok.
Released the eyecm-physx-xna-081013 binary.
Added a section. Ask away.
Collection handling is (almost) complete.
Project status is now alpha.
Released a eyecm-physx-xna-080623alpha binary, compiled for the xna framework.
Force fields are now supported.
Soft bodies are now supported, cooking included.
Fluids are now supported. There are also some fancy array pinning tricks available for particle and mesh data readbacks.
Cloth is now supported. Also cloth mesh cooking.
Height fields now supported.
is enabled. Contributions and discussion welcome.
Wheel shapes and D6 joints are now supported.
Initial SVN commit. The code in the repository supports the above mentioned features.
Binaries exist for
- framework (),
- port of Ogre3D (),
- - TV3D ()
You can view the entire on the sourceforge part of this site and browse through all available packages.
Since all frameworks/engines don't implement all of math classes that PhysX requires (such as Triangle or Capsule), very basic implementations of these classes are provided where needed. If you're using C# 3.0 or greater, I suggest you write some extension methods for operations you need to perform on such objects.
If you want the PhysX Candy Wrapper to support some popular 3D math library out of the box, post a request in the and I will prepare the binaries for you. Of course, you can always build from source and use your own math library.
Build from source
PhysX Candy Wrapper was built against .NET Framework 3.5, but it compiles under the 2.0 version as well.
Only the Windows® platform is currently supported. Support for other platforms is being investigated.
You'll need a C++/CLI compiler, such as . Older Visual C++ versions may work, but that hasn't been tested.
You can examine the source tree via the project's , or you can check-out your copy by issuing:
svn co https://eyecm-physx.svn.sourceforge.net/svnroot/eyecm-physx eyecm-physx
Alternatively, you could just point your to .
The PhysX SDK is not included in the source package, but is required to build the wrapper library. You need to obtain and figure out the licensing options.
Before compiling, you need to write a few short conversion methods (around 20 lines of code total) and your managed math and scene-graph classes will integrate directly into the PhysX's interface. Instructions for customization and examples are included in the source package.
PhysX Candy Wrapper is distributed under the .
Copyright © 2008-09 Gregor Popović.
See license.txt in the source package for details.
PhysX and NVIDIA are trademarks or registered trademarks of NVIDIA Corporation.
NVIDIA Corp. is in no way affiliated with this project or its author(s), nor does NVIDIA Corp. in any manner endorse or otherwise approve of this library.
Microsoft, Windows and Visual C++ are registered trademarks of Microsoft Corporation.