Git Product home page Git Product logo

cieo's Introduction

CIEO


A C++17 Embeddable Physics simulation
Documentation

Downloads · Report Bug · Request Feature

About the Project

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.

Built With

Cieo depends on a number of frameworks which are included in the library. Specifically

Getting Started

These instructions will get you a copy of the library up and running on your local machine for development and testing purposes.

Prerequisites

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.

Installation

Prebuilt (recommended)

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.

Build from source

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

Usage

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.

Contributing

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.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/<my-feature>)
  3. Commit your changes (git commit -m '<my-commit-message>')
  4. Push to the branch (git push origin feature/<my-feature>)
  5. Open a pull request

Authors

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.

License

Distributed under the MIT license. See LICENSE for more information.

cieo's People

Contributors

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