4 Python subpackages, 5 Rust crates, 10 optional dependency groups. Every module tested, every function documented.
| Package | Modules | Description | Key Contents |
|---|---|---|---|
| scpn | 13 | Top-level API, SPN → SNN compiler, contract system | compiler contracts bitstream |
| core | 74 | Physics solvers: GS equilibrium, MHD stability, transport, gyrokinetics, edge/pedestal | grad_shafranov gk_transport mhd neoclassical |
| control | 50 | 10 controller types, digital twin, disruption prediction, actuator models | pid mpc hinf ppo snn |
| phase | 9 | Kuramoto-Sakaguchi dynamics, Knm, UPDE, Lyapunov guard, WebSocket streaming | kuramoto knm upde |
| cli | 1 | Click-based command-line interface: demo, benchmark, validate, live | click |
| Crate | Modules | Description | Key Exports |
|---|---|---|---|
| control-types | 5 | Shared type definitions: state vectors, matrix wrappers, error types | StateVec KnmMatrix |
| control-math | 14 | Numerical primitives: Kuramoto kernel, RK4 stepper, Lyapunov exponent, matrix ops | kuramoto_step rk4 lyapunov |
| control-core | 21 | Physics solvers in Rust: GS iteration, transport coefficients, MHD criteria | gs_solve mercier ballooning |
| control-control | 13 | Controller implementations: PID, MPC, Riccati solver, gain scheduler | pid_step mpc_solve dare |
| control-python | 6 | PyO3 entry point: Python module registration, type conversions | PyModule |
pip install "scpn-control[all]"Follow this topic by RSS or confirmed email subscription. Keep a personal reading list.