Code Monkey home page Code Monkey logo

cirobb's Introduction

♥️ Please help with a Star on Github ⭐

Cirobb V1.1.8

Cirobb is a 2D Rigid Body Physics Engine inspired by Box2D Lite that was created with the purpose of helping people who are starting in this wonderful world of physics for Videogames. The Engine uses the Erin Catto's Contact Persistence Algorithm and it's implementation of the PGS (Projected Gauss Seidel) solver to solve the MLCP very well known as a SI (Sequential Impulse).
it also has a very simple 2D Collision Detection to Calculate Contact Points, Normal Direction and Penetration.
The main Idea of this project is to explain in more detail how physics engines works,

If you want to make more complex simulations with many Constraints and Shapes. I recommend you use better Box2D which in my opinion I think it's the best 2D open source physics engine that exists.

Captures

img1 img3


Cirobb with Webassembly

Cirobb Engine V1.1.8 : https://jonpena.github.io/Cirobb-wasm

Demo Youtube Video

Cirobb Engine V1.1.4 : https://youtu.be/j2p6qmOVA7M

Future changes

Cirobb is a Physics Engine that is almost finished. Since the main idea is to create a simple introduction to 2D rigid body physics engines few modifications will be added to keep things Simple.

The Following Features will be added to the Cirobb Engine in the future:

  • Direct Solver to improve the convergence of the Velocity Solver.

  • The Distance Constraint. (Optional?)

  • Add Collision Detection against convex polygons.

  • Change Distance-Based Contact Points to Feature-Based Contact Points

Books and Resources to learn about physics engines

  • Erin Catto for his incredible slides and knowledges about Game Physics:

    • Iterative Dynamics with Temporal Coherence.

    • Modeling and Solving Constraints.

    • Soft Constraints.

    • Numerical_Methods.

    • Continuous Collision Detection.

    • Understanding Constraints.

  • Dirk Gregorius For his incredible slides about collision detection:

    • The Separating Axis test Between Convex Polyhedra.

    • Robust Contact Creation for physics Simulation.

  • Erwin Coumans For his slides and Physics Engine:

    • Forum Bullet.

    • Exploring MLCP Solvers And Featherstone.

  • Tonge Richard For his incredible Slides:

    • Iterative Rigid Body Solvers 2012.

    • Iterative Rigid Body Solvers 2013.

  • Brian Vincent Mirtich For introducing a different approach to Game Physics.

    • Impulse-based Dynamic Simulation of Rigid Body Systems.
  • Kenny Erleben : for his slides and thesis doctoral:

    • Book of Physics-Based Animation 2005.

    • Numerical Methods for Linear Complementarity Problems in Physics-based Animation.

  • David Baraff For his slides and Knowledges:

    • Analytical Methods for Dynamic Simulation of Non-penetrating Rigid Bodies.

    • Fast Contact Force Computation for Nonpenetrating Rigid Bodies.

    • Linear-Time Dynamics using Lagrange Multipliers.

    • Physically Based Modeling. Pixar Animation Studios.

  • Jim Van Verth For his Slides:

    • Numerical Integration.

    • Understanding Rotations.

  • Matthias Müller for his Slides About:

    • Position Based Dynamics.
  • Michael B. Cline for his Slides:

    • Post-Stabilization for Rigid Body Simulation with Contact and Constraints.
  • Randy Gaul for his Slide:

    • Separating Axis Test (SAT) and Support Points in 2D.
  • Books about Game Physics and Collision Detection :

    • Game Physics Pearls Gino van den Bergen and Dirk Gregorius.

    • Real-Time Collision Detection Christer Ericson.

cirobb's People

Contributors

jonpena avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  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.