Skip to content

qualeus/OLD_Simulatio

Repository files navigation

Build Version Language Roadmap License Gitter


Logo

SIMULATIO

A flexible physic engine | Debugging tools.

Browse the docs »

Screenshots · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. License
  5. Authors

About The Project

Simulatio Screen Shot

This project started from a personal challenge: recreate physical principles in a simulation running in real time. I also wanted this project to easily convey some understanding of how it works, as well as analysis and debugging tools.

The objective was to learn more about such topics as:

  • Gravity (Classical mecanics one, he goal was not to model objects at the molecular level)
  • Collisions (With Newton's 3rd law)
  • Friction (Approximation with dissipation in heat)
  • Electromagnetic fields (IN WORK, see https://github.com/mlhoutel/Fields)
  • Fluids (IN WORK)

This project also allows me to familiarize myself with several areas of programming, such as:

  • Graph Theory and advanced Data structures like Quadtrees
  • C++ programs/libraries compilation (Mingw batch/ CMake)
  • Memory allocation and Classes Inheritances
  • Optimisation and Algoritmics
  • Threads and Graphical acceleration with CUDA (?)

(back to top)


As this program is oriented towards testing and comparison, a modular structure has been set up.

Modularity:

  • Precision (at build time):
    • float
    • double
  • Dimension (at build time):
    • 2D
    • 3D
  • Broad phase structure (at run time):
    • Spacial grid
    • Quad-tree
    • kD-tree
  • Integration method (at run time):
    • Euler
    • Verlet
    • RK4

To summarize this is an introduction to the basic concepts and functions of 2D physical simulation (applicable to 3D thereafter).

The ultimate goal would be to present an easy-to-use and optimized physical engine, a bit like a simplified "Algodoo".

Currently in dev, you can see a very messy roadmap here


(back to top)

Gallery

Browse screenshots

(back to top)

Built With

Documented With

(back to top)

Getting Started

Official documentation

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Authors

  • LHOUTELLIER Maël - Initial work - mlhoutel

(back to top)

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages