{"id":16323652,"url":"https://github.com/im-rises/particlesimulator","last_synced_at":"2025-05-14T14:35:09.106Z","repository":{"id":107335987,"uuid":"591380412","full_name":"Im-Rises/ParticleSimulator","owner":"Im-Rises","description":"10 000 000 particles simulation made in C++ with OpenGL","archived":false,"fork":false,"pushed_at":"2023-06-25T19:37:42.000Z","size":3219,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-15T01:19:01.021Z","etag":null,"topics":["cplusplus","cpp","engine","imgui","opengl","particle-simulation","particles","simulation"],"latest_commit_sha":null,"homepage":"https://im-rises.github.io/particle-simulator-webgl","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Im-Rises.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-01-20T16:05:26.000Z","updated_at":"2023-11-24T11:23:58.000Z","dependencies_parsed_at":"2023-10-12T17:59:12.550Z","dependency_job_id":null,"html_url":"https://github.com/Im-Rises/ParticleSimulator","commit_stats":{"total_commits":112,"total_committers":2,"mean_commits":56.0,"dds":0.008928571428571397,"last_synced_commit":"fabdafeb7e98041e25465e8035511af6e583e603"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Im-Rises%2FParticleSimulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Im-Rises%2FParticleSimulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Im-Rises%2FParticleSimulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Im-Rises%2FParticleSimulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Im-Rises","download_url":"https://codeload.github.com/Im-Rises/ParticleSimulator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254160665,"owners_count":22024581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","cpp","engine","imgui","opengl","particle-simulation","particles","simulation"],"created_at":"2024-10-10T22:55:20.903Z","updated_at":"2025-05-14T14:35:09.088Z","avatar_url":"https://github.com/Im-Rises.png","language":"C++","readme":"# ParticleSimulator\n\n\u003cp align=\"center\"\u003e\n      \u003cimg src=\"https://user-images.githubusercontent.com/59691442/183268126-b3d19e66-8f2d-463a-805e-ae6ef7cc6c01.png\" alt=\"cmakeLogo\" style=\"height:60px;\"/\u003e\n      \u003cimg src=\"https://img.shields.io/badge/C%2B%2B-00599C?style=for-the-badge\u0026logo=c%2B%2B\u0026logoColor=white\" alt=\"cppLogo\" style=\"height:60px;\"/\u003e\n      \u003cimg src=\"https://img.shields.io/badge/OpenGL-FFFFFF?style=for-the-badge\u0026logo=opengl\" alt=\"openglLogo\" style=\"height:60px;\"/\u003e\n      \u003cimg src=\"https://user-images.githubusercontent.com/59691442/190315147-ec9dc33f-0090-4f0d-98ab-514eb1463e01.png\" alt=\"glfwLogo\" style=\"height:60px;\"/\u003e\n\u003c/p\u003e\n\n## Description\n\nThis is a simple particle simulator made with OpenGL and C++ with the help of the ImGui library for the UI.\n\n## 🚀🚀[you can try the webgl build online by clicking here](https://im-rises.github.io/particle-simulator-webgl/) 🚀🚀\n\nThe source code of the WebGL can be found at the following link:  \n\u003chttps://github.com/Im-Rises/particle-simulator-webgl\u003e\n\n\u003e **Note:**   \n\u003e The tests are running at 144Hz with 10 000 000 particles on a Windows 11 machine with an Nvidia RTX 2070 6GB.\n\n## Images\n\n[//]: # (![screenshot1]\u0026#40;https://user-images.githubusercontent.com/59691442/221967878-52c06fd3-2de1-4362-873a-5ae69c62d618.png\u0026#41;)\n\n[//]: # (![screenshot2]\u0026#40;https://user-images.githubusercontent.com/59691442/221967884-f74d32e2-1bf2-4382-839b-83b85433e7a8.png\u0026#41;)\n\n[//]: # (![screenshot4]\u0026#40;https://user-images.githubusercontent.com/59691442/222615096-59948508-7a2e-408f-9d6a-62cbcd5f7e43.png\u0026#41;)\n\n[//]: # (![screenshot3]\u0026#40;https://user-images.githubusercontent.com/59691442/221970097-cbd13fe8-dfe2-4a5a-9c8b-e7723349f232.png\u0026#41;)\n\n[//]: # (![screenshot5]\u0026#40;https://user-images.githubusercontent.com/59691442/221975698-54e0e84e-602b-404a-b481-a5562f69dde1.png\u0026#41;)\n\n[//]: # (![screenshot \u0026#40;2\u0026#41;]\u0026#40;https://user-images.githubusercontent.com/59691442/220508256-11312315-eb2d-4101-8086-cda5ede960fe.png\u0026#41;)\n\n[//]: # (![screenshot \u0026#40;3\u0026#41;]\u0026#40;https://user-images.githubusercontent.com/59691442/220508258-c45c4877-e884-4ad7-b544-3a22945e0e0e.png\u0026#41;)\n\n[//]: # (## Video)\n\n[//]: # (https://user-images.githubusercontent.com/59691442/221977239-01ca5be8-0c4e-4a83-98c0-533cbf30c083.mp4)\n\n![Screenshot 1](https://user-images.githubusercontent.com/59691442/225486502-770ec82b-562a-452b-9ef2-f2a68c6fef18.png)\n![Screenshot 2](https://user-images.githubusercontent.com/59691442/225486505-e8ccd756-056a-4507-917a-6be6bd8decb9.png)\n\n## Videos\n\nhttps://user-images.githubusercontent.com/59691442/225486109-9fb793d5-878f-430b-b418-938535038aed.mp4\n\n## Features\n\n- [x] ImGui UI\n- [x] Camera movement\n- [x] Camera settings\n- [x] Mouse drag of the particles\n- [x] Fullscreen toggle\n- [x] Pause simulation\n- [x] Change the number of particles\n\n## Dependencies\n\n- OpenGL version: 4.6.0\n- GLSL version: 4.60\n- GLFW version: 3.3.8\n- Glad version: 0.1.36\n- ImGui version: 1.89.6 WIP\n- GLM version: 0.9.8\n- Emscripten: 3.1.37\n\n## Quickstart\n\nTo download the app, you can click one of the icons below (depending on your operating system). You can also click the\nrelease section of the GitHub page.\n\nDepending on you `operating system` you will need to install some libs, they are installed differently depending on your\nsystem, please follow one of the section below `Windows` or `Linux` or `MacOs`.\n\nFor the compilation, follow the section `Compilation`.\n\nThe controls are described in the section `Controls`.\n\n\u003e **Warning**\n\u003e Be sure to put the `imgui.ini` file in the same folder as the executable.\n\u003e You can find it in the `root` of the project. If you don't do this, the UI will not be displayed correctly.\n\n### Windows\n\n\u003ca href=\"https://github.com/Im-Rises/ParticleSimulatorSSBO/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white\" alt=\"cmakeLogo\" style=\"height:40px;\"/\u003e\u003c/a\u003e\n\nFor Windows users you don't need to install the libs. You can just download the app and run it.\n\n```bash\n.\\ParticleSimulator.exe\n```\n\n### Linux\n\n\u003ca href=\"https://github.com/Im-Rises/ParticleSimulatorSSBO/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\" alt=\"cmakeLogo\" style=\"height:40px;\"/\u003e\u003c/a\u003e\n\nFor Linux users, you need to install the GLFW lib, to do so type one of the following commands:\n\n```bash\nsudo apt-get install libglfw3\n```\n\nor if you're a developer and want to compile the app, please install this version of GLFW:\n\n```bash\nsudo apt-get install libglfw3-dev\n```\n\nThen you can start by double-clicking the executable of typing the following command next to it:\n\n```bash\n./ParticleSimulatorLauncher\n```\n\n### MacOs\n\n\u003ca href=\"https://github.com/Im-Rises/ParticleSimulatorSSBO/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white\" alt=\"cmakeLogo\" style=\"height:40px;\"/\u003e\u003c/a\u003e\n\nFor macOS users you will need to install Brew, please follow the instruction in the link below:  \n\u003chttps://brew.sh\u003e\n\nOnce it is installed, you can type the following command to install GLFW.\n\n```bash\nbrew install glfw\n```\n\nThen you can start by double-clicking the executable of typing the following command next to it:\n\n```bash\n./ParticleSimulatorLauncher\n```\n\n## Controls\n\nThe speed and some parameters can be modified directly in the ImGui windows.\n\n| Action                   | Key                                 |\n|--------------------------|-------------------------------------|\n| Translate camera         | WASD (← → ↑ ↓)                      |\n| Pause/Resume             | P                                   |\n| Move up/down camera      | SPACE/SHIFT                         |\n| Rotate camera            | Right Mouse Button + Mouse movement |\n| Toggle UI visible/hidden | U                                   |\n| Fullscreen               | F11                                 |\n| Exit app                 | ESC                                 |\n| Drag particles           | Left Mouse Button + Mouse movement  |\n\n\u003e **Note**\n\u003e You can the inputs by changing their attribution in the `InputManager.cpp` file,\n\u003e if so you'll need to compile the project.\n\n## Compilation\n\nTo compile the app, the first thing you need to do is install a C++ compiler:\n\n- Visual Studio (MSVC)\n- Mingw\n- ...\n\nYou also need to install Cmake:  \n\u003chttps://cmake.org\u003e\n\nOnce your environment is set up, depending on your operating system you'll need to install some libs before compiling\nthe project. Refer to the section below `Windows` or `Linux` or `MacOs`.\n\n### Windows\n\nWindows users can directly compile the project by typing the following command at the project root folder:\n\n```bash\ncmake -B . -DCMAKE_BUILD_TYPE=Release\n```\n\nthen\n\n```bash\ncmake --build . --config Release\n```\n\n\u003e **Note**  \n\u003e If you're using Visual Studio, you can install CMake directly from the IDE (Visual Studio Installer).\n\u003e Then you need to open the Project as a CMake Project, not a Visual Studio Project!\n\n\u003e **Warning**  \n\u003e The project is set up to be built using CMake and vc2019 for Windows. If you want to modify the\n\u003e compiler for vc2022 or other you will need to change the CMakeLists.txt .lib linking file accordingly to your vc20**\n\u003e version.\n\n### Linux\n\nLinux's users need to install some libs before compiling the project:\n\nFirst thing to do is to install CMake, type the following command to install it.\n\n```bash\nsudo apt-get install cmake\n```\n\nYou also need to install the GLFW lib. Type the following command at the project root.\n\n```bash\nsudo apt-get install libglfw3-dev\n```\n\nYou are now able to compile the project. Go to the project root and type the following command:\n\n```bash\ncmake -B . -DCMAKE_BUILD_TYPE=Release\n```\n\nthen\n\n```bash\ncmake --build . --config Release\n```\n\n### MacOs\n\nFor macOS user, you should install brew package manager by following the instructions in the link below:  \n\u003chttps://brew.sh\u003e\n\nThen type the following command to install cmake:\n\n```bash\nbrew install cmake\n```\n\nand this one to install GLFW\n\n```bash\nbrew install glfw\n```\n\nYou are now able to compile the project. Go to the project root and type the following command:\n\n```bash\ncmake -B . -DCMAKE_BUILD_TYPE=Release\n```\n\nthen\n\n```bash\ncmake --build . --config Release\n```\n\n## Github-Actions\n\n[![CodeQL](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/codeql.yml)\n[![CMake](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/cmake.yml/badge.svg?branch=main)](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/cmake.yml)\n[![Cpp Cmake Publish](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/cpp-cmake-publish.yml/badge.svg?branch=main)](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/cpp-cmake-publish.yml)\n[![flawfinder](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/flawfinder.yml/badge.svg?branch=main)](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/flawfinder.yml)\n[![Microsoft C++ Code Analysis](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/msvc.yml/badge.svg?branch=main)](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/msvc.yml)\n[![cpp-linter](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/cpp-linter.yml/badge.svg?branch=main)](https://github.com/Im-Rises/ParticleSimulator/actions/workflows/cpp-linter.yml)\n\nThe project is set with a set of different scripts:\n\n- CodeQL: This script is used to check the code for security issues.\n- CMake: This script is used to build the project.\n- Cpp Cmake Publish: This script is used to publish the project on GitHub.\n- Flawfinder: This script is used to check the code for security issues.\n- Microsoft C++ Code Analysis: This script is used to check the code for security issues.\n- Cpp Linter: This script is used to check the code for security issues.\n\n## Libraries\n\nglfw:  \n\u003chttps://www.glfw.org/docs/latest/\u003e\n\nglm:  \n\u003chttps://glm.g-truc.net/0.9.9/index.html\u003e\n\nglad:  \n\u003chttps://glad.dav1d.de/\u003e\n\nstb (stb_image):  \n\u003chttps://github.com/nothings/stb/blob/master/stb_image.h\u003e\n\nDear ImGui:  \n\u003chttps://github.com/ocornut/imgui\u003e\n\nOpenGL:  \n\u003chttps://www.opengl.org/\u003e\n\n## Documentation\n\nlearnopengl (OpenGL tutorial):  \n\u003chttps://learnopengl.com/In-Practice/2D-Game/Particles\u003e\n\nunrealistic.dev (Change CMake working directory):  \n\u003chttps://unrealistic.dev/posts/setting-debug-parameters-with-cmake-tools-for-visual-studio\u003e\n\nBobBaykiller (Newtonian Particle Simulator):  \n\u003chttps://github.com/BoyBaykiller/Newtonian-Particle-Simulator\u003e\n\n## Contributors\n\nQuentin MOREL:\n\n- @Im-Rises\n- \u003chttps://github.com/Im-Rises\u003e\n\n[![GitHub contributors](https://contrib.rocks/image?repo=Im-Rises/ParticleSimulator)](https://github.com/Im-Rises/ParticleSimulator/graphs/contributors)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fim-rises%2Fparticlesimulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fim-rises%2Fparticlesimulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fim-rises%2Fparticlesimulator/lists"}