This directory contains examples demonstrating high-assurance avionics software patterns using the deep_causality framework. These examples focus on Safety Critical Systems, Guidance, Navigation & Control (GNC), and Autonomous Interventions.
Run any example from the repository root:
cargo run -p avionics_examples --example <example_name>| Example | Domain | Description |
|---|---|---|
| magnav | Navigation | Magnetic Navigation using Causal Particle Filters (Bayesian estimation) |
| geometric_tcas | Collision Avoidance | NextGen TCAS using Geometric Algebra collision detection and Intervenable safety interlocks |
| hypersonic_2t | Defense/Tracking | Tracking Hypersonic Glide Vehicles (HGV) using Dual-Time (2T) Physics in 6D phase space |
See also: physics_examples for more Geometric Algebra applications.
The geometric_tcas example demonstrates the Closed Loop Intervention pattern. Instead of relying on ad-hoc conditional logic for safety overrides (e.g., auto-pilot engagement), it uses the formal Intervenable trait (Pearl's Layer 2).
// Formal Computational Intervention
let safe_state = effect.intervene(new_vector);This separates the Natural History (pilot did nothing) from the Forced History (auto-pilot took over), providing a rigorous audit trail for "Black Box" recorders.
Both geometric_tcas and hypersonic_2t leverage Geometric Algebra (deep_causality_multivector) to solve dynamics without singular coordinate systems (like Euler angles).
- TCAS: Uses Bivector magnitude $ |P \wedge V| $ to calculate impact parameters directly.
- Hypersonic: Uses Conformal Geometric Algebra (CGA) or 6D phase space to linearize complex orbital/hypersonic trajectories.
| Crate | Purpose |
|---|---|
deep_causality_core |
Causal Monads (PropagatingEffect, Intervenable) for safety logic |
deep_causality_multivector |
Geometric Algebra for kinematics and relativistic physics |
deep_causality_tensor |
Tensor operations for map-based navigation |
- Create directory:
examples/<your_example>/ - Add
main.rswith doc comments (//!module docs) - Add
README.mdfollowing the standard template - Register in
Cargo.toml:[[example]] name = "your_example" path = "examples/your_example/main.rs"