An interactive OpenGL + ImGui application to visualize and explore chaotic attractors in 3D. Supports real-time parameter editing, camera control, and multiple attractor types with dynamic trajectories.
-
🌀 3D Visualization of 15 different chaotic attractors
-
Saving trajectory as a CSV file
-
🎛️ Interactive GUI using ImGui for:
- Selecting attractor types
- Adjusting equation parameters
- Setting initial conditions
-
🖱️ Mouse Controls:
- Rotate camera with left-click drag
- Pan with right-click drag
- Zoom with scroll
- Reset view with R key or "Reset view" button
-
✨ Particle simulation along trajectories
- Lorenz
- Rössler
- Dequan Li
- Aizawa
- Chen Lee
- Arneodo
- Sprott B
- Sprott Linz F
- Dadras
- Halvorsen
- Thomas
- Lorenz83
- Rabinovich-Fabrikant
- Four-Wing
- Sprott
Each attractor uses its own set of parameters, which update dynamically when selected.
- C++ 11 or higher
- OpenGL
- GLFW 3.4
- GLAD
- GLM 1.0.1
- ImGUI v1.91.9b
- A C++ compiler (GCC, Clang, etc.)
- Clone or download the repository
git clone https://github.com/Alicia105/ChaosEquationSimulator.git
- Navigate to the project directory
cd ChaosEquationSimulator
- Create a build directory
mkdir build && cd build
- Build the project with the CMake inside the build directory
cmake ..
- Compile the project with make
make
- Run the executable file
.\ChaosEquationSimulator.exe
- Use your mouse wheel to zoom in and out
- Maintain your mouse left button clicked to rotate the simulation
- Maintain your mouse right button clicked to pan the camera in the simulation
- Press the "R" key or the "Reset view" button to set the camera to the original settings and remove the particles from the trajectory.
- The attractor is Lorenz attractor by default. You can choose the attractor between 15 different attractors. You can choose the initial point, number of points to trace and the duration in the settings menu. The duration is the time taken by a point to do the whole trajectory in the real world. You can then generate a new trajectory and save it as a csv file.
- You can add particles on the trajectory to simulate the speed along the trajectory. You can choose the number of particles you want along it.
demo_simu_particles_dadras.mp4
- Dear ImGUI by @ocornut
- GLFW
- GLM
- GLAD
- Inspiration from classical chaotic systems and dynamical systems theory


