At 3:05 I think I'm calling it quits. In a day I have finished the following functions (the C++ functions, don't feel like typing anything else out really):
DARKSDK void hkp_setBroadPhaseWorldSize(float fSize);
DARKSDK void hkp_setBroadPhaseBorderBehaviour(int iFlag);
DARKSDK void hkp_setGravity(float fGravity);
DARKSDK void hkp_setGravity(float fX, float fY, float fZ);
DARKSDK float hkp_getGravityX(void);
DARKSDK float hkp_getGravityY(void);
DARKSDK float hkp_getGravityZ(void);
DARKSDK void hkp_start(void);
DARKSDK void hkp_start(int iFlag);
DARKSDK void hkp_start(int iFlag, int iMemoryAllocation);
DARKSDK void hkp_update(void);
DARKSDK void hkp_update(float fDeltaTime);
DARKSDK void hkp_end(void);
DARKSDK void hkp_makeRigidBodyStaticBox(int iID, float fX, float fY, float fZ);
DARKSDK void hkp_makeRigidBodyDynamicBox(int iID);
DARKSDK void hkp_makeRigidBodyDynamicBox(int iID, float fX, float fY, float fZ);
DARKSDK void hkp_makeRigidBodyDynamicBox(int iID, float fX, float fY, float fZ, float fMass);
DARKSDK void hkp_makeRigidBodyStaticSphere(int iID, float fRadius);
DARKSDK void hkp_makeRigidBodyDynamicSphere(int iID, float fRadius);
DARKSDK void hkp_makeRigidBodyDynamicSphere(int iID, float fRadius, float fMass);
DARKSDK void hkp_makeRigidBodyStaticCapsule(int iID, float fX1, float fY1, float fZ1, float fX2, float fY2, float fZ2, float fRadius);
DARKSDK void hkp_makeRigidBodyDynamicCapsule(int iID, float fX1, float fY1, float fZ1, float fX2, float fY2, float fZ2, float fRadius);
DARKSDK void hkp_makeRigidBodyDynamicCapsule(int iID, float fX1, float fY1, float fZ1, float fX2, float fY2, float fZ2, float fRadius, float fMass);
DARKSDK void hkp_makeRigidBodyStaticCylinder(int iID, float fX1, float fY1, float fZ1, float fX2, float fY2, float fZ2, float fRadius);
DARKSDK void hkp_makeRigidBodyDynamicCylinder(int iID, float fX1, float fY1, float fZ1, float fX2, float fY2, float fZ2, float fRadius);
DARKSDK void hkp_makeRigidBodyDynamicCylinder(int iID, float fX1, float fY1, float fZ1, float fX2, float fY2, float fZ2, float fRadius, float fMass);
DARKSDK void hkp_makeRigidBodyStaticMesh(int iID);
DARKSDK void hkp_deleteRigidBody(int iID);
DARKSDK void hkp_setRigidBodyPosition(int iID, float fX, float fY, float fZ);
DARKSDK void hkp_setRigidBodyPositionX(int iID, float fX);
DARKSDK void hkp_setRigidBodyPositionY(int iID, float fY);
DARKSDK void hkp_setRigidBodyPositionZ(int iID, float fZ);
DARKSDK float hkp_getRigidBodyPositionX(int iID);
DARKSDK float hkp_getRigidBodyPositionY(int iID);
DARKSDK float hkp_getRigidBodyPositionZ(int iID);
DARKSDK void hkp_setRigidBodyRotation(int iID, float fX, float fY, float fZ);
DARKSDK void hkp_setRigidBodyRotationX(int iID, float fX);
DARKSDK void hkp_setRigidBodyRotationY(int iID, float fY);
DARKSDK void hkp_setRigidBodyRotationZ(int iID, float fZ);
DARKSDK void hkp_setRigidBodyMass(int iID, float fMass);
DARKSDK float hkp_getRigidBodyMass(int iID);
Obviously you should be able to tell what all of those do. Still gotta add a few more functions to make creating shapes a little more friendly (aka only inputting a single integer value (the id of the object) and letting the plugin compute the bounds).
So yeah, fun stuff.