Black hole simulation project:
Black hole simulation project
Here is the black hole raw code, everything will be inside a src bin incase you want to copy the files
I'm writing this as I'm beginning this project (hopefully I complete it ;D) here is what I plan to do:
Ray-tracing : add ray tracing to the gravity simulation to simulate gravitational lensing
Accretion disk : simulate accreciate disk using the ray tracing + the halos
Spacetime curvature : demonstrate visually the "trapdoor in spacetime" that is black holes using spacetime grid
[optional] try to make it run realtime ;D
I hope it works :/
Edit: After completion of project -
git clone https://github.com/kavan010/black_hole.gitcd ./black_holevcpkg installvcpkg integrate installCMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake"mkdir buildcmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmakecmake --build buildIf you don't want to use vcpkg, or you just need a quick way to install the native development packages on Debian/Ubuntu, install these packages and then run the normal CMake steps above:
sudo apt update
sudo apt install build-essential cmake \
libglew-dev libglfw3-dev libglm-dev libgl1-mesa-dev
This provides the GLEW, GLFW, GLM and OpenGL development files so find_package(...) calls in CMakeLists.txt can locate the libraries. After installing, run the cmake -B build -S . and cmake --build build commands as shown in the Build Instructions.
for 2D: simple, just run 2D_lensing.cpp with the nessesary dependencies installed.
for 3D: black_hole.cpp and geodesic.comp work together to run the simuation faster using GPU, essentially it sends over a UBO and geodesic.comp runs heavy calculations using that data.
should work with nessesary dependencies installed, however I have only run it on windows with my GPU so am not sure!
LMK if you would like an in-depth explanation of how the code works aswell :)
No open issues yet, or sync has not completed.