ExampleEntry(1,"Basic Example","Create some rigid bodies using box collision shapes. This is a good example to familiarize with the basic initialization of Bullet. The Basic Example can also be compiled without graphical user interface, as a console application.",BasicExampleCreateFunc),
ExampleEntry(1,"Gyroscopic","Show the Dzhanibekov effect using various settings of the gyroscopic term. You can select the gyroscopic term computation using btRigidBody::setFlags, with arguments BT_ENABLE_GYROSCOPIC_FORCE_EXPLICIT (using explicit integration, which adds energy and can lead to explosions), BT_ENABLE_GYROSCOPIC_FORCE_IMPLICIT_WORLD, BT_ENABLE_GYROSCOPIC_FORCE_IMPLICIT_BODY. If you don't set any of these flags, there is no gyroscopic term used.",GyroscopicCreateFunc),
ExampleEntry(1,"Planar 2D","Show the use of 2D collision shapes and rigid body simulation. The collision shape is wrapped into a btConvex2dShape. The rigid bodies are restricted in a plane using the 'setAngularFactor' and 'setLinearFactor' API call.",Planar2DCreateFunc),
ExampleEntry(1,"Constraints","Use of a btHingeConstraint. You can adjust the first slider to change the target velocity, and the second slider to adjust the maximum impulse applied to reach the target velocity. Note that the hinge angle can reach beyond -360 and 360 degrees.",ConstraintCreateFunc),
ExampleEntry(1,"MultiDofCreateFunc","Create a basic btMultiBody with 3-DOF spherical joints (mobilizers). The demo uses a fixed base or a floating base at restart.",MultiDofCreateFunc),
ExampleEntry(1,"TestJointTorque","Apply a torque to a btMultiBody with 1-DOF joints (mobilizers).",TestJointTorqueCreateFunc),
ExampleEntry(1,"Friction","Simulate soft body friction with friction coefficients ranging from 0 to 1.",SoftDemoCreateFunc,14),
ExampleEntry(1,"Torus","Simulate a soft body torus.",SoftDemoCreateFunc,15),
ExampleEntry(1,"Torus (Shape Match)","Simulate a soft body torus using shape matching.",SoftDemoCreateFunc,16),
ExampleEntry(1,"Bunny","Simulate the Stanford bunny as deformable object.",SoftDemoCreateFunc,17),
ExampleEntry(1,"Bunny (Shape Match)","Simulate the Stanford bunny as deformable object including shape matching.",SoftDemoCreateFunc,18),
ExampleEntry(1,"Cutting","Allow cutting of the soft body, by clicking on the cloth",SoftDemoCreateFunc,19),
ExampleEntry(1,"Cluster Deform","Soft body collision detection using convex collision clusters.",SoftDemoCreateFunc,20),
ExampleEntry(1,"Cluster Collide1","Collision detection between soft bodies using convex collision clusters.",SoftDemoCreateFunc,21),
ExampleEntry(1,"Cluster Collide2","Collision detection between soft bodies using convex collision clusters.",SoftDemoCreateFunc,22),
ExampleEntry(1,"Cluster Socket","Soft bodies connected by a point to point (ball-socket) constraints. This requires collision clusters, in order to define a frame of reference for the constraint."
,SoftDemoCreateFunc,23),
ExampleEntry(1,"Cluster Hinge","Soft bodies connected by a hinge constraints. This requires collision clusters, in order to define a frame of reference for the constraint.",SoftDemoCreateFunc,24),
ExampleEntry(1,"Cluster Combine","Simulate soft bodies using collision clusters.",SoftDemoCreateFunc,25),
ExampleEntry(1,"Cluster Car","Simulate the Stanford bunny by multiple soft bodies connected by constraints.",SoftDemoCreateFunc,26),
ExampleEntry(1,"Cluster Robot","A rigid body base connected by soft body wheels, connected by constraints.",SoftDemoCreateFunc,27),
ExampleEntry(1,"Cluster Stack Soft","Stacking of soft bodies.",SoftDemoCreateFunc,28),
ExampleEntry(1,"Cluster Stack Mixed","Stacking of soft bodies and rigid bodies.",SoftDemoCreateFunc,29),
ExampleEntry(1,"Tetra Cube","Simulate a volumetric soft body cube defined by tetrahedra.",SoftDemoCreateFunc,30),
ExampleEntry(1,"Tetra Bunny","Simulate a volumetric soft body Stanford bunny defined by tetrahedra.",SoftDemoCreateFunc,31),
ExampleEntry(1,"3000 boxes","Benchmark a stack of 3000 boxes. It will stress the collision detection, a specialized box-box implementation based on the separating axis test, and the constraint solver. ",BenchmarkCreateFunc,1),
ExampleEntry(1,"1000 stack","Benchmark a stack of 3000 boxes. It will stress the collision detection, a specialized box-box implementation based on the separating axis test, and the constraint solver. ",
BenchmarkCreateFunc,2),
ExampleEntry(1,"Ragdolls","Benchmark the performance of the ragdoll constraints, btHingeConstraint and btConeTwistConstraint, in addition to capsule collision detection.",BenchmarkCreateFunc,3),
ExampleEntry(1,"Convex stack","Benchmark the performance and stability of rigid bodies using btConvexHullShape.",BenchmarkCreateFunc,4),
ExampleEntry(1,"Prim vs Mesh","Benchmark the performance and stability of rigid bodies using primitive collision shapes (btSphereShape, btBoxShape), resting on a triangle mesh, btBvhTriangleMeshShape.",BenchmarkCreateFunc,5),
ExampleEntry(1,"Convex vs Mesh","Benchmark the performance and stability of rigid bodies using convex hull collision shapes (btConvexHullShape), resting on a triangle mesh, btBvhTriangleMeshShape.",BenchmarkCreateFunc,6),
ExampleEntry(1,"Raycast","Benchmark the performance of the btCollisionWorld::rayTest. Note that currently the rays are not rendered.",BenchmarkCreateFunc,7),
ExampleEntry(1,"Import .bullet","Load a binary .bullet file. The serialization mechanism can deal with versioning, differences in endianess, 32 and 64bit, double/single precision. It is easy to save a .bullet file, see the examples/Importers/ImportBullet/SerializeDemo.cpp for a code example how to export a .bullet file.",SerializeBulletCreateFunc),
ExampleEntry(1,"Quake BSP","Import a Quake .bsp file",ImportBspCreateFunc,0),
ExampleEntry(1,"COLLADA dae","Import the geometric mesh data from a COLLADA file. This is used as part of the URDF importer. This loader can also be used to import collision geometry in general. ",
ImportColladaCreateFunc,0),
ExampleEntry(1,"STL","Import the geometric mesh data from a STL file. This is used as part of the URDF importer. This loader can also be used to import collision geometry in general. ",ImportSTLCreateFunc,0),
ExampleEntry(1,"URDF (RigidBody)","Import a URDF file, and create rigid bodies (btRigidBody) connected by constraints.",ImportURDFCreateFunc,0),
ExampleEntry(1,"URDF (MultiBody)","Import a URDF file and create a single multibody (btMultiBody) with tree hierarchy of links (mobilizers).",
ExampleEntry(1,"ForkLift","Simulate a fork lift vehicle with a working fork lift that can be moved using the cursor keys. The wheels collision is simplified using ray tests."
"There are currently some issues with the wheel rendering, the wheels rotate when picking up the object."
"The demo implementation allows to choose various MLCP constraint solvers.",
ExampleEntry(1,"Raytest","Cast rays using the btCollisionWorld::rayTest method. The example shows how to receive the hit position and normal along the ray against the first object. Also it shows how to receive all the hits along a ray.",RaytestCreateFunc),
ExampleEntry(1,"Raytracer","Implement an extremely simple ray tracer using the ray trace functionality in btCollisionWorld.",
ExampleEntry(1,"Voronoi Fracture","Automatically create a compound rigid body using voronoi tesselation. Individual parts are modeled as rigid bodies using a btConvexHullShape.",
ExampleEntry(1,"Implicit Cloth","Cloth simulation using implicit integration, by Stan Melax. The cloth is only attached at the corners. Note the stability using a large time step even with high stiffness.",