# Bullet (Physik-Engine)

Bullet ist eine freie Physik-Engine, die 3D-Kollisionserkennung, Simulation von Physik starrer Körper und Simulation von nicht-elastischer Physik mit Deformationen unterstützt. Sie wird in der Computerspiel-Entwicklung und für visuelle Effekte in Filmen verwendet. Die Bullet Physics Library wird unter der Zlib-Lizenz veröffentlicht. Der Hauptautor Erwin Coumans arbeitete von 2003 bis 2010 für Sony Computer Entertainment, bis 2014 für AMD, bis 2022 für Google und seitdem für Nvidia.

## Merkmale

* Simulation von Physik starrer Körper (rigid body dynamics)
* Simulation nicht-elastischer Physik von Stoffen, Seilen und deformierbaren Objekten (soft body dynamics)
* Diskrete und stetige Kollisionserkennung.
* Bei der Kollisionserkennung werden folgende Formen unterstützt: Kugel, Quader bzw. Würfel (Box), Zylinder, Kegel, Konvexe Hülle über den GJK-Distanzalgorithmus, nicht-konvexe Objekte und Dreiecksnetze.
* Eine große Auswahl an Zwangsbedingungen (constraints) für das Verhalten der Objekte.
* Plug-ins für Maya, Softimage, Integrationen für Houdini, Cinema 4D, LightWave 3D und Blender sowie eine Importmöglichkeit für COLLADA 1.4 Physik-Inhalt.
* Optionale Optimierungen für die PlayStation 3 Cell SPU, CUDA und OpenCL.

## Projekte die Bullet verwenden
### Kommerzielle Spiele

Zu Computerspielen, die von professionellen Spiele-Entwicklern geschaffen wurden und Bullet als Physik-Engine verwenden, zählen unter anderem:
* Mit der Blender Game Engine entwickelte Spiele.
* Toy Story 3 Video Spiel veröffentlicht von Disney Interactive Studios.
* Grand Theft Auto IV, Grand Theft Auto V und Red Dead Redemption von Rockstar Games.
* Trials HD von RedLynx.
* Free Realms von Sony Online Entertainment.
* Hot Wheels: Battle Force 5.
* Madagascar Kartz, veröffentlicht von Activision.
* Regnum Online von NGD Studios ist ein Fantasy- MMORPG, welches mit einem großen Update Bullet als neue Physik-Engine implementierte.
* Blood Drive, veröffentlicht von Activision.
* Hydro Thunder Hurricane, entwickelt von Vector Unit und veröffentlicht von Microsoft Game Studios.
* Euro Truck Simulator 2, entwickelt von SCS Software.
* Rocket League, entwickelt von Psyonix.

### Filme

Heutzutage verwenden auch Filmstudios Physik-Simulatoren für Spezialeffekte in Filmen. Kommerzielle Filme, in denen dazu Bullet-Physik verwendet wurde, sind unter anderem:
* 2012 von Digital Domain.
* Hancock von Sony Pictures Imageworks.
* Bolt – Ein Hund für alle Fälle von Walt Disney Animation Studios nutzten Bullet durch das Dynamica Maya Plug-in.
* Das A-Team – Der Film von Weta Digital.
* Sherlock Holmes von Framestore.
* Megamind und Für immer Shrek von DreamWorks Animation.

### 3D Autorentools

* Blender ist eine freie 3D-Grafiksoftware, die Bullet-Physik für Animationen und die interne Blender Spiel-Engine verwendet.
* Carrara Pro unterstützt Bullet ab Version 8.
* Cheetah3D nutzt Bullet für die Physik-Simulation ab Version 6.0.
* Cinema 4D implementiert mit Version 11.5 Bullet als Teil des Modynamics Systems.
* Houdini verwendet Bullet für dynamischen Inhalt ab Version 12.0. Für frühere Versionen gibt es ein Open Source Plug-in.
* LightWave 3D CORE.
* Modo Recoil
* Softimage erhält durch das Momentum Plug-in Bullet-Support.
* Maya integriert Bullet durch das Golaem Crowd Plug-in von Golaem.

### Open Source und andere

* OpenSimulator ist eine Open-Source-Server-Software für den Betrieb virtueller Welten mit Bullet als einer der optionalen Physik-Engines; seit 2014 ist Bullet der voreingestellte Standard.
* 3DMark von Futuremark.
* Panda3D integriert Bullet.
* GameKit besitzt eine Integration von Bullet.
* OGRE stellt durch das OgreBullet Add-On eine Integration zur Verfügung.
* Irrlicht Engine stellt mehrere Bullet Integrationen zur Verfügung: Bullet Physics Wrapper, irrBP und GameKit.
* OpenSceneGraph integriert Bullet über die osgBullet Bibliothek.
* Crystal Space Spiel-Engine wechselte zu Bullet als Physik-Engine.
* Physics Abstraction Layer bietet ein universales Interface für diverse Physik-Engines, unter anderem für Bullet, an.
* C4 Engine ist eine proprietäre Spiel-Engine von Terathon Software LLC, die durch JamesH eine Bullet Integration bekommen hat.
* jMonkeyEngine, eine in Java programmierte Spiel-Engine.
* Blitz3D integriert Bullet durch den BlitzBullet Wrapper.
* Maratis3D ist eine Spiel-Engine, die Bullet als Physik-Engine verwendet.
* Pybullet ist ein Bullet Wrapper für Python.
* DFPGE ist eine Open Source Grafik-Engine, die Bullet für Physik-Simulationen verwendet.
* V-REP Roboter-Simulator unterstützt Bullet als Physik-Engine.
* ENIGMA Development Environment, eine Open Source Entwicklungsumgebung für Spiele.
* ammo.js ist ein JavaScript-Port von Bullet und kann z. B. zusammen mit dem 3D-Framework Three.js auf Basis von WebGL verwendet werden.
* Godot ist eine Spiel-Engine, die ab Version 3.0 die Bullet Physik-Engine nutzt.
* GFX ist ein Open Source C# Game Framework, welche einen Wrapper der Bullet Physik-Engine nutzt.