Bullet Physics

Current RayFire Bullet v1 build supports only Rigid Body simulation, it allows to use the same dynamic simulation features supported by PhysX engine, except Constraints.

Next RayFire Bullet v2 build will be released later and will have GPU acceleration and Soft Body simulation support.

RayFire Bullet works in max via Max Script, so any user with Max Script experience can create simulation using bullet.

To see all available functions evaluate rfbp.describeme() function.

Functions for RayFire Bullet Physics Implementation:
void DescribeMe()
void AddRigidBody(INode* inode, string rbType, string shapeType)
// Available rbTypes: {Dynamic, Static, Kinematic, Sleeping}
// Available shapeTypes: {Sphere, Box, Concave, Convex, Original }
void Simulate(float delta, int pass, numPass)
void SetMaxSimulationSubSteps(int count)
void SetLinearVelocity(INode* inode, Point3 val)
Point3 GetLinearVelocity(INode* inode)
void SetAngularVelocity(INode* inode, Point3 val)
Point3 GetAngularVelocity(INode* inode)
void SetMass(INode* inode, float val)
float GetMass(INode* inode)
void SetGravity(Point3 val)
Point3 GetGravity()
void SetNodeGravity(INode* inode, Point3 val)
void RemoveAll()
Point3 GetGlobalPosition(INode* inode)
void RemoveRigidBody(INode* inode)
void SetRestitution(INode* inode, float val)
float GetRestitution(INode* inode)
void SetFriction(INode* inode, float val)
float GetFriction(INode* inode)
void SetHitFraction(INode* inode, float val)
float GetHitFraction(INode* inode)
void SetRollingFriction(INode* inode, float val)
float GetRollingFriction(INode* inode)
int GetContactsCount()
float GetContactForce(int index)
Point3 GetContactPoint(int index)
INode GetContactNode0(int index)
INode GetContactNode1(int index)
void SetAsDynamic(INode* inode)
void SetSolverIterations(int val)
float GetSolverIterations()
void SetAsKinematic(INode* inode)
void SetAsStatic(INode* inode)
void SetContactFilter(float val)
float GetContactFilter()
void SetDensity(INode* inode, float val)
float GetDensity(INode* inode)
float GetVolume(INode* inode)
Point3 GetNodeGravity(INode* inode)
void SetSleep(INode* inode)
int GetPluginBuild()