N body simulation
- C++ 92.8%
- GLSL 4.6%
- CMake 2.6%
This commit finally adds a working newtonian backend. It is only visually tested for now but it looks okay, the velocities are initialized using the centripetal force equation in the generator. Because technically there is working gravity in Zorya I'm feeling okay with bumping the CMake version to 1.0.0, but it's still quite janky and in need of refactoring and cleanup as well as missing some core features. So maybe more of an alpha than a proper v1.0.0 release. We'll see which will be the first tag and proper git release. Notable missing features are particle collisions and culling as well as the groundwork for GPGPU support. AVX should be fairly straightforward to implement with the current architecture. The rendering is also currently quite boring, maybe some colors are in order. Oh and OpenMP still doesn't work. Great software. |
||
|---|---|---|
| lib | ||
| src | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| README.md | ||
| zorya.supp | ||
Zorya
Zorya is a (soon to be) high performance modular N body newtonian gravity engine built in C++23. It (will) feature runtime switchable compute backends. The rendering is handled using OpenGL 4.5 with an ImGui overlay
Build and run
Dependencies
- CMake 3.31+
- C++23
- glfw
- glew
First clone the project with the ImGui submodule (hello heater)
git clone --recurse-submodules https://dawn.wine/jojers/Zorya.git
Set up cmake and compile
cd Zorya
cmake -B build && cmake --build build -j $(nproc)
Now run with ./build/zorya