How polatucha16/python_boids works
Cucker–Smale is a configurable boid simulation with an interactive Matplotlib interface. The user runs the CLI with a YAML experiment configuration; configuration is parsed and assembled into model components, an initial state, and a simulator, which advances the boids for visualization and interactive control. The graph includes the documented configuration/build stages and major domain and visualization capabilities. Some subsystem links rely on the README or SOURCE INDEX references; unsampled implementation details are not assumed.
Main entry points: mpl_simulation_view.py Simulation view · factories.py Object factories · dynamics.py Dynamics and controls · state.py Boid state
Components 22
Entry and configuration
- CLI
src/cucker_smale/cli.py - Experiment YAML
src/cucker_smale/config/basic_CS.yaml - Config loader
src/cucker_smale/config/load.py - Config schema
src/cucker_smale/config/schema.py - Object factories
src/cucker_smale/config/factories.py
Simulation model
- Initial conditions
src/cucker_smale/initial_conditions/base.py - Boid state
src/cucker_smale/domain/state.py - Geometry
src/cucker_smale/domain/geometry.py - Communication rules
src/cucker_smale/domain/communication_kernel.py - Communication topology
src/cucker_smale/domain/communication_topology.py - Dynamics and controls
src/cucker_smale/domain/dynamics.py - Interaction models
src/cucker_smale/domain/interaction.py
Simulation runtime
- Experiment controller
src/cucker_smale/experiment_controll/experiment_controller.py - Simulator
src/cucker_smale/simulation/simulator.py - RK45 integrator
src/cucker_smale/simulation/scipy_rk45.py
Interactive visualization
- Simulation view
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Figure layout
src/cucker_smale/visualization/matplotlib/mpl_layout.py - Figure builder
src/cucker_smale/visualization/matplotlib/figure_builder.py - Boid renderer
src/cucker_smale/visualization/matplotlib/mpl_boid_renderer.py - Boid manipulator
src/cucker_smale/visualization/matplotlib/mpl_boid_manipulator.py - Interactive widgets
src/cucker_smale/visualization/matplotlib/wigets.py
Other components
- User
Connections 33
- User → CLI: runs
README.md - User → Experiment YAML: configures
README.md - CLI → Config loader: loads config
src/cucker_smale/cli.py - Experiment YAML → Config loader: provides settings
README.md - Config loader → Config schema: parses into
src/cucker_smale/config/load.py - CLI → Experiment controller: creates
src/cucker_smale/cli.py - CLI → Simulation view: opens
src/cucker_smale/cli.py - Experiment controller → Object factories: builds through
src/cucker_smale/experiment_controll/experiment_controller.py - Object factories → Geometry: constructs
src/cucker_smale/config/factories.py - Object factories → Communication rules: constructs
src/cucker_smale/config/factories.py - Object factories → Communication topology: constructs
src/cucker_smale/config/factories.py - Object factories → Initial conditions: generates
src/cucker_smale/config/factories.py - Initial conditions → Boid state: creates
src/cucker_smale/initial_conditions/base.py - Object factories → Dynamics and controls: constructs
src/cucker_smale/config/factories.py - Dynamics and controls → Geometry: uses distances
src/cucker_smale/domain/dynamics.py - Dynamics and controls → Communication rules: uses weights
src/cucker_smale/domain/dynamics.py - Dynamics and controls → Communication topology: uses neighbors
src/cucker_smale/domain/dynamics.py - Dynamics and controls → Boid state: reads state
src/cucker_smale/domain/dynamics.py - Object factories → Simulator: builds
src/cucker_smale/config/factories.py - Experiment controller → Simulator: creates
src/cucker_smale/experiment_controll/experiment_controller.py - Simulator → RK45 integrator: specialized by
src/cucker_smale/config/factories.py - RK45 integrator → Dynamics and controls: integrates
src/cucker_smale/simulation/scipy_rk45.py - RK45 integrator → Boid state: updates
src/cucker_smale/simulation/scipy_rk45.py - Simulation view → Experiment controller: controls
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Simulation view → Simulator: advances
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Simulation view → Figure layout: arranges axes
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Simulation view → Figure builder: assembles figure
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Simulation view → Boid renderer: mounts renderer
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Simulation view → Boid manipulator: mounts controls
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Simulation view → Interactive widgets: uses widgets
src/cucker_smale/visualization/matplotlib/mpl_simulation_view.py - Boid renderer → Boid state: renders
src/cucker_smale/visualization/matplotlib/mpl_boid_renderer.py - Boid manipulator → Boid state: updates
src/cucker_smale/visualization/matplotlib/mpl_boid_manipulator.py - Interaction models → Dynamics and controls: contributes to model