Giter Club home page Giter Club logo

galaxy_simulation's Introduction


👦 About me

Hi! I’m a french software engineer at BlaBlaCar, the most widely used car-sharing application in the world. But I also develop things on my free time, my favorite fields are software development, computer graphics, web development and machine learning.

More informations on my website: angeluriot.com


📭 Contact

       


📂 Projects

This project is an autoregressive language model like ChatGPT, after training on 200GB of french text during 570 hours, it is able to answer questions, follow instructions, generate stories, and more...


This project is a deep convolutional generative adversarial network that can create high quality images from a random seed like portraits, animals, drawings and more...


It's a massively multiplayer browse game, it takes up the concept of .io games: everyone plays on a large map and the goal is to to be the first of the global ranking...


This program takes its concept from the famous game Minecraft. It procedurally generates an infinite world, the player can break blocks and there are different biomes and mobs...


This program is an n-body type simulation using GPU acceleration. It is able to simulate galaxies, galaxy collisions and universes. You can choose a lot of parameters like the speed of the stars, the shape of the galaxy, and more...


This program can generate images of fractals like the Mandelbrot or the Julia set. The program allows us to zoom and navigate in these interesting mathematical structures...


This program approximates the solutions of the Navier-Stokes equations to simulate the behavior of a fluid in 2D. It can be shaken with the mouse in real time...


It is an interactive web application that can create and solve mazes. You can choose among several different algorithms, move the start and the finish or draw your own walls...


This project is a bot that generate random French proverb images and post them every day on its own Twitter account (with more than 10 thousand followers)...


This project is a ray tracer made in C++ on the CPU that can render complex 3D scenes with custom models and textures, reflexions and refractions, shadows, and more...


An application showing data from the Ocean Biodiversity Information System (OBIS) on a 3D globe. You can choose the species, specify a date range, and also show an animation of the evolution over time...


This is a handmade neural network library for Python. It supports multiple layers, activation functions, optimizers... You can easily create a model and train it with backpropagation...


This program is a sandbox 2D application simulating the interactions between a large number of materials. It uses a grid where each square represents an element of a material. There is wood, water, lava, ice, acid, and many other...


This project is a website portfolio made to present my computer science projects. It is a one-page responsive website programmed with HTML, CSS, and JavaScript...


It's a neural network using a genetic algorithm to learn how to control a car on a racetrack without crashing on the walls. It uses lasers to know its distance to the walls and turns according to that...


It's a simplified Shell running basic Unix commands. It can launch default Unix binaries or any other program. It can handle process input and output redirections, pipes, background / foreground...


This program is a neural network using an evolutionary algorithm to learn how to play the famous game Flappy bird. After about ten generations, it manages to go through the pipes...


It's a simplified clone of Magic the Gathering Arena but with the cards of Clash Royale, it implements the basic mechanics of the game with a display in the console (no external libraries were allowed)...


This program use the Minimax algorithm to choose the best move in chess with a given number of moves in advance. The higher this number, the better its moves will be but the slower it will play...


A simulation predicting the behavior of neutrons in the core of a nuclear reactor using the Monte Carlo method. The goal was to find the amount of radiations reaching the reactor's walls...

galaxy_simulation's People

Contributors

angeluriot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

galaxy_simulation's Issues

Où changer les couleurs des étoiles ?

Bonjour,

Après 2j de recherche je n'ai plus aucune idée.. J'ai cherché dans tout le code sans savoir comment changer les couleurs des étoiles. J'ai trouvé le fichier post.frag mais ca ne change rien.

Merci d'avance :).

Build issues under Linux

I tried to compile the program but I have problems with this line:

queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);

System info:
Manjaro 21.1.6, 5.14.10-1-MANJARO
OpenCL 2.1 headers (Nvidia GPU)

GCC info:

Utilisation des specs internes.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/lto-wrapper
Cible : x86_64-pc-linux-gnu
Configuré avec: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --with-isl --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-install-libiberty --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions --disable-werror gdc_include_dir=/usr/include/dlang/gdc
Modèle de thread: posix
Algorithmes de compression LTO supportés: zlib zstd
gcc version 11.1.0 (GCC)  

Clang info:

clang version 12.0.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/11.1.0
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
Found CUDA installation: /opt/cuda, version 11.0

Modified CMakeLists.txt (Add support OpenCL 2.1 headers for Nvidia GPU): https://github.com/angeluriot/Galaxy_simulation/blob/master/CMakeLists.txt

if(UNIX)
	# Find CUDA for OpenCL headers (optional, for Nvidia GPU only)
	find_package(CUDA 11.0)

	if (CUDA_FOUND)
		include_directories(${CUDA_INCLUDE_DIRS})
	endif()

	# Pthreads
	set(THREADS_PREFER_PTHREAD_FLAG ON)
	find_package(Threads REQUIRED)
	target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
endif()

Build error:

With GCC 11.1.0:

[14/20] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -pthread -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Simulator.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Simulator.cpp:1:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[15/20] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -pthread -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/ComputeShader.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/ComputeShader.cpp:1:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[16/20] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -pthread -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/main.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/main.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[17/20] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -pthread -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp:31:14: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
        ImGui::Text(text.data());
                    ^~~~~~~~~~~
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp:31:14: note: treat the string as an argument to avoid this
        ImGui::Text(text.data());
                    ^
                    "%s", 
1 warning and 1 error generated.
[18/20] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -pthread -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Renderer.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Renderer.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[19/20] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -pthread -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Computer.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Computer.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
ninja: build stopped: subcommand failed.

With Clang 12.0:

[13/44] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/ComputeShader.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/ComputeShader.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/ComputeShader.cpp:1:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[14/44] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Computer.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Computer.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Computer.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[15/44] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Simulator.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Simulator.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Simulator.cpp:1:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[16/44] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Renderer.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Renderer.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Renderer.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[17/44] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/main.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/main.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/main.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
1 error generated.
[18/44] Building CXX object CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o
FAILED: CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o 
/usr/bin/clang++  -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes" -I/opt/cuda/include -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/Dimension3D/includes" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/GLM" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui" -I"/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/libraries/ImGui-SFML" -std=gnu++17 -MD -MT CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o -MF CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o.d -o CMakeFiles/Galaxy_simulation.dir/sources/Menu.cpp.o -c '/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp'
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp:2:
In file included from /run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/Simulator.hpp:7:
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:112:59: error: 'T' does not refer to a value
                queue.enqueueReadBuffer(buffer, CL_TRUE, 0, sizeof(T), &T);
                                                                        ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/includes/ComputeShader.hpp:109:21: note: declared here
        template <typename T>
                           ^
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp:31:14: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
        ImGui::Text(text.data());
                    ^~~~~~~~~~~
/run/media/bensuperpc/Main T7/Depot_git/repos_perso/Galaxy_simulation/sources/Menu.cpp:31:14: note: treat the string as an argument to avoid this
        ImGui::Text(text.data());
                    ^
                    "%s", 
1 warning and 1 error generated.

Oubli d'un ingrédient physique pour obtenir un résultat plus réaliste ?

Je pense que vous êtes conscient du fait que votre simulation ne produit pas des galaxies très réalistes quant à leur morphologie.

Voici un dépôt GitHub qui propose un code basé sur le Modèle cosmologique Janus : https://github.com/francisseco/Janus-CUDA-Nbody (c'est un modèle cosmologique dans lequel l'univers n'est pas composé que de particules de masse positive, mais également de particules de masse négative, ce qui a pour effet d'éviter que les étoiles composant la galaxie ne se barrent au bout de quelques tours ; évidemment rien ne prouve la véracité de ce modèle à ce jour, mais le résultat numérique obtenu est peut-être à prendre en considération...).

Le modèle numérique permet de reproduire la structure à grande échelle des bulles de vide entre amas de galaxies, mais aussi une galaxie spirale barrée comme dans cette vidéo-là : https://www.youtube.com/watch?v=qxTDZxt9yC4 (à la minute 1:34 par exemple).

Plus d'informations : Janus Cosmological Model.

Ce modèle est décrié par une grande partie de la communauté astrophysique francophone (qui cherche toujours des particules de matière noire, en vain pour l'instant), mais Jean-Pierre Luminet a quand même eu l'honnêteté d'évoquer le modèle Janus durant une conférence de janvier 2020 (voir la page 4 de https://indico.in2p3.fr/event/20274/attachments/56638/76002/Voir_les_trous_noirs2020.pdf), en expliquant qu'il s'agit d'une théorie alternative.

Génération aléatoire

Je vois que tu utilises rand() pour faire la génération des nombres.

Cela peut être bien, mais pour des simulations "scientifiques" il se trouve que le rand() du C++ ne soit pas très bon car il n'as pas une bonne distribution, il fournit donc des valeurs corrélées .

A la place tu devrait utiliser un générateur comme Mersen Twister, il à une bien meilleur répartition et cela donne des résultats plus intéressant.

Voici une image pour imager mes propos
Annotation 2020-04-29 113459

Toutefois fait attention car l’implémentation de Mersen Twister avant le c++ 17 à été fait avec un mauvais seed. Compile donc en C++17 ou alors utilise l’implémentation officiel au lieu de celle native du C++.

Cela est un changement simple (surtout que tu à bien encapsuler la génération de tes nombres dans deux fonctions) qui permet d'avoir de bien bien meilleur résultats.

Access violation : Peut être liée à une erreur de compatibilité avec le program opencl

Fichier :

sources/ComputeShader.cpp#51

image

Exception non gérée à 0x00007FF75613B873 dans Galaxy_simulation.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0x0000000000000000.

Pour plus d'informations :

  • err = -44 ~= CL_INVALID_PROGRAM

Quand j'ai essayé ce code et mis un breakpoint

auto buildStatus = program.getBuildInfo<CL_PROGRAM_BUILD_STATUS>(device);
auto buildLog = program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(device);
std::cout << "Error!\nBuild Status: " << buildStatus << "\nBuild Log:\t " << buildLog << std::endl;

J'ai obtenu les valeurs suivantes
buildStatus == -858993460
buildLog == ""

Sachant que l'exécutable fournis dans la release ne se lance pas non plus. Donc je penche plutôt pour une erreur de compatibilité avec le programme OpenCL. Mais j'avoue que je n'en ai pas fait beaucoup donc je ne trouve pas le souci ^^

Note:

Pour que cmake puisse configurer le projet. J'ai dû supprimer le code ci-dessous.

// librairies/GLEW/CMakeList.txt
if(MSVC)
	list(APPEND LIBGLEW_SRCS ${RC_DIR}/glew.rc)
endif()

Sinon j'obtenais les logs suivants :

C:\Users\flori\Documents\Project\Perso\Galaxy_simulation>cmake -G "Visual Studio 16 2019" -A x64 -B "./build" -DX64_BITS=ON .
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22489.
-- The C compiler identification is MSVC 19.29.30037.0
-- The CXX compiler identification is MSVC 19.29.30037.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found SFML 2.5.1 in C:/Users/flori/Documents/Project/Perso/Galaxy_simulation/libraries/SFML/VS/x64/lib/cmake/SFML
-- Found OpenGL: opengl32   
-- Looking for CL_VERSION_2_2
-- Looking for CL_VERSION_2_2 - found
-- Found OpenCL: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.5/lib/x64/OpenCL.lib (found version "2.2") 
-- Found SFML 2.5.1 in C:/Users/flori/Documents/Project/Perso/Galaxy_simulation/libraries/SFML/VS/x64/lib/cmake/SFML
-- Configuring done
CMake Error at libraries/GLEW/CMakeLists.txt:94 (add_library):
  Cannot find source file:

    C:/Users/flori/Documents/Project/Perso/Galaxy_simulation/libraries/GLEW/build/glew.rc

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
  .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc


CMake Error at libraries/GLEW/CMakeLists.txt:94 (add_library):
  No SOURCES given to target: libglew_static


CMake Error at libraries/GLEW/CMakeLists.txt:105 (add_library):
  No SOURCES given to target: libglew_shared


CMake Generate step failed.  Build files cannot be regenerated correctly.

Erreur lors du make

Capture

Je suis assez nouveau sur la compilation avec make, et du coup ca doit etre un probleme tout con mais je comprend pas...
Donc si qql pouvait m'aider svp

Compréhensibilité du code

Salut :) tout d'abord bravo ! Ce projet est vraiment beau et inspirant.
Alors je vais être un peu chiant mais je pense que ta fonction main pourrait être un plus épurée (j'entends par là cacher la partie SDL dans une ou quelques fonctions un peu plus personnalisées) pour facilité la compréhension de l'algorithme en lui même aux personnes comme moi qui sont un peu étrangères au codage d'interface graphiques.
Qu'en penses tu ?
Je ne sais pas si c'est réalisable, mais je pourrais essayer et te pr si j'arrive à quelque chose :)

Autre erreur lors de make

image

Hello voici le petit souci que j'ai, on dirait que le compilateur ne trouve pas le header <variant.h> ...
Si je passe en commentaire la ligne 10 de "vector.h" c'est alors <windows.h> qui pose problème dans la ligne 4 de "star.h". Si je réitère c'est alors "vector.h" dans main.cpp qui n'est plus trouvé, et puis c'est l'escalade d'erreurs évidement 😥

Je ne comprends pas 😞 (pour arriver à ce stade j'ai du adopter les modifications de la PR de AryKno 60a53fa ) Oh et je suis sous linux je ne sais pas si ça change grand chose, mais si jamais changer l'attribut -subsystem,windows en -subsystem,linux n'a conduit a aucun changement chez moi, ni en pire ni en mieux 😉

Erreurs de compilation

Salut sur Debian 11:

  • Manque le linkage avec pthread:
find_package (Threads)
target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_THREAD_LIBS_INIT})
  • Mettre a jour les headers d'OpenCL dans includes/libraries.hpp: #include <CL/cl.hpp> devient:
#define CL_HPP_TARGET_OPENCL_VERSION 300
#include <CL/opencl.hpp>
  • Sources/ComputeShader.cpp: cl::Program::Sources sources(1, std::make_pair(src.c_str(), src.length() + 1)); devient cl::Program::Sources sources(1, src);

  • "Galaxy\0Collision\0Universe" doit etre "Galaxy\0Collision\0Universe\0"

Erreur lors de la commande 'make'

Ptite problème quand j'exécute la commande make dans le cmd. Je te laisse l'erreur ^^

C:\Users\tomhe\OneDrive\Documents\GitHub\Galaxy_simulation>make
[Galaxy] Complilation de main.cpp
In file included from sources/main.cpp:4:
includes/block.h:25:7: error: ½ávariantá╗ dans l'espace de noms ½ástdá╗ ne nomme pas un type de patron
  std::variant<Star::container::iterator, std::vector<Block>> contains;
       ^~~~~~~
includes/block.h:25:2: note: ½ástd::variantá╗ est uniquement disponible Ó partir de C++17
  std::variant<Star::container::iterator, std::vector<Block>> contains;
  ^~~
sources/main.cpp:12:27: error: utilisation de la fonction supprimÚe ½ástd::atomic<int>::atomic(const std::atomic<int>&)á╗
  std::atomic<int> ready = 0;
                           ^
In file included from includes/vector.h:9,
                 from includes/star.h:3,
                 from sources/main.cpp:1:
c:\mingw\lib\gcc\mingw32\8.2.0\include\c++\atomic:668:7: note: dÚclarÚ ici
       atomic(const atomic&) = delete;
       ^~~~~~
c:\mingw\lib\gcc\mingw32\8.2.0\include\c++\atomic:672:17: note:   after user-defined conversion: ½áconstexpr std::atomic<int>::atomic(std::atomic<int>::__integral_type)á╗
       constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
                 ^~~~~~
sources/main.cpp: Dans la fonction lambda:
sources/main.cpp:102:9: error: ½ástd::this_threadá╗ n'a pas ÚtÚ dÚclarÚ
    std::this_thread::sleep_for(2ms);
         ^~~~~~~~~~~
sources/main.cpp:125:10: error: ½ástd::this_threadá╗ n'a pas ÚtÚ dÚclarÚ
     std::this_thread::sleep_for(2ms);
          ^~~~~~~~~~~
sources/main.cpp: Dans la fonction ½áint SDL_main(int, char**)á╗:
sources/main.cpp:129:18: error: ½áthreadá╗ n'est pas un membre de ½ástdá╗
  std::array<std::thread, n_thread> mythreads;
                  ^~~~~~
sources/main.cpp:129:18: note: ½ástd::threadá╗ est dÚfini dans l'en-tÛte ½á<thread>á╗á; avez-vous oubliÚ ½á#include <thread>á╗á?
sources/main.cpp:6:1:
+#include <thread>

sources/main.cpp:129:18:
  std::array<std::thread, n_thread> mythreads;
                  ^~~~~~
sources/main.cpp:129:18: error: ½áthreadá╗ n'est pas un membre de ½ástdá╗
sources/main.cpp:129:18: note: ½ástd::threadá╗ est dÚfini dans l'en-tÛte ½á<thread>á╗á; avez-vous oubliÚ ½á#include <thread>á╗á?
sources/main.cpp:129:34: error: l'argument 1 du patron est invalide
  std::array<std::thread, n_thread> mythreads;
                                  ^
sources/main.cpp:132:32: error: requÛte du membre ½ásizeá╗ dans ½ámythreadsá╗, lequel est de type non classe ½áintá╗
  for (int i = 0; i < mythreads.size(); ++i)
                                ^~~~
sources/main.cpp:135:14: error: types ½áint[int]á╗ invalides pour l'indice du tableau
   mythreads[i] = std::thread(update_stars, &mutparts[i]);
              ^
sources/main.cpp:135:23: error: ½áthreadá╗ n'est pas un membre de ½ástdá╗
   mythreads[i] = std::thread(update_stars, &mutparts[i]);
                       ^~~~~~
sources/main.cpp:135:23: note: ½ástd::threadá╗ est dÚfini dans l'en-tÛte ½á<thread>á╗á; avez-vous oubliÚ ½á#include <thread>á╗á?
sources/main.cpp:149:10: error: ½ástd::this_threadá╗ n'a pas ÚtÚ dÚclarÚ
     std::this_thread::sleep_for(1ms);
          ^~~~~~~~~~~
sources/main.cpp:177:19: error: ½ábeginá╗ n'a pas ÚtÚ dÚclarÚ dans cette portÚe
  for (auto& thr : mythreads)
                   ^~~~~~~~~
sources/main.cpp:177:19: note: alternative suggÚrÚe:
In file included from c:\mingw\lib\gcc\mingw32\8.2.0\include\c++\vector:66,
                 from includes/vector.h:4,
                 from includes/star.h:3,
                 from sources/main.cpp:1:
c:\mingw\lib\gcc\mingw32\8.2.0\include\c++\bits\range_access.h:105:37: note:   ½ástd::beginá╗
   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&);
                                     ^~~~~
sources/main.cpp:177:19: error: ½áendá╗ n'a pas ÚtÚ dÚclarÚ dans cette portÚe
  for (auto& thr : mythreads)
                   ^~~~~~~~~
sources/main.cpp:177:19: note: alternative suggÚrÚe:
In file included from c:\mingw\lib\gcc\mingw32\8.2.0\include\c++\vector:66,
                 from includes/vector.h:4,
                 from includes/star.h:3,
                 from sources/main.cpp:1:
c:\mingw\lib\gcc\mingw32\8.2.0\include\c++\bits\range_access.h:107:37: note:   ½ástd::endá╗
   template<typename _Tp> const _Tp* end(const valarray<_Tp>&);
                                     ^~~
make: *** [objects/main.o] Erreur 1

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.