All Projects → ByteArena → Box2d

ByteArena / Box2d

Licence: other
Box2D.go - Go port of Box2D - a 2D Physics Engine for Games.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Box2d

Planck.js
2D JavaScript Physics Engine
Stars: ✭ 4,149 (+1894.71%)
Mutual labels:  physics-engine, box2d
Box2DSwift
Box2DSwift is a Swift port of Box2D Physics Engine.
Stars: ✭ 38 (-81.73%)
Mutual labels:  physics-engine, box2d
Playground
A playground for android developers
Stars: ✭ 41 (-80.29%)
Mutual labels:  physics-engine, box2d
P5 Matter Examples
Examples showing how to combine p5.js and matter.js.
Stars: ✭ 43 (-79.33%)
Mutual labels:  physics-engine, box2d
Pilas
Pilas engine
Stars: ✭ 141 (-32.21%)
Mutual labels:  box2d
Micro Racing
🚗 🏎️ 🎮 online 3D multiplayer neural networks based racing game
Stars: ✭ 100 (-51.92%)
Mutual labels:  physics-engine
Specs Physics
nphysics integration for the Specs entity component system
Stars: ✭ 94 (-54.81%)
Mutual labels:  physics-engine
Godbasin.github.io
被删前端博客--喜欢请star
Stars: ✭ 1,229 (+490.87%)
Mutual labels:  box2d
Hand tracking samples
👋 👌 research codebase for depth-based hand pose estimation using dynamics based tracking and CNNs
Stars: ✭ 180 (-13.46%)
Mutual labels:  physics-engine
Apple Music Animation
Apple music animation demo in Android
Stars: ✭ 153 (-26.44%)
Mutual labels:  box2d
Jelloswift
Swift soft body physics engine
Stars: ✭ 134 (-35.58%)
Mutual labels:  physics-engine
Physics3d
A 3D physics engine
Stars: ✭ 101 (-51.44%)
Mutual labels:  physics-engine
Matter Js
a 2D rigid body physics engine for the web ▲● ■
Stars: ✭ 12,522 (+5920.19%)
Mutual labels:  physics-engine
Webots
Webots Robot Simulator
Stars: ✭ 1,324 (+536.54%)
Mutual labels:  physics-engine
Box2dsharp
A C# port of Box2D
Stars: ✭ 161 (-22.6%)
Mutual labels:  box2d
Cubbyflow V1
Voxel-based fluid simulation engine for computer games
Stars: ✭ 90 (-56.73%)
Mutual labels:  physics-engine
Visual Interaction Networks tensorflow
Tensorflow Implementation of Visual Interaction Networks
Stars: ✭ 133 (-36.06%)
Mutual labels:  physics-engine
Cubbyflow
Voxel-based fluid simulation engine for computer games
Stars: ✭ 151 (-27.4%)
Mutual labels:  physics-engine
Elm Physics
3D physics engine in Elm
Stars: ✭ 132 (-36.54%)
Mutual labels:  physics-engine
Edyn
Edyn is a real-time physics engine organized as an ECS.
Stars: ✭ 113 (-45.67%)
Mutual labels:  physics-engine

Box2D.go

What is this ?

This is Go a port of Box2D (https://github.com/erincatto/Box2D), a 2D physics engine for games written in C++ by Erin Catto.

The port is complete and based on the latest Box2D commit as of 2017-09-20 (https://github.com/erincatto/Box2D/commit/f655c603ba9d83f07fc566d38d2654ba35739102)

Who did this ?

The ByteArena team did. Erin Catto, the author of the original software, was not involved in the port.

https://s3.eu-central-1.amazonaws.com/bytearena-public/ba-prod-twitter.mp4

Documentation

We kept the source code as close to the C++ as we possibly could. So the documentation you'll find on Box2D is relevant.

https://box2d.org/documentation/

API changes

The API had to change a tiny bit due to the fact that :

  • Go has no constructors as a language feature, thus code for constructors has been placed in Make$NAME_OF_TYPE functions
  • Go has no support for function overloading; some functions implemented multiple times for different sets of parameters under the same name in C++ are distinguished by name in the golang version; we tried to make names explicit so that should not be an issue
  • Go has no support for operator overloading; this C++ feature is used extensively throughout the C++ version of Box2D (mainly for the vector and matrix arithmethic), and has been converted to good old, albeit verbose function calls

Tests

No opengl testbed for the moment.

Our tests verify the output of position and rotation of bodies over time against those generared by the C++ reference.

Right now, there's a test (passing) checking all the supported body shape collisions in cmd/test-character-collision.

Usage example

Have a look at cpp_compliance_test.go.

License of the original Box2D (C++)

The original Box2D is developed by Erin Catto, and has the zlib license. Thank you Erin for this incredible piece of software.

License of this port (Go)

Box2D.go is developed by ByteArena (https://github.com/bytearena), and has the zlib license. While the zlib license does not require acknowledgement, we encourage you to give credit to Box2D.go in your product.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].