Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An easy-to-use wrapper in the Cocos/Objective-C style to integrate the robust, C++ physics library "Bullet" with Cocos3D.
C++ C Objective-C Objective-C++
Branch: master
Failed to load latest commit information.
Bullet Wrapping


Bullet Cocos3D Wrapper

You need to edit your build settings and add a NOT recursive header search path "./Bullet\ Wrapping/src/" WITH the quotes to the "Header Search Paths" and "User Header Search Paths".

create an instance of CC3PhysicsWorld (contains a btDiscreteDynamicsWorld)
CC3PhysicsWorld *_physicsWorld = [[CC3PhysicsWorld alloc] init];
and set it's gravity
[_physicsWorld setGravity:0 y:-9.8 z:0];

create a physics object
//for a box that is 1 x 1 x 1
CC3MeshNode *boxNode;
btCollisionShape *boxCollisionShape = btBoxCollisionShape(btVector3(1,1,1));//I might provide a wrapper sometime in the future.
CC3PhysicsObject3D *boxObject = [_physicsWorld createPhysicsObject:node shape:boxCollisionShape mass:1 restitution:0.3 position:boxNode.location];

apply force/impulse
[boxObject applyForce:cc3v(0,1,0) position:boxObject.node.position];
[boxObject applyImpulse:cc3v(0,1,0) position:boxObject.node.position];

you need to call this in an update method:
[_physicsWorld synchTransformation];

to set the location of a physics object you need to delete the object then re-make it
Something went wrong with that request. Please try again.