Bullet is a 3D game multiphysics library that provides state of the art collision detection and soft body and rigid body dynamics. Bullet is integrated into Cinema 4D, Lightwave, and Blender. A Houdini and Maya Plugin is available. It has a modular extendible C++ design with hot-swap of most components. The back-ends were optimized for pthreads/Win32 Threads multi-threading and PS3 Cell SPU. Other features include discrete and continuous collision detection (CCD), swept collision queries, ray casting with custom collision filtering, generic convex support (using GJK), capsule, cylinder, cone, sphere, box, and non-convex triangle meshes. Rigid body dynamics include constraint solvers, generic constraints, ragdolls, hinges, and ball-sockets. Constraint limits and motors are supported. Soft body support includes cloth, rope, and deformable objects. Import and export into COLLADA 1.4 Physics format is supported. Dynamic deformation of non-convex triangle meshes is supported by refitting the acceleration structures.
PhysicsFS is a library to provide abstract access to various archives. The programmer defines a "write directory" on the physical filesystem. No file writing done through the PhysicsFS API can leave that write directory, for security. For file reading, the programmer lists directories and archives that form a "search path". Once the search path is defined, it becomes a single, transparent, hierarchical filesystem. This makes for easy access to ZIP files in the same way as you access a file directly on the disk, and it makes it easy to ship a new archive that will override a previous archive on a per-file basis. Symbolic links can be disabled, for added safety. Finally, PhysicsFS gives you a platform- abstracted means to determine if CD-ROMs are available, the user's home directory, where in the real filesystem your program is running, etc.