The tutorials below are executable Jupyter notebooks demonstrating ClimateCritters models and utilities. Each notebook can be run locally after installing the package .
Getting started
CCModel Basics
Base class interface: construction, param_values, integration, CCOutput , callable parameters, register_forcing, set_function, copying, to_pyleo
Forcing Basics
Four construction patterns (callable, array, Hold /Ramp /Harmonic elements, bundled datasets); attachment modes (replacement, additive); timing (pre, post); noise and SDE integration
Model demos
Energy Balance Models
0D
Equilibration, albedo options (constant, albedo_func, custom callable), OLR, ice-albedo bistability, solar forcing, bundled TSI data, heat capacity effects on timescale
1D (latitude)
Latitudinal grid, meridional heat diffusion, ice-line dynamics, zonal-mean temperature profiles, CO₂ forcing, Budyko OLR, set_function, Mid-Pleistocene Transition scenarios
Pendulums and Springs
SimplePendulum & Spring
DampedSpring damping regimes (underdamped, critical, overdamped), SimplePendulum nonlinear behavior, driven pendulum period-doubling route to chaos, resonance, frequency response
Double Pendulum
Hamiltonian double pendulum, sensitive dependence on initial conditions, energy conservation vs solver tolerance tradeoffs, trajectory divergence, phase space
Climate
ENSO recharge oscillator (Jin, 1996)
Recharge-discharge paradigm, Bjerknes coupling regimes (damped, self-sustained, nonlinear), thermocline depth anomaly, SST anomaly, seasonal forcing entrainment
Pleistocene Ice Volume (Ganopolski, 2024)
Orbital forcing (precession + eccentricity modulation), discrete regime switching, ~100 kyr glacial cycles, Mid-Pleistocene Transition via vc(t) ramp, threshold-based initiation and termination
Thermohaline Circulation (Stommel, 1961)
Temperature-salinity density contrast, overturning strength diagnostic, freshwater forcing (two attachment styles), thermally-driven vs salinity-driven bifurcation, time-varying parameters
Thermohaline Circulation (Melcher et al 2025)
Synthetic bistable climate series, Dansgaard-Oeschger events, stadial/interstadial state detection, tipping points, stochastic SDE, AMOC, glacial climate
Lorenz & Rössler
Roessler
Single-scroll strange attractor, parameter c periodic-to-chaotic transition, period-doubling bifurcation cascade, phase portrait, quasi-periodic spirals with irregular z-spikes
Lorenz63
Butterfly attractor, sensitive dependence on initial conditions, lobe-switching dynamics, bifurcation from stable fixed points to chaos, Rayleigh number, Prandtl number
Lorenz96
Periodic-ring single-scale chaos, quadratic advection, wave packets, two-scale fast-slow coupling (X/Y variables), timescale separation, data assimilation benchmark
Box Models
Carbon Cycle Demo
TwoBoxCarbon air-sea exchange, BoxModelSpec declarative network framework, concentration-gradient flux, three-box extension, biological pump, mass conservation
Functionality demos
Noise
Noise Generation
noise.from_series (AR(1) emulation from target), noise.from_param (power-law, fractional Gaussian, white noise), ensemble generation
Noise in Models — Three Injection Modes
Noisy forcing (input feedback), SDE integration with euler_maruyama/heun_maruyama/milstein (state feedback), post-integration observation noise; comparison on EBM0D
Downsampling
resample.downsample, gap distributions (exponential, Poisson, Pareto, random_choice), sparse sampling from regular trajectories, resolution dashboard
Solvers
RK45 tolerances, fixed-step (rk4, Euler) requirements, discrete-event models (G24), SDE-aware integrators, two-scale Lorenz96 history corruption, model-class-to-solver mapping