Git Product home page Git Product logo

box2d-netstandard's Introduction

Box2D Logo

Box2D .NET Standard

Box2D .NET Standard is the port of Box2D from C++ to C# by Ben Ukhanov & Hugh Phoenix-Hulme 2020.

Loosely based on Box2DX by Ihar Kalasouski 2008.

  • The purpose of this repository is to create Box2D .NET Standard library.
  • The .NET Standard supports .NET Framework, .NET Core, and .NET 5+ later.
  • The NuGet package is available on Box2D.NetStandard.

Current Status

  • The latest non-pre-release version on NuGet (1.0.3) is essentially Box2DX from 2008 updated to work with .NET Standard and cleaned up.
  • The current pre-release version is unstable. 2.0.0-alpha produces Null Reference Exceptions, for example. The API is unstable - the intent is to change all casing to lowerCamelCase to match Erin's code, and replace all Get...() and Set...(value) methods with Properties, but this is still all half-done. ChainShape exists, but no collisions take place yet. If you take the pre-release version, PLEASE feel free to raise Issues and create Pull Requests, but at the same time DON'T expect perfection or stability.

Known issues

In 1.0.3:

  • None.

In 2.0.x:

  • Code Optimisation must be enabled for things to work properly, and you must not have a debugger attached.

Source

Contributing

Anyone who wants to contribute to this repository:

  • The changes will be in the new branch (feature/new or feature/bug-fix).
  • The new pull request will be started.
  • The new version will be published.

Features

Collision

  • Continuous collision detection.
  • Contact callbacks: add, persist, remove.
  • Convex polygons and circles.
  • Multiple shapes per body.
  • One-shot contact manifolds.
  • Incremental sweep-and-prune broadphase.
  • Efficient pair management.
  • Fast broadphase AABB queries.
  • Collision groups and categories.

Physics

  • Continuous physics with time of impact solver.
  • Persistent body-joint-contact graph.
  • Island solution and sleep management.
  • Contact, friction, and restitution.
  • Stable stacking with a linear-time solver.
  • Revolute, prismatic, distance, pulley, gear, and mouse joints.
  • Joint limits, motors, and friction.
  • Momentum decoupled position correction.
  • Fairly accurate reaction forces/impulses.

System

Documentation

License

Original C++ Box2D is developed by Erin Catto, under the MIT license.

box2d-netstandard's People

Contributors

codingben avatar hughph avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.