A C++17 Embeddable Physics simulation
Documentation
Downloads
·
Report Bug
·
Request Feature
Cieo is intended as a physics simulation, that can easily be embedded into other applications. Thus allowing realistic physics simulations in all manor of projects. Cieo is not intended to be a real time physics simulation, but instead as an off-line extremely accurate simulation.
A large amount of focus is placed on the API interface, so that the library is as easy as possible to use in other programs. And if possible, a Python API is planed, so that the simulation can be used in python scripts.
Although Cieo is not intended as a method for rendering images, there is an optional component for rendering out the simulation. This is primarily used for debugging purposes. The imaging system, should be replaced by a more capable photo realistic renderer, when possible, but for simple simulations, where the visual quality is not of importance, then the bundled renderer should be sufficient.
Cieo is also written with a large focus on the readability of the code, and the documentation that is generated in addition to the code. One should be able to read through the documentation of the library, and leave with a functional knowledge of physics simulation that is being used.
Cieo depends on a number of frameworks which are included in the library. Specifically
These instructions will get you a copy of the library up and running on your local machine for development and testing purposes.
The only prerequisites are CMake, and a C++ compiler capable of C++17 (recommended to use Clang). Please follow your system instructions for installing these.
To get the library and the executable, goto the
releases and download the file
from the latest release for your system. Currently Specula is compiled for
Linux, Windows, and MacOs. Simply extract the zip and execute the
install
script. This will copy the binaries and libraries to the
appropriate directories on your system.
First get the source either from the releases page, or the preferred method is to clone the repository.
git clone https://github.com/LuxAter/Cieo.git
Now create a build directory, and configure the code using CMake.
mkdir cmake-build-release && cd cmake-build-release
cmake .. -DCMAKE_BUILD_TYPE=Release
Finally compile and install the code using GNUMake (or an alternative build tool).
make install
The repository contains with a number of examples. Using these examples, one can explore the capabilities of the simulation. Each example uses the built-in renderer, to produce a sequence of images. Simply navigate to the examples directory, and execute the available programs.
There is also an interactive interface that is shipped with the library. In the interactive interface, initial conditions can be set, and then the simulation can run based off of those initial conditions. The running simulation can be previewed through a display window, so that users can stop and reset the simulation at any point. Do note that the interactive interface will not be a real time simulation, as the steps to calculate the simulation can take a while.
Contributions are what make the open source community such an amazing place to be, learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the project
- Create your feature branch (
git checkout -b feature/<my-feature>
) - Commit your changes (
git commit -m '<my-commit-message>'
) - Push to the branch (
git push origin feature/<my-feature>
) - Open a pull request
For those with commit privileges to the repository we recommend the use of Gitflow AVH. Use this to create a new work branch, and merge back to the development branch. This tool keeps things organized, and implements a number of customized hooks, that update versions, and prevent unwanted commits.
Distributed under the MIT license. See
LICENSE
for more information.