It is used in movies, games, Blender, and Maya.

We are making a game engine and decided to use Bullet as our physics engine.

It will be wrapped into one dll. You will not have to include a dll with your exe.

We are creating a clean code base so it can be updated with newer versions of Bullet easily.

We have rebuilt the Bullet library to use double precision; it will provide better accuracy for large scale areas in DBPro.

We have coded the dll to handle a "Lost Device" in DBPro, all DBpro resources are managed.

Added a max velocity check for all dynamic objects.

to prevent "tunneling" of fast small objects.

Added the V-HACD Library for convex decomposition of complex objects.

BPhys_CreateWorld=BulletPhysics\BPhys_CreateWorld.htm=()
BPhys_CreateWorld=BulletPhysics\BPhys_CreateWorld.htm=(float scaleFactor)
BPhys_WorldSetGravity=BulletPhysics\BPhys_WorldSetGravity.htm=(float x, float y, float z)
BPhys_DeleteWorld=BulletPhysics\BPhys_DeleteWorld.htm=()
BPhys_ResetWorld=BulletPhysics\BPhys_ResetWorld.htm=()
BPhys_WorldUpdate=BulletPhysics\BPhys_WorldUpdate.htm=()
BPhys_WorldGetTotalJoints=BulletPhysics\BPhys_WorldGetTotalJoints.htm=()
BPhys_WorldGetTotalObjects=BulletPhysics\BPhys_WorldGetTotalObjects.htm=()
BPhys_WorldGetActiveObjects=BulletPhysics\BPhys_WorldGetActiveObjects.htm=()
BPhys_DebugDrawWorld=BulletPhysics\BPhys_DebugDrawWorld.htm=()
BPhys_DebugDrawCollisionShape=BulletPhysics\BPhys_DebugDrawCollisionShape.htm=(int objID)
BPhys_DebugModes=BulletPhysics\BPhys_DebugModes.htm=(int debugmode)
BPhys_CreateStaticPlane=BulletPhysics\BPhys_CreateStaticPlane.htm=(int objID,float x, float y, float z, float pos)
BPhys_CreateBoxShape=BulletPhysics\BPhys_CreateBoxShape.htm=(int objID)
BPhys_CreateBoxShape=BulletPhysics\BPhys_CreateBoxShape.htm=(int objID, int sizeVec3)
BPhys_CreateBox=BulletPhysics\BPhys_CreateBox.htm=(int objID, float mass, int collisionGroup, int collisionMask)
BPhys_CreateBox=BulletPhysics\BPhys_CreateBox.htm=(int objID, int sizeVec3, float mass, int collisionGroup, int collisionMask)
BPhys_CreateBox=BulletPhysics\BPhys_CreateBox.htm=(int objID, float mass, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateSphereShape=BulletPhysics\BPhys_CreateSphereShape.htm=(int objID)
BPhys_CreateSphereShape=BulletPhysics\BPhys_CreateSphereShape.htm=(int objID, float diameter)
BPhys_CreateSphere=BulletPhysics\BPhys_CreateSphere.htm=(int objID, float mass, int collisionGroup, int collisionMask)
BPhys_CreateSphere=BulletPhysics\BPhys_CreateSphere.htm=(int objID, float diameter, float mass, int collisionGroup, int collisionMask)
BPhys_CreateSphere=BulletPhysics\BPhys_CreateSphere.htm=(int objID, float mass, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateCapsuleShape=BulletPhysics\BPhys_CreateCapsuleShape.htm=(int objID, int axis)
BPhys_CreateCapsuleShape=BulletPhysics\BPhys_CreateCapsuleShape.htm=(int objID, int sizeVec3, int axis)
BPhys_CreateCapsule=BulletPhysics\BPhys_CreateCapsule.htm=(int objID, float mass, int axis, int collisionGroup, int collisionMask)
BPhys_CreateCapsule=BulletPhysics\BPhys_CreateCapsule.htm=(int objID, int sizeVec3, float mass, int axis, int collisionGroup, int collisionMask)
BPhys_CreateCapsule=BulletPhysics\BPhys_CreateCapsule.htm=(int objID, float mass, int axis, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateConeShape=BulletPhysics\BPhys_CreateConeShape.htm=(int objID, int axis)
BPhys_CreateConeShape=BulletPhysics\BPhys_CreateConeShape.htm=(int objID, int sizeVec3, int axis)
BPhys_CreateCone=BulletPhysics\BPhys_CreateCone.htm=(int objID, float mass, int axis, int collisionGroup, int collisionMask)
BPhys_CreateCone=BulletPhysics\BPhys_CreateCone.htm=(int objID, int sizeVec3, float mass, int axis, int collisionGroup, int collisionMask)
BPhys_CreateCone=BulletPhysics\BPhys_CreateCone.htm=(int objID, float mass, int axis, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateCylinderShape=BulletPhysics\BPhys_CreateCylinderShape.htm=(int objID, int axis)
BPhys_CreateCylinderShape=BulletPhysics\BPhys_CreateCylinderShape.htm=(int objID, int sizeVec3, int axis)
BPhys_CreateCylinder=BulletPhysics\BPhys_CreateCylinder.htm=(int objID, float mass, int axis, int collisionGroup, int collisionMask)
BPhys_CreateCylinder=BulletPhysics\BPhys_CreateCylinder.htm=(int objID, int sizeVec3, float mass, int axis, int collisionGroup, int collisionMask)
BPhys_CreateCylinder=BulletPhysics\BPhys_CreateCylinder.htm=(int objID, float mass, int axis, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateConvexHullShape=BulletPhysics\BPhys_CreateConvexHullShape.htm=(int objID)
BPhys_CreateConvexHull=BulletPhysics\BPhys_CreateConvexHull.htm=(int objID, float mass, int collisionGroup, int collisionMask)
BPhys_CreateConvexHull=BulletPhysics\BPhys_CreateConvexHull.htm=(int objID, float mass, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateStaticTriangleMeshShape=BulletPhysics\BPhys_CreateStaticTriangleMeshShape.htm=(int objID, int bBuildBvh)
BPhys_CreateStaticTriangleMesh=BulletPhysics\BPhys_CreateStaticTriangleMesh.htm=(int objID,int bBuildBvh, int collisionGroup, int collisionMask)
BPhys_CreateStaticTriangleMesh=BulletPhysics\BPhys_CreateStaticTriangleMesh.htm=(int objID,int bBuildBvh, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateDynamicTriangleMesh=BulletPhysics\BPhys_CreateDynamicTriangleMesh.htm=(int objID, float mass, int collisionGroup, int collisionMask)
BPhys_CreateDynamicTriangleMesh=BulletPhysics\BPhys_CreateDynamicTriangleMesh.htm=(int objID, float mass, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateDynamicTriangleMeshShape=BulletPhysics\BPhys_CreateDynamicTriangleMeshShape.htm=(int objID)
BPhys_CreateCompoundFromConvexHullDecomposition=BulletPhysics\BPhys_CreateCompoundFromConvexHullDecomposition.htm=(int objID, float mass, int collisionGroup, int collisionMask, int bUseVHACD)
BPhys_CreateCompoundFromCompoundShape=BulletPhysics\BPhys_CreateCompoundFromCompoundShape.htm=(int objID, float mass, int collisionGroup, int collisionMask, int shapeID)
BPhys_CreateCompoundShapeFromConvexHullDecomposition=BulletPhysics\BPhys_CreateCompoundShapeFromConvexHullDecomposition.htm=(int objID, int bUseVHACD)
BPhys_CreateCompoundShape=BulletPhysics\BPhys_CreateCompoundShape.htm=()
BPhys_AddChildShapeToCompoundShape=BulletPhysics\BPhys_AddChildShapeToCompoundShape.htm=(int compoundShape, int childShape)
BPhys_SetVHACDParams=BulletPhysics\BPhys_SetVHACDParams.htm=(int resolution, int depth, float concavity, float gamma, float alpha, float beta)
BPhys_SaveCollisionShape=BulletPhysics\BPhys_SaveCollisionShape.htm=(int shapeID, LPSTR fileName)
BPhys_LoadCollisionShape=BulletPhysics\BPhys_LoadCollisionShape.htm=(LPSTR fileName)
BPhys_DeleteShape=BulletPhysics\BPhys_DeleteShape.htm=(int shapeID)
BPhys_CreateFracturedObject=BulletPhysics\BPhys_CreateFracturedObject.htm=(int objID,int interiorTexture,int exteriorTexture,int collisionGroup,int collisionMask, int fracturePoints,float materialDensity,float breakThreshold,int axis,int excludeStaticObjects)
BPhys_FracturedObjectDelete=BulletPhysics\BPhys_FracturedObjectDelete.htm=(int objID)
BPhys_FracturedObjectSetStatic=BulletPhysics\BPhys_FracturedObjectSetStatic.htm=(int objID)
BPhys_FracturedObjectRemoveShards=BulletPhysics\BPhys_FracturedObjectRemoveShards.htm=(int objID, int sizeThreshold)
BPhys_FracturedObjectDeleteJoints=BulletPhysics\BPhys_FracturedObjectDeleteJoints.htm=(int objID)
BPhys_BodySetMass=BulletPhysics\BPhys_BodySetMass.htm=(int objectID, btScalar mass)
BPhys_BodyGetMass=BulletPhysics\BPhys_BodyGetMass.htm=(int objectID)
BPhys_BodySetFriction=BulletPhysics\BPhys_BodySetFriction.htm=(int objectID, float friction)
BPhys_BodySetRollingFriction=BulletPhysics\BPhys_BodySetRollingFriction.htm=(int objectID, float friction)
BPhys_BodySetAnisotropicFriction=BulletPhysics\BPhys_BodySetAnisotropicFriction.htm=(int objectID, int type)
BPhys_BodySetMaxLinearVelocity=BulletPhysics\BPhys_BodySetMaxLinearVelocity.htm=(int objectID, float maxLinearVelocity)
BPhys_BodySetLinearVelocity=BulletPhysics\BPhys_BodySetLinearVelocity.htm=(int objectID, int LinearVelocityVec3)
BPhys_BodyExist=BulletPhysics\BPhys_BodyExist.htm=(int objectID)
BPhys_BodyDelete=BulletPhysics\BPhys_BodyDelete.htm=(int bodyID)
BPhys_RagDollBegin=BulletPhysics\BPhys_RagDollBegin.htm=(int objectID, float objTotalWeight)
BPhys_RagDollGetIDFromBoneObject=BulletPhysics\BPhys_RagDollGetIDFromBoneObject.htm=(int objectID)
BPhys_RagDollAddBone=BulletPhysics\BPhys_RagDollAddBone.htm=(int startLimbID, int endLimbID, float diameter, int collisionGroup, int collisionMask)
BPhys_RagDollBoneAddLimbID=BulletPhysics\BPhys_RagDollBoneAddLimbID.htm=(int boneID, int limbID)
BPhys_RagDollAddHingeJoint=BulletPhysics\BPhys_RagDollAddHingeJoint.htm=(int boneAID, int boneBID, int limbID, int jointRotationVec3, int limitsVec2)
BPhys_RagDollAddTwistJoint=BulletPhysics\BPhys_RagDollAddTwistJoint.htm=(int boneAID, int boneBID, int limbID, int jointRotationVec3, int limitsVec3)
BPhys_RagdollGetBoneObjID=BulletPhysics\BPhys_RagdollGetBoneObjID.htm=(int ragdollID, int boneIndex)
BPhys_RagDollEnd=BulletPhysics\BPhys_RagDollEnd.htm=()
BPhys_RagdollExist=BulletPhysics\BPhys_RagdollExist.htm=(int ragdollID)
BPhys_DeleteRagdoll=BulletPhysics\BPhys_DeleteRagdoll.htm=(int ragdollID)
BPhys_RagdollIsStatic=BulletPhysics\BPhys_RagdollIsStatic.htm=(int ragdollID)
BPhys_RagdollSetStatic=BulletPhysics\BPhys_RagdollSetStatic.htm=(int ragdollID, int isStatic)
BPhys_RagDollHideBones=BulletPhysics\BPhys_RagDollHideBones.htm=(int ragdollID)
BPhys_RagDollShowBones=BulletPhysics\BPhys_RagDollShowBones.htm=(int ragdollID)
BPhys_RagDollSetDamping=BulletPhysics\BPhys_RagDollSetDamping.htm=(float linear, float angular)
BPhys_RagDollSetSleepingThresholds=BulletPhysics\BPhys_RagDollSetSleepingThresholds.htm=(float linear, float angular)
BPhys_RagDollSetDeactivationTime=BulletPhysics\BPhys_RagDollSetDeactivationTime.htm=(float time)
BPhys_CreateHingeJoint=BulletPhysics\BPhys_CreateHingeJoint.htm=(int objectA, int objectB, int min_maxVec2, int positionVec3, int rotationVec)
BPhys_CreateConeTwistJoint=BulletPhysics\BPhys_CreateConeTwistJoint.htm=(int objectA, int objectB, int positionVec3, int rotationVec, int limitsVec)
BPhys_CreateSliderJoint=BulletPhysics\BPhys_CreateSliderJoint.htm=(int objectA, int objectB, int positionVec3, int rotationVec)
BPhys_CreateFixedJoint=BulletPhysics\BPhys_CreateFixedJoint.htm=(int objectA, int objectB, int positionVec3, float breakThreshold)
BPhys_Create6DOFJoint=BulletPhysics\BPhys_Create6DOFJoint.htm=(int objectA, int objectB, int positionVec3, int rotationVec3, float breakThreshold)
BPhys_BodyGetContactPosition=BulletPhysics\BPhys_BodyGetContactPosition.htm=(int objectA, int objectB, int outVec3)
BPhys_JointDelete=BulletPhysics\BPhys_JointDelete.htm=(int jointID)
BPhys_JointGetPositionA=BulletPhysics\BPhys_JointGetPositionA.htm=(int jointID, int outVec3)
BPhys_JointGetPositionB=BulletPhysics\BPhys_JointGetPositionB.htm=(int jointID, int outVec3)
BPhys_JointSetBreakingThreshold=BulletPhysics\BPhys_JointSetBreakingThreshold.htm=(int jointID,float breakThreshold)
BPhys_CreatePickJoint=BulletPhysics\BPhys_CreatePickJoint.htm=(int objectID, int positionVec3)
BPhys_UpdatePickJoint=BulletPhysics\BPhys_UpdatePickJoint.htm=(int jointID, int positionVec3)
BPhys_DeletePickJoint=BulletPhysics\BPhys_DeletePickJoint.htm=(int jointID)
BPhys_CreateRay=BulletPhysics\BPhys_CreateRay.htm=()
BPhys_RayCast=BulletPhysics\BPhys_RayCast.htm=(int rayID, int fromVec3, int toVec3, int allContacts)
BPhys_RayGetContactObject=BulletPhysics\BPhys_RayGetContactObject.htm=(int rayID, int index)
BPhys_RayGetClosestContactObject=BulletPhysics\BPhys_RayGetClosestContactObject.htm=(int rayID)
BPhys_RayGetContactPosition=BulletPhysics\BPhys_RayGetContactPosition.htm=(int rayID, int index, int outVec3)
BPhys_RayGetClosestContactPosition=BulletPhysics\BPhys_RayGetClosestContactPosition.htm=(int rayID, int outVec3)
BPhys_RayGetTotalContacts=BulletPhysics\BPhys_RayGetTotalContacts.htm=(int rayID)
BPhys_RayDelete=BulletPhysics\BPhys_RayDelete.htm=(int rayID)
BPhys_RayExist=BulletPhysics\BPhys_RayExist.htm=(int rayID)
BPhys_CharacterControllerCreate=BulletPhysics\BPhys_CharacterControllerCreate.htm=(int objID, int axis, int objOffsetVec3, int objOrientationVec3, float crouchScale)
BPhys_CharacterControllerDelete=BulletPhysics\BPhys_CharacterControllerDelete.htm=(int objID)
BPhys_CharacterControllerExist=BulletPhysics\BPhys_CharacterControllerExist.htm=(int objID)
BPhys_CharacterControllerGetDebugObjectID=BulletPhysics\BPhys_CharacterControllerGetDebugObjectID.htm=(int objID)
BPhys_CharacterControllerSetGravity=BulletPhysics\BPhys_CharacterControllerSetGravity.htm=(int objectID, float gravity)
BPhys_CharacterControllerSetFallSpeed=BulletPhysics\BPhys_CharacterControllerSetFallSpeed.htm=(int objectID, float fallSpeed)
BPhys_CharacterControllerSetJumpSpeed=BulletPhysics\BPhys_CharacterControllerSetJumpSpeed.htm=(int objectID, float jumpSpeed)
BPhys_CharacterControllerSetMaxSlope=BulletPhysics\BPhys_CharacterControllerSetMaxSlope.htm=(int objectID, float maxSlopeDegress)
BPhys_CharacterControllerSetStepHeight=BulletPhysics\BPhys_CharacterControllerSetStepHeight.htm=(int objectID, float stepHeight)
BPhys_CharacterControllerGetMaxSlope=BulletPhysics\BPhys_CharacterControllerGetMaxSlope.htm=(int objectID)
BPhys_CharacterControllerGetGravity=BulletPhysics\BPhys_CharacterControllerGetGravity.htm=(int objectID)
BPhys_CharacterControllerMove=BulletPhysics\BPhys_CharacterControllerMove.htm=(int objectID, int direction, float velocity)
BPhys_CharacterControllerRotate=BulletPhysics\BPhys_CharacterControllerRotate.htm=(int objectID, float angle)
BPhys_CharacterControllerJump=BulletPhysics\BPhys_CharacterControllerJump.htm=(int objectID)
BPhys_CharacterControllerCrouch=BulletPhysics\BPhys_CharacterControllerCrouch.htm=(int objectID)
BPhys_CharacterControllerStand=BulletPhysics\BPhys_CharacterControllerStand.htm=(int objectID)
BPhys_CSG_Union=BulletPhysics\BPhys_CSG_Union.htm=(int objectA, int objectB)
BPhys_CSG_Intersection=BulletPhysics\BPhys_CSG_Intersection.htm=(int objectA, int objectB)
BPhys_CSG_DifferenceA_B=BulletPhysics\BPhys_CSG_DifferenceA_B.htm=(int objectA, int objectB)
BPhys_CSG_DifferenceB_A=BulletPhysics\BPhys_CSG_DifferenceB_A.htm=(int objectA, int objectB)