A modular Python framework for chaotic/hyperchaotic synchronization, nonlinear control, disturbance analysis, and dynamical systems research.
ChaosSyncPy is a flexible and extensible framework for the simulation and synchronization of nonlinear and chaotic/hyṕerchaotic dynamical systems.
A key feature of the framework is its dimension-agnostic design, allowing the implementation of dynamical systems with an arbitrary number of state variables. This makes it suitable not only for classical low-dimensional chaotic systems (such as the Lorenz system), but also for higher-dimensional or augmented systems, including those with additional control states, observers, or learning-based components.
The project provides a modular architecture for implementing master-slave synchronization schemes, control laws, disturbances, and numerical integration methods.
The framework is intended for researchers, students, and engineers working in areas such as:
- Chaotic systems
- Nonlinear control
- Synchronization
- Dynamical systems
- System identification
- Modular architecture
- Master-slave synchronization framework
- Configurable numerical solvers (
RK45,BDF,Radau, etc.) - Configurable disturbances
- Error convergence analysis
- Attractor visualization
- Easily extensible to new dynamical systems and controllers
Clone the repository:
git clone https://github.com/felipeofugi/ChaosSyncPy.git
cd ChaosSyncPyCreate and activate a virtual environment:
python3 -m venv .venv
source .venv/bin/activateInstall the required packages:
pip install -r requirements.txtDefine the state names and the plant of the dynamic system to be simulated in:
src/system.py
Enter the initial conditions of the master and slave systems and the type of disturbance in:
main.py
Edit the disturbances in:
src/disturbances.py
Set the control signal in:
src/controller.py
Execute:
python main.pyThe graphs will be generated in the figures directory.
Simulation parameters can be configured in:
src/config.py
The generated graphs can be edited in
src/plots.py
The Lorenz system is one of the most studied chaotic systems and is defined by:
where:
$\sigma = 10$ $\rho = 28$ $\beta = 8/3$
The framework supports synchronization between a master and a slave Lorenz system through a configurable control law.
ChaosSyncPy/
│
├── figures/
├── src/
│ ├── config.py
│ ├── controller.py
│ ├── disturbances.py
│ ├── integrator.py
│ ├── plots.py
│ ├── synchronization.py
│ ├── system.py
│ └── __init__.py
│
├── main.py
├── requirements.txt
├── LICENSE
└── README.md
This project is distributed under the MIT License.
If you use this project in academic research, please consider citing the repository in your publications.




