C++ library for multi-physics simulation

Related tags

Game chrono
Overview

Project CHRONO

pipeline status BSD License

Project Chrono represents a community effort aimed at producing a physics-based modelling and simulation infrastructure based on a platform-independent, open-source design. The name of this software infrastructure is Chrono. Some of its features are listed below. The applications areas in which Chrono is most often used are vehicle dynamics, robotics, and machine design. In vehicle dynamics, Chrono has mature support for tire/terrain interaction modeling and simulation.

Features

Physics modeling

  • Rigid body support
  • Flexible body support - both for ANCF and co-rotational nonlinear finite element analysis
  • Support for fluid-solid interaction problems, via Chrono::FSI module
  • Coulomb friction model capturing stick-slip phenomena.
  • Support for rolling friction and spinning friction.
  • Support for handling frictional contact via two approaches: a complementarity approach and a penalty approach.
  • Springs and dampers with non-linear response. Can be user defined.
  • Large collection of joints and constraints: spherical, revolute, prismatic, universal, glyph, screw, bevel and spur gears, pulleys, etc.
  • Unilateral constraints.
  • Constraints to impose trajectories, or to force motion on splines, curves, surfaces, etc.
  • Constraints can have limits (ex. elbow).
  • Constraints can be rheonomic or holonomic
  • Custom constraint for linear motors.
  • Custom constraint for pneumatic cylinders.
  • Custom constraint for motors, with reducers, learning mode, etc.
  • On the fly constraint activation/deactivation.
  • Simplified 1D dynamic models. Examples: powertrain, clutches, brakes, etc. For more sophisticated models see companion Chrono::Vehicle module.
  • All physical items can have an arbitrary number of 'assets' used for defining visualization shapes, custom properties, etc.

Solver

  • HHT solver for index 3 differential algebraic equations.
  • Symplectic first order half-implicit Euler solver for large frictional contact problems.
  • Speed-impulse level solver for handling large frictional contact problems.
  • Handling of redundant/ill posed constraints.
  • Stabilization or projection methods to avoid constraint drifting.
  • Static analysis solver.
  • Inverse kinematics and interactive manipulation.

Collision detection features

  • Supports compounds of spheres, cubes, convex geometries, triangle meshes, etc.
  • Additional collision support provided by the Bullet collision detection engine, which is wrapped inside Chrono::Engine.
  • Broad phase collision detection: sweep-and-prune SAT.
  • Narrow phase collision detection: AABB and/or OBB binary volume trees, to handle geometries with thousands of details.
  • Detail phase with custom primitive-to-primitive fallbacks.
  • Safety 'envelope' around objects.
  • Report penetration depth, distance, etc.
  • Bodies can be activated/deactivated, and can selectively enter collision detection.

Implementation details

  • ANSI-compliant C++ syntax.
  • Optimized custom classes for vectors, quaternions, matrices.
  • Optimized custom classes for coordinate systems and coordinate transformations, featuring a custom compact algebra via operator overloading.
  • All operations on points/speeds/accelerations are based on quaternion algebra and have been profiled for fastest execution.
  • Custom sparse matrix class.
  • Custom redirectable stream classes, featuring platform independent file archiving and modern syntax.
  • Special archive engine, with easy and reliable persistent/transient serialization. Includes versioning and deep pointers storage.
  • Expandable run-time class factory.
  • Custom pseudo-'run-time-type-information', to allow persistence even in case of name-mangling with different C++ compilers.
  • High resolution timer, platform independent.
  • Class to create PostScript(tm) output.

Other

  • Interface with MATLAB
  • Cosimulation with Simulink
  • Import STEP cad files to define complex geometries
  • Online/offline visualization with Irrlicht and POV-Ray, respectively.
  • Classes for genetic & classical optimization.
  • Classes for interfacing external geometric data (NURBS, splines).
  • Scripting via Python.
  • Makefile system based on CMake (cross-platform, on Windows 32/64 bit, Linux, OSX).
Issues
  • conda-forge package

    conda-forge package

    I am trying to create a package on conda-forge: https://github.com/conda-forge/staged-recipes/pull/9965 But the CI fails with conflicts. Has anyone tried to to that?

    opened by davidbrochart 87
  • pychrono segmentation fault on MacOS X 10.14.6

    pychrono segmentation fault on MacOS X 10.14.6

    Hi!

    I tried to install pychrono on MacOS X 10.14.6 within a clean conda environment and when I try to import pychrono, I got a 'Segmentation fault: 11"

    here's my environment :

    # packages in environment at /Users/thibault/anaconda3/envs/assembly:
    #
    # Name                    Version                   Build  Channel
    appnope                   0.1.0            py36hf537a9a_0  
    backcall                  0.1.0                    py36_0  
    bzip2                     1.0.8                h1de35cc_0  
    ca-certificates           2019.8.28                     0  
    certifi                   2019.9.11                py36_0  
    decorator                 4.4.0                    py36_1  
    icu                       58.2                 h4b95b61_1  
    intel-openmp              2019.4                      233  
    ipython                   7.8.0            py36h39e3cac_0  
    ipython_genutils          0.2.0            py36h241746c_0  
    jedi                      0.15.1                   py36_0  
    libboost                  1.67.0               hebc422b_4  
    libcxx                    4.0.1                hcfea43d_1  
    libcxxabi                 4.0.1                hcfea43d_1  
    libedit                   3.1.20181209         hb402a30_0  
    libffi                    3.2.1                h475c297_4  
    libiconv                  1.15                 hdd342a3_7  
    mkl                       2019.4                      233  
    ncurses                   6.1                  h0a44026_1  
    openssl                   1.1.1d               h1de35cc_2  
    parso                     0.5.1                      py_0  
    pexpect                   4.7.0                    py36_0  
    pickleshare               0.7.5                    py36_0  
    pip                       19.2.3                   py36_0  
    prompt_toolkit            2.0.10                     py_0  
    ptyprocess                0.6.0                    py36_0  
    pychrono                  4.0.0                  py36_402    projectchrono
    pygments                  2.4.2                      py_0  
    python                    3.6.9                h359304d_0  
    readline                  7.0                  h1de35cc_5  
    setuptools                41.4.0                   py36_0  
    six                       1.12.0                   py36_0  
    sqlite                    3.30.0               ha441bb4_0  
    tk                        8.6.8                ha441bb4_0  
    traitlets                 4.3.3                    py36_0  
    wcwidth                   0.1.7            py36h8c6ec74_0  
    wheel                     0.33.6                   py36_0  
    xz                        5.2.4                h1de35cc_4  
    zlib                      1.2.11               h1de35cc_3  
    
    

    Is there a quick way to fix this :) ? Thank you very much ! Thibault.

    opened by tubiana 19
  • Can't get pyChrono to run

    Can't get pyChrono to run

    I am on Windows 10, Anaconda 3 v 2018.12 (latest)

    I tried to install via conda install -c projectchrono pychrono via Anaconda Console (ran as admin) and got

    Collecting package metadata: done
    Solving environment: failed
    
    PackagesNotFoundError: The following packages are not available from current cha
    nnels:
    
      - pychrono
    

    I then tried conda install -c projectchrono/label/develop pychrono and it installed without error but running python line import pychrono as chrono (e.g. any of the demo files) gives the following exception

    C:\ProgramData\Anaconda3\python.exe C:/wd/cd/jutil/chrono_demos/demo_masonry.py
    Traceback (most recent call last):
      File "C:\ProgramData\Anaconda3\lib\site-packages\pychrono\core.py", line 14, in swig_import_helper
        return importlib.import_module(mname)
      File "C:\ProgramData\Anaconda3\lib\importlib\__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
      File "<frozen importlib._bootstrap>", line 583, in module_from_spec
      File "<frozen importlib._bootstrap_external>", line 1043, in create_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    ImportError: DLL load failed: The specified module could not be found.
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:/wd/cd/jutil/chrono_demos/demo_masonry.py", line 18, in <module>
        import pychrono.core as chrono
      File "C:\ProgramData\Anaconda3\lib\site-packages\pychrono\__init__.py", line 7, in <module>
        from .core import *
      File "C:\ProgramData\Anaconda3\lib\site-packages\pychrono\core.py", line 17, in <module>
        _core = swig_import_helper()
      File "C:\ProgramData\Anaconda3\lib\site-packages\pychrono\core.py", line 16, in swig_import_helper
        return importlib.import_module('_core')
      File "C:\ProgramData\Anaconda3\lib\importlib\__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    ModuleNotFoundError: No module named '_core
    
    opened by jlittle576 19
  • Pychrono tutorials do not succeed

    Pychrono tutorials do not succeed

    The first two Pychrono tutorials fail upon execution.

    demo_python_2.py fails with:

    time= 0.45000000000000023  bodyB y= 0.9982750315016988
    Traceback (most recent call last):
    
      File "<ipython-input-1-31da8eea56df>", line 1, in <module>
        runfile('/home/felix/dev/pychrono-tutorials/demo_python_2.py', wdir='/home/felix/dev/pychrono-tutorials')
    
      File "/home/felix/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 704, in runfile
        execfile(filename, namespace)
    
      File "/home/felix/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 108, in execfile
        exec(compile(f.read(), filename, 'exec'), namespace)
    
      File "/home/felix/dev/pychrono-tutorials/demo_python_2.py", line 90, in <module>
        my_system.GetContactContainer().ReportAllContacts(my_rep)
    
      File "/home/felix/anaconda3/lib/python3.7/site-packages/pychrono/core.py", line 16530, in ReportAllContacts
        return _core.ChContactContainer_ReportAllContacts(self, *args)
    
    RuntimeError: SWIG director method error. Error detected when calling 'ReportContactCallback.OnReportContact'
    

    The "Report Contact Callback" and "Simulation loop" sections should be commented out until the "Add contact callback" is fixed.

    demo_python_1.py fails on the line ma.SetMatr(mlist) with this error:

    [...]
    quat. product= [ 30, 0, 0, 0 ]
    Traceback (most recent call last):
    
      File "<ipython-input-3-80a9b323cce9>", line 1, in <module>
        runfile('/home/felix/dev/pychrono-tutorials/demo_python_1.py', wdir='/home/felix/dev/pychrono-tutorials')
    
      File "/home/felix/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 704, in runfile
        execfile(filename, namespace)
    
      File "/home/felix/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 108, in execfile
        exec(compile(f.read(), filename, 'exec'), namespace)
    
      File "/home/felix/dev/pychrono-tutorials/demo_python_1.py", line 53, in <module>
        ma.SetMatr(mlist)   # Create a Matrix from a list. Size is adjusted automatically.
    
    AttributeError: 'ChMatrixDynamicD' object has no attribute 'SetMatr'
    

    If someone can give a hint about how to fix that issue, I can submit a PR along with some other minor fixes.

    opened by felixvd 16
  • FATAL BUG: Infinite recursion in the assignment operator of ChNodeFEAxyz

    FATAL BUG: Infinite recursion in the assignment operator of ChNodeFEAxyz

    The following snippet recreates the problem.

    ChNodeFEAxyz node1(ChVector<>(42.0, 42.0, 42.0));
    ChNodeFEAxyz node2(ChVector<>(0.0, 0.0, 0.0)); 
    node2 = node1; // Fails.
    

    The last line causes infinite recursion. I found the problem in the source code. I also verified the recursion by building the source with debug information and stepping through it. It seems like a simple fix on the surface but I don't know enough about all the possible side effects to be able to fix the issue myself.

    We are still using version 4.0, because 5.0 proved unstable (corrupted memory causing access violation errors). Can this fix be cherry-picked into 4.0?

    opened by ranjeethmahankali 15
  • Tutorial error: core/demo_CH_buildsystem.py

    Tutorial error: core/demo_CH_buildsystem.py

    I see the following error when trying to run this example, any help is appreciated! Thanks

    File "C:\Users\pervez\Anaconda3\Lib\site-packages\pychrono\demos\core\demo_CH_buildsystem.py", line 77, in my_system.GetContactContainer().ReportAllContacts(my_rep)

    File "C:\Users\pervez\Anaconda3\lib\site-packages\pychrono\core.py", line 25440, in ReportAllContacts return _core.ChContactContainer_ReportAllContacts(self, callback)

    RuntimeError: SWIG director method error. Error detected when calling 'ReportContactCallback.OnReportContact'

    opened by h-pervez 10
  • demo issues with texture

    demo issues with texture

    Hi, The project has been successfully compiled, however the demo example 'demo_IRR_collision_trimesh.exe' ended up with following errors:

    Copyright (c) 2017 projectchrono.org Chrono version: 6.0.0

    Irrlicht Engine version 1.8.4 (Build 9200) Using renderer: Direct3D 9.0 Intel(R) UHD Graphics igdumdim64.dll 27.20.100.8853 Currently available Video Memory (kB): 4187136 Could not load shader function D3DXAssembleShader from dll, shaders disabled: d3dx9_43.dll Could not create vertex shader. Could not create vertex shader. Resizing window (1280 720) Resetting D3D9 device. Could not load shader function D3DXCompileShader from dll, shaders disabled: d3dx9_43.dll Loaded texture: C:/Arbeid/Softs/Chrono/chrono-build/bin/data/fonts/arial80.bmp PNG warning: iCCP: known incorrect sRGB profile Loaded texture: C:/Arbeid/Softs/Chrono/chrono-build/bin/data/logo_chronoengine_alpha.png Loaded texture: C:/Arbeid/Softs/Chrono/chrono-build/bin/data/skybox/sky_lf.jpg Loaded texture: C:/Arbeid/Softs/Chrono/chrono-build/bin/data/skybox/sky_dn.jpg Loaded texture: C:/Arbeid/Softs/Chrono/chrono-build/bin/data/skybox/sky_up.jpg Loaded texture: C:/Arbeid/Softs/Chrono/chrono-build/bin/data/textures/concrete.jpg Could not open file of texture: XEFFECTS_SM_512 XEffects: Please ignore previous warning, it is harmless. Could not open file of texture: XEFFECTS_SM_512_2 XEffects: Please ignore previous warning, it is harmless.

    Does anybody know why?

    opened by huisky2000 9
  • Issues related to Performance on Mac Catalina

    Issues related to Performance on Mac Catalina

    Hi.

    I am experiencing very different performance from windows to mac when executing the same model: https://github.com/INTO-CPS-Association/chronofmu/blob/ffo/Chrono_model/source/robotti_source.cpp

    In windows, I can execute this with the arguments: 300 60 0 1 and 1 second simulation time takes 2.46653 seconds real-time. On mac catalina 10.15.4, 1 second simulation time takes 42.9905 seconds.

    I have checked the outputs of the model, and they are equal.

    Mac gcc-version:

    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
    Apple clang version 11.0.3 (clang-1103.0.32.62)
    Target: x86_64-apple-darwin19.4.0
    Thread model: posix
    InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
    

    Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz Ram: 16 GB

    Windows visual studio 2019 and thereby MSCV v142 INtel Core i7-5600U CPU @ 2.6 GHz RAM 12,0 GB

    Is this something you are aware of or can help me pinpoint?

    opened by CThuleHansen 9
  • Pychrono import error

    Pychrono import error

    I've installed Chrono with this guide. I then proceed to install pychrono module using this (Note, the process intertwines with the installing Chrono, they are not separate). I've also installed Anaconda and use that to install pychrono library. After activating the conda environment, I tried importing the pychrono library but no luck.

    C:\Users\STUDENT\Desktop\New folder (2)>conda activate base
    (base) C:\Users\STUDENT\Desktop\New folder (2)>py
    Python 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pychrono
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\STUDENT\Anaconda3\lib\site-packages\pychrono\__init__.py", line 7, in <module>
        from .core import *
      File "C:\Users\STUDENT\Anaconda3\lib\site-packages\pychrono\core.py", line 13, in <module>
        from . import _core
    ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
    >>>                                                                                           
    

    I googled the error but all that came up is TensorFlow library, not pychrono.

    opened by 5Volts 8
  • FSI module

    FSI module

    I cannot build the FSI module, the following error lists pops out:

    image

    note: other modules including IRRLICHT work perfectly.

    Do you have any idea what could be the problem?

    opened by joeelrahi 7
  • Fix demo_WheeledGeneric when Irrlicht is not available

    Fix demo_WheeledGeneric when Irrlicht is not available

    There was a reference to Irrlicht that was not #ifdef'd. I also #ifdefd some of the visualization configuration to better show what is not needed when visualization is unused.

    opened by alhirzel 7
  • Pychrono on Linux

    Pychrono on Linux

    Hello I am unable to run project chrono on linux, I have tried all of the following ;

    1. Using the basic installation step as described : https://api.projectchrono.org/tutorial_install_chrono.html Issue : There is nothing in the linux folder which is the path to be given to irrlicht library
    2. Tried separately installing using sudo apt install libirrlicht1.8 libirrlicht-dev libirrlicht-doc
    3. installed anaconda on linux and then pychrono using https://api.projectchrono.org/development/pychrono_installation.html basic installation steps

    I am still facing irrlicht not found and no module named irrlicht error !

    I have done pychrono installation on windows anaconda and it works fine, When I compared the anaconda site packages folder consisting the main pychrono library I found many differences in this folder. Firstly there are some files missing altogether such as mainly irrlicht.py in pychrono

    opened by Autonomousanz 1
  • Unable to build Synchrono module

    Unable to build Synchrono module

    As instructed I have installed OpenMPI that is required to build Synchrono module When tried to build, it gives me error that MPI is not found (Refer image3) Can someone help me out with a solution Please refer attached images for the issue chrono1 chrono2 chrono3

    opened by mayureshb7 7
  • Using Docker image to run demo python files or newly created python files

    Using Docker image to run demo python files or newly created python files

    Hello Team,

    I am new to Docker and Project Chrono. I was able to install PyChrono through anaconda and run python demo files, but while building a docker received an error that irrlicht module was not found. So I tried using the docker image provided by running the "docker pull uwsbel/projectchrono:latest" command and running the container but not entirely sure how to run python files with it so that it will visualize the project.

    opened by DnyaneshMarne 0
  • Build breaks with flatbuffers-2.0.6: error: no matching member function for call to 'VerifyField'

    Build breaks with flatbuffers-2.0.6: error: no matching member function for call to 'VerifyField'

    In file included from /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/agent/SynAgent.h:27:
    In file included from /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/flatbuffer/message/SynMessage.h:24:
    In file included from /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/flatbuffer/message/SynMessageUtils.h:24:
    /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/flatbuffer/message/SynFlatBuffers_generated.h:461:12: error: no matching member function for call to 'VerifyField'
    --- src/chrono_synchrono/CMakeFiles/ChronoEngine_synchrono.dir/controller/SynControllerFunctions.cpp.o ---
    In file included from /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/flatbuffer/message/SynSPATMessage.h:24:
    In file included from /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/flatbuffer/message/SynMessage.h:24:
    In file included from /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/flatbuffer/message/SynMessageUtils.h:24:
    /wrkdirs/usr/ports/science/chrono/work/chrono-7.0.3/src/chrono_synchrono/flatbuffer/message/SynFlatBuffers_generated.h:461:12: error: no matching member function for call to 'VerifyField'
               VerifyField<double>(verifier, VT_TIME) &&
               ^~~~~~~~~~~~~~~~~~~
    

    You need to keep the flatbuffers format definition in the repository and regenerate headers during build.

    See this comment as reference.

    opened by yurivict 0
  • Build fails on arm64: /usr/local/bin/ld: cannot find -lFALSE

    Build fails on arm64: /usr/local/bin/ld: cannot find -lFALSE

    At least versions 7.0.3, 7.0.2, 7.0.1 fail:

    [ 44%] Linking CXX shared library ../../lib/libChronoEngine_mumps.so
    cd /wrkdirs/usr/ports/science/chrono/work/.build/src/chrono_mumps && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/ChronoEngine_mumps.dir/link.txt --verbose=1
    /usr/bin/c++ -fPIC -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -pthread -fopenmp=libomp -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -pthread -fopenmp=libomp  -march=armv8-a -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -pthread -fopenmp=libomp  -march=armv8-a -DNDEBUG  -Wl,-rpath=/usr/local/lib/gcc10  -L/usr/local/lib/gcc10 -B/usr/local/bin -fstack-protector-strong -shared -Wl,-soname,libChronoEngine_mumps.so -o ../../lib/libChronoEngine_mumps.so CMakeFiles/ChronoEngine_mumps.dir/ChSolverMumps.cpp.o CMakeFiles/ChronoEngine_mumps.dir/ChMumpsEngine.cpp.o   -L/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64  -L/opt/intel/compilers_and_libraries/linux/compiler/lib/int
     el64  -L/wrkdirs/usr/ports/science/chrono/work/intel/compilers_and_libraries/linux/mkl/lib/intel64  -L/wrkdirs/usr/ports/science/chrono/work/intel/compilers_and_libraries/linux/compiler/lib/intel64  -Wl,-rpath,/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64:/opt/intel/compilers_and_libraries/linux/compiler/lib/intel64:/wrkdirs/usr/ports/science/chrono/work/intel/compilers_and_libraries/linux/mkl/lib/intel64:/wrkdirs/usr/ports/science/chrono/work/intel/compilers_and_libraries/linux/compiler/lib/intel64:/wrkdirs/usr/ports/science/chrono/work/.build/lib:/usr/local/lib: ../../lib/libChronoEngine.so /usr/local/lib/libmumps_common.so /usr/local/lib/libdmumps.so -lFALSE /usr/lib/libomp.so -lpthread -lpthread 
    /usr/local/bin/ld: cannot find -lFALSE
    c++: error: linker command failed with exit code 1 (use -v to see invocation)
    *** [lib/libChronoEngine_mumps.so] Error code 1
    

    clang-13 OS: FreeBSD 13

    opened by yurivict 4
Releases(7.0.3)
Bounce is a 3D physics engine for games.

Bounce Welcome! Bounce is a 3D physics engine for games. Features Common Efficient data structures with no use of STL Fast memory allocators Built-in

Irlan Robson 64 Jun 25, 2022
Godot bindings for the Rapier3D physics engine

Godot bindings for the Rapier3D physics library How to use There are two parts: A Godot module which must be compiled with the engine.

David Hoppenbrouwers 23 Jun 20, 2022
SKR_Physics is a lightweight and easy to use 2D physics engine which is written in C++.

SKR_Physics SKR_Physics is a lightweight and easy to use 2D physics engine which is written in C++. Features Rectangle based collision system Very sim

Şükrü 0 Mar 8, 2022
Sequential impulses physics engine made for learning purposes

A 3D physics engine that uses Separating Axis Test for collision detection, the clipping method for generating contact manifold, contact point reducti

Ahmad Saleh 1 Nov 24, 2021
This repository is about a school project about games with physics, written in C++.

Eight Ball Pool ?? A game about playing physics-based eight ball pool. ?? Table of Contents About Getting Started Usage Built Using About the creators

Valeri Ivanov 17 May 22, 2022
A game with basic physics and platforming.

Physgun A simple game with basic physics and platforming. Planned features Work in progress: Physics engine. Swept AABB collision algorithm. Elastic a

Bad Games Studio 24 Dec 17, 2021
Box2D is a 2D physics engine for games

Build Status Box2D Box2D is a 2D physics engine for games. Contributing Please do not submit pull requests with new features or core library changes.

Erin Catto 5.7k Jun 20, 2022
Source code for Game Physics Cookbook

Game Physics Cookbook Website Facebook Twitter This book is a comprehensive guide to the linear algebra and collision detection games commonly use, bu

Gabor Szauer 612 Jun 27, 2022
Insomniac games cache simulation tool plugin for UE4

Insomniac Games CacheSim plugin for UE4 This plugin for Unreal Engine 4 lets you use the Insomniac Games Cache Simulation tool to detect cache misses

Toni Rebollo Berná 26 Jan 19, 2022
A game - or rather, a simulation - of a non-Euclidean world.

neuc A game - or rather, a simulation - of a non-Euclidean world. Currently, I am just developing a 2D top down game (and having a blast in general).

Sriprad Potukuchi 3 Nov 28, 2021
Real-time Water - Fast Water Simulation for Games Using Height Fields

In this project a water-simulation was implemented based on the approach suggested in the presentation "Fast Water Simulation for Game

Henrik Patjens 137 Jun 4, 2022
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Godot Engine 49.8k Jun 22, 2022
🚀 Making multi-player gamedev simpler since 2017

Making multi-player gamedev simpler since 2017. Single-header cross-platform world replication in pure C99. Built with love using zpl • Brought to you

ZPL | Your C11 Powerkit 970 Jun 21, 2022
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.4k Jun 20, 2022
Multi Theft Auto (MTA) is a software project that adds network play functionality to Rockstar North's Grand Theft Auto game series,

Multi Theft Auto: San Andreas Multi Theft Auto (MTA) is a software project that adds network play functionality to Rockstar North's Grand Theft Auto g

null 2 Oct 22, 2021
MotorMC is a blazing fast, multi threaded, asynchronous Minecraft server software

MotorMC is a blazing fast, multi threaded, asynchronous Minecraft server software that aims to handle many players (1000+) on a single world while still providing an experience as close to vanilla Minecraft as possible.

Garet Halliday 59 Jun 6, 2022
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

null 2.7k Jun 19, 2022
A simple and easy-to-use library to enjoy videogames programming

raylib is a simple and easy-to-use library to enjoy videogames programming. raylib is highly inspired by Borland BGI graphics lib and by XNA framework

Ray 9.9k Jun 20, 2022
🎨 Modern 2D/3D - Importer • Exporter • Util - Library, also called (AssetIO)

Brand-new modern 3D asset importer, exporter library. This library will include common 3D utils funcs. It is written with C99 but C++ wrappers or othe

Recep Aslantas 150 Jun 8, 2022