att.synthetic¶
Synthetic chaotic system generators for validation.
- att.synthetic.lorenz_system(n_steps=10000, dt=0.01, sigma=10.0, rho=28.0, beta=2.6666666666666665, initial=None, noise=0.0, seed=None)[source]¶
Generate a Lorenz attractor trajectory.
Returns: (n_steps, 3) array.
- att.synthetic.rossler_system(n_steps=10000, dt=0.01, a=0.2, b=0.2, c=5.7, initial=None, noise=0.0, seed=None)[source]¶
Generate a Rössler attractor trajectory.
Returns: (n_steps, 3) array.
- att.synthetic.coupled_lorenz(n_steps=10000, dt=0.01, coupling=0.1, sigma=10.0, rho=28.0, beta=2.6666666666666665, seed=None)[source]¶
Two Lorenz systems with diffusive coupling on the x-variable.
coupling=0 → independent. coupling→1 → synchronization. Returns: (ts_x, ts_y), each (n_steps, 3).
- att.synthetic.coupled_rossler_lorenz(n_steps=10000, dt=0.01, coupling=0.1, a=0.2, b=0.2, c=5.7, sigma=10.0, rho=28.0, beta=2.6666666666666665, seed=None)[source]¶
Rössler coupled to Lorenz — different intrinsic timescales.
Tests per-channel delay handling in JointEmbedder. Returns: (ts_rossler, ts_lorenz).
- att.synthetic.switching_rossler(n_steps=20000, dt=0.01, switch_every=5000, seed=None)[source]¶
Rössler with parameter switches at known intervals.
Alternates between two parameter regimes (c=5.7 and c=18.0) to create ground truth attractor transitions.
Returns: (n_steps, 3) array.
- att.synthetic.coupled_oscillators(n_oscillators=3, coupling_matrix=None, n_steps=10000, dt=0.01, seed=None)[source]¶
Multiple coupled Rössler oscillators with configurable coupling.
Returns: (n_steps, n_oscillators, 3) array.
- att.synthetic.kuramoto_oscillators(n_oscillators=2, n_steps=10000, dt=0.01, coupling=0.5, omega_spread=1.0, noise=0.0, seed=None)[source]¶
Kuramoto coupled phase oscillators.
Simulates the Kuramoto model of phase-coupled oscillators. Useful for testing topological binding on oscillatory (non-chaotic) dynamics.
The classic Kuramoto model: dθ_i/dt = ω_i + (K/N) Σ_j sin(θ_j − θ_i) + η(t)
- Parameters:
n_oscillators (number of oscillators)
n_steps (number of integration steps)
dt (integration timestep)
coupling (coupling strength K)
omega_spread (std of natural frequency distribution (mean=1.0))
noise (Gaussian noise amplitude)
seed (random seed)
- Returns:
phases ((n_steps, n_oscillators) array of phase values)
signals ((n_steps, n_oscillators) array with signal_i = sin(phase_i))
- Return type:
- att.synthetic.aizawa_system(n_steps=10000, dt=0.01, alpha=0.95, beta=0.7, gamma=0.6, delta=3.5, epsilon=0.25, zeta=0.1, initial=None, noise=0.0, seed=None)[source]¶
Generate an Aizawa attractor trajectory.
The Aizawa attractor has roughly spherical geometry with a helical escape tube, producing cleaner cross-sections than Lorenz or Rössler when intersected by projections.
Returns: (n_steps, 3) array.
Chaotic system generators for validation and benchmarking.
All generators use RK4 integration and accept an optional seed parameter. If seed is None, uses the global seed state from set_seed().
- att.synthetic.generators.lorenz_system(n_steps=10000, dt=0.01, sigma=10.0, rho=28.0, beta=2.6666666666666665, initial=None, noise=0.0, seed=None)[source]¶
Generate a Lorenz attractor trajectory.
Returns: (n_steps, 3) array.
- att.synthetic.generators.rossler_system(n_steps=10000, dt=0.01, a=0.2, b=0.2, c=5.7, initial=None, noise=0.0, seed=None)[source]¶
Generate a Rössler attractor trajectory.
Returns: (n_steps, 3) array.
- att.synthetic.generators.coupled_lorenz(n_steps=10000, dt=0.01, coupling=0.1, sigma=10.0, rho=28.0, beta=2.6666666666666665, seed=None)[source]¶
Two Lorenz systems with diffusive coupling on the x-variable.
coupling=0 → independent. coupling→1 → synchronization. Returns: (ts_x, ts_y), each (n_steps, 3).
- att.synthetic.generators.coupled_rossler_lorenz(n_steps=10000, dt=0.01, coupling=0.1, a=0.2, b=0.2, c=5.7, sigma=10.0, rho=28.0, beta=2.6666666666666665, seed=None)[source]¶
Rössler coupled to Lorenz — different intrinsic timescales.
Tests per-channel delay handling in JointEmbedder. Returns: (ts_rossler, ts_lorenz).
- att.synthetic.generators.switching_rossler(n_steps=20000, dt=0.01, switch_every=5000, seed=None)[source]¶
Rössler with parameter switches at known intervals.
Alternates between two parameter regimes (c=5.7 and c=18.0) to create ground truth attractor transitions.
Returns: (n_steps, 3) array.
- att.synthetic.generators.coupled_oscillators(n_oscillators=3, coupling_matrix=None, n_steps=10000, dt=0.01, seed=None)[source]¶
Multiple coupled Rössler oscillators with configurable coupling.
Returns: (n_steps, n_oscillators, 3) array.
- att.synthetic.generators.aizawa_system(n_steps=10000, dt=0.01, alpha=0.95, beta=0.7, gamma=0.6, delta=3.5, epsilon=0.25, zeta=0.1, initial=None, noise=0.0, seed=None)[source]¶
Generate an Aizawa attractor trajectory.
The Aizawa attractor has roughly spherical geometry with a helical escape tube, producing cleaner cross-sections than Lorenz or Rössler when intersected by projections.
Returns: (n_steps, 3) array.
- att.synthetic.generators.kuramoto_oscillators(n_oscillators=2, n_steps=10000, dt=0.01, coupling=0.5, omega_spread=1.0, noise=0.0, seed=None)[source]¶
Kuramoto coupled phase oscillators.
Simulates the Kuramoto model of phase-coupled oscillators. Useful for testing topological binding on oscillatory (non-chaotic) dynamics.
The classic Kuramoto model: dθ_i/dt = ω_i + (K/N) Σ_j sin(θ_j − θ_i) + η(t)
- Parameters:
n_oscillators (number of oscillators)
n_steps (number of integration steps)
dt (integration timestep)
coupling (coupling strength K)
omega_spread (std of natural frequency distribution (mean=1.0))
noise (Gaussian noise amplitude)
seed (random seed)
- Returns:
phases ((n_steps, n_oscillators) array of phase values)
signals ((n_steps, n_oscillators) array with signal_i = sin(phase_i))
- Return type: