Generated by GPT-5-mini| Bullet (physics library) | |
|---|---|
| Name | Bullet |
| Author | Erwin Coumans |
| Developer | Bullet Team |
| Initial release | 2003 |
| Programming language | C++ |
| License | zlib License |
Bullet (physics library) is an open-source real-time physics simulation library for collision detection, soft body dynamics, and rigid body dynamics. It is used in computer graphics, virtual reality, robotics, and visual effects, providing simulation backends for engines, middleware, and research projects. Developed by contributors from industry and academia, the library integrates with many engines, frameworks, and toolchains in entertainment and engineering.
The project began in 2003 when Erwin Coumans developed core collision and dynamics code that later saw adoption by studios and institutions such as Industrial Light & Magic, Weta Digital, Pixar, Electronic Arts, and Ubisoft. Early adoption in academic venues led to collaborations with researchers at MIT, Stanford University, University of Pennsylvania, ETH Zurich, and University of Cambridge. Major milestones include integration with the Open Source Project ecosystem, contributions from teams at NVIDIA, AMD, and Intel, and use in events and showcases like SIGGRAPH, GDC, and E3. The library played roles in productions by DreamWorks Animation, Sony Pictures Imageworks, and Lucasfilm, and was cited in papers presented at ACM SIGGRAPH, IEEE VR, and IROS. Over time governance included maintainers from organizations such as Google, Microsoft Research, Facebook AI Research, and Apple Inc..
Bullet is written in C++ and follows a modular architecture with subsystems for collision detection, constraint solvers, and integration methods. Core components include a broad-phase collision system, narrow-phase collision dispatch, rigid body dynamics world, soft body solver, and constraint framework compatible with engines like Havok, PhysX, ODE (software), and Box2D. Data structures incorporate bounding volume hierarchies, sweep-and-prune algorithms, and spatial hashing techniques used in work from University of Toronto, University of California, Berkeley, and Carnegie Mellon University. Solvers include iterative methods influenced by research from ETH Zurich and University of British Columbia; the architecture supports plugins and custom callbacks used by projects at Mozilla, Blender Foundation, and Autodesk.
Bullet provides continuous collision detection, convex and concave mesh handling, soft body simulation, cloth, rope, and vehicle dynamics. It supports character controllers, kinematic objects, constraint types such as hinge, cone twist, and generic 6DOF constraints, and articulation support comparable to systems in Robotics Institute projects at CMU. Graphics and animation toolchain integrations include exporters and importers used by Autodesk Maya, Autodesk 3ds Max, Blender, Houdini, and game engines like Unreal Engine, Unity (game engine), and Godot Engine. Bullet’s soft body features have been referenced in research at KAIST, Tsinghua University, and KTH Royal Institute of Technology for tissue simulation and virtual surgery demonstrations at conferences like Eurographics.
Performance optimizations in Bullet leverage multi-threading, SIMD instructions, and GPU acceleration strategies influenced by architectures from NVIDIA, AMD, and Intel Corporation. Techniques include optimized broad-phase, cache-friendly memory layouts, parallel constraint solving, and GPU-accelerated collision detection used in production pipelines at Walt Disney Animation Studios and Industrial Light & Magic. Benchmarks and profiling have been compared to engines like PhysX, Havok, and ODE in whitepapers and presentations at GDC and SC Conference. Real-time applications use tuning parameters and solver configuration strategies derived from research at University of Illinois Urbana–Champaign and University of Washington to balance stability and throughput.
Bindings exist for languages and platforms including Python (programming language), Java, C#, Lua (programming language), and Rust (programming language), supporting integration with frameworks such as ROS, OpenCV, TensorFlow, and PyTorch for robotics and machine learning workflows. Native integrations include plugins and middleware adapters for Unity (game engine), Unreal Engine, Godot Engine, Blender Foundation add-ons, and SDKs used by companies like Epic Games, Unity Technologies, Valve Corporation, and Microsoft. Cross-platform support spans Windows, macOS, Linux, Android (operating system), and iOS, with build systems referencing CMake and continuous integration used by teams at GitHub and GitLab.
Bullet is used in game development by studios such as Rockstar Games, Bethesda Softworks, and Square Enix for vehicle and ragdoll systems; in visual effects at Industrial Light & Magic, Weta Digital, and Framestore for destruction and cloth; and in robotics research at NASA, European Space Agency, and Boston Dynamics for simulation and control testing. It appears in scientific visualization projects at Lawrence Livermore National Laboratory and Los Alamos National Laboratory, in virtual reality applications showcased by Valve Corporation and HTC, and in architectural visualization workflows at Autodesk and Trimble Navigation. Educational use includes courses at MIT, Stanford University, and Carnegie Mellon University.
Bullet is distributed under the zlib License and maintained by a community of contributors spanning independent developers, academics, and engineers from companies including NVIDIA, Google, AMD, and Apple Inc.. Development activity occurs on platforms like GitHub with issue tracking, pull requests, and contributor discussions mirroring practices seen in open projects such as Linux kernel and Blender (software). Community resources include tutorials and talks at GDC, SIGGRAPH, Eurographics, and documentation efforts supported by organizations like Blender Foundation and educational institutions such as MIT OpenCourseWare.
Category:Physics engines