Observatory AO System
This is the most representative pipeline in the repository: a high-order single-conjugate adaptive-optics style control chain sized to feel like a real observatory workload.
Representative dimensions
256x256 Shack-Hartmann detector image
32x32 subapertures with 8x8 pixels per tile
2048 measured slope values after flattening
1024 deformable-mirror commands after reconstruction
Pipeline stages
ingest a pre-calibrated synthetic Shack-Hartmann image
compute per-subaperture centroids
flatten the slope cube into a vector
apply a synthetic reconstructor and folded bias term
run a leaky-integrator controller
clip actuator demand to stroke limits
Files
examples/observatory_ao_system/pipeline.yamlexamples/observatory_ao_system/run_example.pyexamples/observatory_ao_system/benchmark_affine_reconstructor.py
Run the example
python examples/observatory_ao_system/run_example.py
Run the benchmark
python examples/observatory_ao_system/benchmark_affine_reconstructor.py --rate-hz 500 --warmup 1 --duration 4
What it demonstrates
a larger realistic graph with several high-value stages
end-to-end verification against local reference calculations
runtime metrics that make it possible to compare stage cost directly
a benchmark path for the affine reconstructor under sustained input rate
Implementation notes
the example is CPU-based for portability
the detector model is synthetic rather than telescope-specific
the affine stage defaults to one OpenBLAS thread per worker to reduce latency jitter
Useful inspection commands
shmpipeline describe examples/observatory_ao_system/pipeline.yaml
shmpipeline-gui examples/observatory_ao_system/pipeline.yaml
When to use it
Use this example when you want to evaluate the package as a system rather than just as a kernel library. It is the best release smoke test for documentation, runtime state, and observability together.