Generated by GPT-5-mini| Bullet (physics engine) | |
|---|---|
| Name | Bullet |
| Title | Bullet (physics engine) |
| Developer | Erwin Coumans, Google, Sony, AMD |
| Released | 2003 |
| Programming language | C++ |
| Operating system | Cross-platform |
| License | zlib |
| Repository | GitHub |
Bullet (physics engine) is an open-source real-time collision detection and rigid body dynamics library used in computer graphics, simulation, and interactive applications. It provides discrete and continuous collision detection, soft body dynamics, and vehicle simulation for engines, studios, and research groups. Bullet is integrated into numerous engines and tools across gaming, film, robotics, and virtual reality industries.
Bullet originated in 2003 as a project developed by Erwin Coumans while collaborating with studios and research labs such as DreamWorks Animation, Sony Computer Entertainment, NVIDIA, AMD, and academic groups at University of Pennsylvania and Stanford University. Early adoption occurred in film productions and game engines, with notable inclusion in projects by Lucasfilm, Industrial Light & Magic, and Epic Games through integration efforts with engines like Unreal Engine. Over time, corporate participation from Google and partnerships with hardware vendors including Intel and ARM Holdings influenced optimizations for multicore and mobile platforms. Community contributions grew via the hosting of source code and issue tracking on GitHub, and presentations at conferences such as SIGGRAPH, GDC, and ICRA broadened its academic and commercial footprint.
Bullet is implemented in C++ and organized around modular subsystems that match patterns used by middleware vendors like Havok, PhysX, and ODE. Core components include the broadphase, narrowphase, constraint solver, integrator, and dispatcher, mirroring abstractions used by studios such as Weta Digital and Industrial Light & Magic. The design supports plugin-style integrations with rendering engines including OGRE, Irrlicht, and proprietary frameworks at companies like Valve Corporation and Unity Technologies. Data structures in Bullet draw on research from labs at MIT, ETH Zurich, and Carnegie Mellon University for spatial partitioning and numerical stability, enabling extensions for soft bodies, cloth, and rigid-body islands similar to systems developed by Rockstar Games and Bioware.
Collision detection in Bullet combines broadphase algorithms—sweep-and-prune and dynamic AABB trees influenced by work at Los Alamos National Laboratory—with narrowphase algorithms for convex and concave geometry. Continuous collision detection (CCD) mechanisms mitigate tunneling issues studied at Cornell University and implemented in techniques comparable to those used by NVIDIA PhysX. The dynamics pipeline employs constraint solvers (sequential impulse and iterative solvers) related to formulations published by researchers at Caltech and ETH Zurich. Soft body and deformable models use finite element and mass-spring approaches that echo investigations at University of Utah, while vehicle dynamics and suspension systems parallel implementations seen in projects from Toyota Research Institute and Bosch automotive research groups.
Bullet provides bindings and adapters for many ecosystems, enabling use with game engines and simulators like Gazebo, ROS, Unreal Engine, Unity (game engine), and graphics engines such as OpenSceneGraph and bgfx. Language bindings include wrappers for Python (programming language), Java (programming language), C#, and JavaScript through emscripten ports, facilitating adoption in robotics labs at institutions like ETH Zurich and industrial projects from Siemens. Middleware connectors enable export/import workflows with content creation tools from Autodesk, including Maya (software) and 3ds Max, and rendering pipelines used by studios such as Pixar and Walt Disney Animation Studios.
Performance efforts in Bullet target multicore CPUs and SIMD units similar to optimization strategies by Intel and ARM Holdings. Profiling and tuning draw on methodologies published at ACM SIGGRAPH and GDC, incorporating cache-friendly memory layouts, reduced branching, and parallel task schedulers comparable to those in PhysX and Havok. GPU offloading experiments have paralleled work at NVIDIA and research groups at EPFL, exploring CUDA, OpenCL, and Metal backends for broadphase acceleration. Real-world performance comparisons have been discussed in benchmarks at Eurographics, ICRA, and independent labs including University of Cambridge.
Bullet is used across industries: game development at studios like Epic Games and Valve Corporation; visual effects at Industrial Light & Magic and Weta Digital; robotics simulation in ROS-based projects and research at Massachusetts Institute of Technology and Carnegie Mellon University; and virtual reality applications for platforms supported by Oculus (brand) and HTC Corporation. Scientific research in biomechanics and material science at Johns Hopkins University and Stanford University has leveraged Bullet for deformable models, while automotive simulation groups at Toyota and Ford Motor Company have used it for prototype dynamics. Educational use appears in coursework at institutions such as Princeton University and University of California, Berkeley.
Bullet is distributed under the permissive zlib license, encouraging integration by commercial entities including Sony, Google, and independent studios like Turbine, Inc.. Development occurs openly on GitHub with pull requests and issue discussions involving contributors from academia and industry, and code contributions have been presented at SIGGRAPH, GDC, and robotics conferences such as ICRA and IROS. Community resources include mailing lists, forums hosted by projects like ROS and engine-specific communities for Unreal Engine and Unity (game engine), fostering collaborations between researchers at ETH Zurich, University of Pennsylvania, and engineers at NVIDIA and AMD.
Category:Software