Box2D - Le Bottin des Jeux Linux

Box2D

🗃️ Specifications

📰 Title: Box2D 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Development 👁️ Visual: 2D
🏷️ Category: Development ➤ Engine ➤ Physics engine 🏝️ Perspective: Third person
🔖 Tags: Framework; Physics engine; C/C++; Python; Java ⏱️ Pacing: Real Time
🐣️ Approx. start: 2009-08-03 👫️ Played: Single & Multi
🐓️ Latest: 2026-05-10 🚦 Status: 04. Released (status)
📍️ Version: Latest: 3.1.1 / Dev: fa173b5 ❤️ Like it: 9. ⏳️
🏛️ License type: 🕊️ Libre 🎀️ Quality: 7. ⏳️
🏛️ License: zlib ⭐ (temporary):
🐛️ Created: 2013-08-10 🐜️ Updated: 2026-05-13

📦️ Deliverables

📦️ Package name: box2d | libbox2d-dev ..... 📦️ Arch: ✓
📄️ Source: ✓ ..... 📦️ RPM: ✓
⚙️ Generic binary: ..... 📦️ Deb: ✓
🌍️ Browser version: ..... 📦️ AppImage:
📱️ Mobile support: ..... 📦️ Flatpak:
🧹️ Not use: ..... 📦️ Snap:

🚦 Entry status

💡 Lights on: ✓ 🚧️ Some work remains to be done:
📰 What's new?: 💖️ A touch of love to this entry 💭️ New version published (to be updated):
🦣️ Awaiting publication on Mastodon: 🎨️ Significant improvement: ✓
🦺️ Work in progress: 🎖️ This work: 5 stars
📰 Previous News: ✓ 👫️ Contrib.: goupildb & Louis
🎰️ ID: 13758

📖️ Summary

📜️[en]: A libre and multiplatform 2D physics engine designed for video game development. It is a 2D rigid-body simulation library that can be used in games to make objects move realistically and make the game world more interactive. From a game engine perspective, a physics engine is a procedural animation system. It also provides numerous collision routines that can be used even when rigid-body simulation is not in use. Functions are available for intersection and projection queries. There is also a hierarchy of bounding volumes (dynamic tree) that can be used for game-specific spatial sorting requirements. 📜️[fr]: Un moteur de physique 2D libre et multiplateforme destiné à la conception de jeux vidéo. Il s'agit d'une bibliothèque de simulation de corps rigides en 2D pouvant être utilisée dans les jeux pour faire bouger les objets de manière réaliste et rendre l'univers du jeu plus interactif. Du point de vue du moteur de jeu, un moteur physique est un système d'animation procédurale. Elle fournit également de nombreuses routines de collision pouvant être utilisées même lorsque la simulation de corps rigides n'est pas utilisée. Il existe des fonctions pour les requêtes de chevauchement et de projection. Il existe également une hiérarchie de volumes englobants (arbre dynamique) qui peut être utilisée pour les besoins de tri spatial spécifiques aux jeux.

🎥️ Videos


🩳️ Shorts: 💥️ (201906), 💥️ (201906),


🐹️ From Users: 💥️ by Phaser Game Engine (202501), 💥️ by Gamefromscratch (2.4.0/202008),


🕯️ How To: 💥️ (201508), 💥️ (3.0/202408),


🎮️ Showcase:
• 💥️ (202006), 💥️ (3.0/202412), 💥️ (201212),

• 💥️ (201306), 💥️ (201110), 💥️ (201502),


🎙️ Dev Interviews: 💥️ Erin Catto, by UD Game Dev Club (202505),

🕸️ Links

🏡️ Website & videos
Website: [Homepage] [Dev site] [Features/About] [Screenshots]
Videos: t(202xxx) gd(202xxx) gu(202501) gu(2.4.0/202008) r(202xxx) lp(202xxx) sc(201906) sc(201906) d(202006) d(3.0/202412) d(201212) d(201306) d(201110) d(201502) d(201106) d(202xxx) d(202xxx) d(202xxx) d(202xxx) ht(201508) ht(3.0/202408) ht[fr](202xxx) ht[de](202xxx) ht[ru](202xxx) ht[pl](202xxx) ht[cz](202xxx) ht[sp](202xxx) ht[pt](202xxx) ht[it](202xxx) ht[tr](202xxx)]
Doc: [WIKI] [FAQ]
Updates: [RSS] / [Changelog 1(news/blog) 2(release notes) 3(tags) 4(commits)]

💰 Commercial
[Patreon]

🍩️ Resources

🔘️ News & Informations
• iforce2d (Box2D C++ tutorials, free): [Homepage] [Dev site] 🎬️ ht(202xxx)

🔘️ Forks or similar projects
• Box2DJS (a JavaScript port of Box2D Physics Engin, zlib): [Homepage] [Dev site] 🎬️ ht(202xxx)
• JBox2D (a close Java port of Erin Catto's excellent C++ Box2D physics engine and Google's LiquidFun physics Engine, BSD-2-Clause): [Homepage] [Dev site] 🎬️ ht(202xxx)
• pybox2d (2D Game Physics for Python, zlib): [Homepage] [Dev site] 🎬️ ht(202xxx)

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

🦣️ Social
Devs (Box2D Team [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (Erin Catto [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1 by UD Game Dev Club (202505) 2(202xxx)]
The Project: [Blog] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikipedia (Box2D) [fr] [en] [de]]
[LibreGameWiki]

📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🕵‍ xxx:

🛠️ Title: Box2D
🦊️ Idea: A libre 2D physics engine designed for video game development
🏡️ https://box2d.org/
🐣️ https://github.com/erincatto/box2d
🦉️ https://mastodon.gamedev.place/@erin_catto
🔖 #LinuxGameDev #PhysicsEngine
📦️ #Libre #Arch #RPM #Deb
📕️ https://lebottinlinux.vps.a-lec.org/LO.html

🥁️ Update: 3.1.1
⚗️ Signific. vers. 🦍️
📌️ Changes: https://github.com/erincatto/box2d/releases
🦣️ From: 🛜️ https://github.com/erincatto/box2d/releases.atom

🐹️ https://www.youtube.com/embed/EkWihSNLuwI
🐹️ https://www.youtube.com/embed/TR3CcqG4Oes
🕯️https://www.youtube.com/embed/?list=PLRqwX-V7Uu6Zy4FyZtCHsZc_K0BrXzxfE
🕯️https://www.youtube.com/embed/eL3fGZgbatc
🎮️ https://www.youtube.com/embed/l6fOYl1K5j8
🎮️ https://www.youtube.com/embed/dAoM-xjOWtA
🎮️ https://www.youtube.com/embed/Oc9mzuWyPOI

🕶️ The project icon

📚️ Box2D is a libre and multiplatform 2D physics engine designed for video game development. It is a 2D rigid-body simulation library that can be used in games to make objects move realistically and make the game world more interactive. From a game engine perspective, a physics engine is a procedural animation system. It also provides numerous collision routines that can be used even when rigid-body simulation is not in use. Functions are available for intersection and projection queries. There is also a hierarchy of bounding volumes (dynamic tree) that can be used for game-specific spatial sorting requirements.

📕 Description [en]

📜️ "A libre 2D physics engine designed for video game development" 📜️

Box2D is a 2D physics engine for games.

Box2D is a 2D rigid body simulation library for games. Programmers can use it in their games to make objects move in realistic ways and make the game world more interactive. From the game engine's point of view, a physics engine is a system for procedural animation.

Box2D also provides many collision routines that can be used even when rigid body simulation is not used. There are functions for overlap and cast queries. There is also a bounding volume hierarchy (dynamic tree) that can be used for game specific spatial sorting needs.

Box2D is written in portable C17. Most of the types defined in the engine begin with the b2 prefix. Hopefully this is sufficient to avoid name clashing with your application.


Features

Collision

✅️ Continuous collision detection
✅️ Contact events
✅️ Convex polygons, capsules, circles, rounded polygons, segments, and chains
✅️ Multiple shapes per body
✅️ Collision filtering
✅️ Ray casts, shape casts, and overlap queries
✅️ Sensor system

Physics

✅️ Robust Soft Step rigid body solver
✅️ Continuous physics for fast translations and rotations
✅️ Island based sleep
✅️ Revolute, prismatic, distance, mouse joint, weld, and wheel joints
✅️ Joint limits, motors, springs, and friction
✅️ Joint and contact forces
✅️ Body movement events and sleep notification

System

✅️ Data-oriented design
✅️ Written in portable C17
✅️ Extensive multithreading and SIMD
✅️ Optimized for large piles of bodies

Samples

✅️ OpenGL with GLFW
✅️ Graphical user interface with imgui
✅️ Many samples to demonstrate features and performance


🌍️ Wikipedia:

Box2D is a free open source 2-dimensional physics simulator engine written in C by Erin Catto and published under the MIT license. It has been used in Crayon Physics Deluxe, Limbo, Rolando, Incredibots, Angry Birds, Tiny Wings, Shovel Knight, Transformice, Happy Wheels,, Noita, and many online Flash games, as well as iPhone, iPad and Android games using the Cocos2d or Moscrif game engine and Corona framework. It has also been used in the Unity game engine and is available as an extension for the Scratch-based programming languages TurboWarp (in its Extension Gallery website) and PenguinMod (built-in extension).

History
Box2D was first released as "Box2D Lite", a demonstration engine to accompany a physics presentation given by Erin Catto at GDC 2006. On September 11, 2007, it was released as open source on SourceForge. On January 17, 2010, Box 2D moved the project to Google Code for hosting. On July 12, 2015, hosting was moved again, this time to GitHub.

On March 6, 2008, version 2.0 was launched, introducing continuous collision detection and revamping the API.

On July 27, 2020, version 2.4 was launched, with a variety of changes, most notably the license was changed to the MIT License.

On Aug 12, 2024, version 3.0 was launched, rewriting the library entirely in C, overhauling the API, increasing single and multi-threaded performance, and changing to a more stable physics solver.

(...)

Features

Box2D performs constrained rigid body simulation. It can simulate bodies composed of convex polygons, circles, and edge shapes. Bodies are joined with joints and acted upon by forces. The engine also applies gravity, friction, and restitution.

Box2D's collision detection and resolution system consists of three pieces: an incremental sweep and prune broad phase, a continuous collision detection unit, and a stable linear-time contact solver. These algorithms allow efficient simulations of fast bodies and large stacks without missing collisions or causing instabilities.

Related engines

(...)

📕 Description [fr]

Un moteur de physique 2D libre destiné à la conception de jeux vidéo, par la Box2D Team, initié par Erin Catto.
En C++.

Box2D est un moteur de physique 2D libre et multiplateforme destiné à la conception de jeux vidéo. Il s'agit d'une bibliothèque de simulation de corps rigides en 2D pouvant être utilisée dans les jeux pour faire bouger les objets de manière réaliste et rendre l'univers du jeu plus interactif. Du point de vue du moteur de jeu, un moteur physique est un système d'animation procédurale. Elle fournit également de nombreuses routines de collision pouvant être utilisées même lorsque la simulation de corps rigides n'est pas utilisée. Il existe des fonctions pour les requêtes de chevauchement et de projection. Il existe également une hiérarchie de volumes englobants (arbre dynamique) qui peut être utilisée pour les besoins de tri spatial spécifiques aux jeux.

permettant la simulation d'un système de corps rigides sur un plan (2D).

Elle est utilisé notamment par les jeux (dans le Bottin): Angry Birds, Bandit Racer, Crayon Physics Deluxe, JAMP, Löve, Numpty Physics, The Butterfly Effect, V-Play, XMoto.io,


Box2D est un moteur physique 2D destiné aux jeux vidéo.

Box2D est une bibliothèque de simulation de corps rigides en 2D destinée aux jeux vidéo. Les programmeurs peuvent l'utiliser dans leurs jeux pour faire bouger les objets de manière réaliste et rendre l'univers du jeu plus interactif. Du point de vue du moteur de jeu, un moteur physique est un système d'animation procédurale.

Box2D fournit également de nombreuses routines de collision qui peuvent être utilisées même lorsque la simulation de corps rigides n'est pas utilisée. Il existe des fonctions pour les requêtes de chevauchement et de projection. Il existe également une hiérarchie de volumes englobants (arbre dynamique) qui peut être utilisée pour les besoins de tri spatial spécifiques aux jeux.

Box2D est écrit en C17 portable. La plupart des types définis dans le moteur commencent par le préfixe b2. Nous espérons que cela suffira à éviter tout conflit de noms avec votre application.

Fonctionnalités

Collision

✅️ Détection continue des collisions
✅️ Événements de contact
✅️ Polygones convexes, capsules, cercles, polygones arrondis, segments et chaînes
✅️ Formes multiples par corps
✅️ Filtrage des collisions
✅️ Ray casts, shape casts et requêtes de chevauchement
✅️ Système de capteurs

Physique

✅️ Solveur de corps rigides Soft Step robuste
✅️ Physique continue pour des translations et rotations rapides
✅️ Mise en veille basée sur les îlots
✅️ Articulations de type revolute, prismatique, de distance, souris, soudure et roue
✅️ Limites d'articulation, moteurs, ressorts et frottement
✅️ Forces d'articulation et de contact
✅️ Événements de mouvement des corps et notification de mise en veille

Système

✅️ Conception orientée données
✅️ Écrit en C17 portable
✅️ Multithreading étendu et SIMD
✅️ Optimisé pour les grands ensembles de corps

Exemples

✅️ OpenGL avec GLFW
✅️ Interface utilisateur graphique avec imgui
✅️ De nombreux exemples illustrant les fonctionnalités et les performances



🌍️ Wikipedia :

Box2D est une Bibliothèque logicielle libre de moteur physique 2D écrit en C++ par Erin Catto et publié sous la licence zlib.

Caractéristiques :

Box2D simule un système de corps rigides sur un plan.
Physiquement, un corps rigide peut être simulé par un point (le centre de gravité) avec une position, un angle, une vitesse et une rotation, auquel on applique des forces (gravité, ...) et des impulsions (contacts, …).
Des contraintes peuvent exister entre ces corps, pour représenter une liaison (un pivot, un coulissement… éventuellement avec une résistance ou une force motrice) ou un contact temporaire.
Afin de calculer les contacts entre ces corps, Box2D fournit un détecteur de collision. Chaque corps simulé peut avoir une forme, limité soit à un assemblage de cercles, de polygones convexes (triangle, rectangle…) ou de formes définies par l'utilisateur. En cas de collision on peut alors ajouter des contacts entre les corps et aussi préciser des frottements, une élasticité…
La forme d'un corps peut également servir à calculer la masse et le moment d'inertie du corps rigide.

Box2D a été porté dans beaucoup de langages de programmation (entre autres Java, JavaScript, Adobe Flash, Adobe Flex), et est disponible sur un grand nombre de plateforme. Box2D est utilisé par Angry Birds, ou par LÖVE (un moteur de jeu basé sur lua).