Onboarding¶
This guide explains how to approach SCPN Control without needing to read the entire codebase first.
Mental model¶
Think of SCPN Control as three layers:
| Layer | What it answers |
|---|---|
| Controller logic | What should the controller do, and what invariants must never be violated? |
| Physics and replay facades | Which equilibrium, transport, disruption, and digital-twin signals feed the controller? |
| Admission evidence | Which artefacts prove that a result is reproducible and allowed to be claimed? |
A new workflow should normally touch all three layers. A controller without an evidence gate is not ready for promotion. A physics result without a controller contract is not yet a control feature. A benchmark without hardware and claim metadata is only a local timing observation.
Install paths¶
Use editable install for development:
git clone https://github.com/anulum/scpn-control.git
cd scpn-control
pip install -e ".[dev,docs,formal,jax,ws]"
First hour checklist¶
- Run
scpn-control demo --steps 1000to confirm the package is importable. - Read Production Readiness before interpreting any benchmark or validation result.
- Run one tutorial from Tutorials and one notebook from Notebook Gallery.
- Inspect API Reference for the surface you want to use.
- If you want to make a claim, find the matching validator in Validation and QA before writing code.
First day by role¶
| Role | Practical path | What to avoid |
|---|---|---|
| Control researcher | Run Tutorial 01, inspect scpn_control.control, then persist a bounded validation report |
Do not cite local plots as facility evidence |
| Physics modeller | Start with traceability and validation pages before solver-facing examples | Do not duplicate solver kernels already owned by SCPN Fusion Core |
| Safety reviewer | Read production readiness, formal verification API, and certificate bundle validation | Do not treat bounded proofs as facility certification |
| Data collaborator | Read public-data acquisition, MAST EFM evidence, and compute financing pages | Do not commit large numeric payloads to git |
| Funder or partner | Read use cases, market value, production readiness, and compute validation financing | Do not interpret blocked gates as failures; they are the work plan |
Evidence ladder¶
- Demonstration: tutorial, notebook, or example output.
- Bounded repository evidence: deterministic report with declared assumptions.
- Reference admission: strict validator admits documented public or measured reference artefacts.
- External-code or facility validation: matched cases, units, tolerances, and provenance from external tools or shots.
- Deployment qualification: target hardware, interlocks, safety review, operator procedures, and facility sign-off.
Most new work starts at levels 1 or 2. The documentation should make that clear before any stronger language is used.
Choosing a workflow¶
| Goal | Start here |
|---|---|
| Learn the controller API | examples/tutorial_01_closed_loop_control.py |
| Explore differentiable physics | examples/tutorial_02_jax_autodiff.py |
| Evaluate safety certificates | scpn_control.scpn.formal_verification in API Reference |
| Build a replay or validation report | Validation and QA |
| Understand deployment limits | Production Readiness |
| Discuss funding or collaboration | Compute Validation Funding |
What not to assume¶
- A fast local benchmark is not a full control-cycle guarantee.
- A bounded proof is not facility certification.
- A public dataset conversion is not predictive EFIT or P-EFIT validation until the strict admission gate passes.
- A simulator bridge is not a TRANSP, TSC, CODAC, or EPICS acceptance test.
- A neural surrogate is not a substitute for external-code or measured-shot evidence unless the corresponding validator admits that claim.