Vulcan is an aerospace engineering utilities library that provides model-agnostic simulation utilities for coordinate systems, atmospheric models, gravity models, and more. Built on the Janus math library, Vulcan utilities work seamlessly in both numeric and symbolic computational modes.
vulcan/
โโโ docs/
โ โโโ implementation_plans/ # Design documents
โ โโโ user_guides/ # Module documentation
โโโ examples/
โ โโโ aerodynamics/ # Aero calculations demo
โ โโโ atmosphere/ # Atmospheric model usage
โ โโโ coordinates/ # Coordinate frame transformations
โ โโโ dynamics/ # Dynamics demo
โ โโโ environment/ # Space environment
โ โโโ geodetic/ # Geodetic conversions
โ โโโ geometry/ # Geometric primitives
โ โโโ gravity/ # Gravity models demo
โ โโโ intro/ # Getting started
โ โโโ io/ # HDF5 and telemetry I/O
โ โโโ mass/ # Mass properties, aggregation, inertia
โ โโโ orbital/ # Orbital mechanics & optimization
โ โโโ propulsion/ # Propulsion models demo
โ โโโ rotations/ # Rotation and attitude examples
โ โโโ sensors/ # Sensor noise simulation
โ โโโ time/ # Time systems and Julian dates
โ โโโ transfer_functions/ # Transfer functions demo
โ โโโ wind/ # Wind model optimization
โโโ include/vulcan/
โ โโโ aerodynamics/ # Dynamic pressure, Mach, Reynolds, AoA
โ โโโ atmosphere/ # US76, Exponential atmosphere
โ โโโ coordinates/ # ECEF, LLA, NED, body frames
โ โโโ core/ # Types, constants, interpolation
โ โโโ environment/ # Space environment utilities
โ โโโ estimation/ # Kalman filters (Linear, EKF, UKF)
โ โโโ geodetic/ # Geodesic utils
โ โโโ geometry/ # Geometric primitives
โ โโโ gravity/ # Point mass, J2/J4, spherical harmonics
โ โโโ io/ # HDF5, CSV, Signal, Telemetry
โ โโโ dynamics/ # 6DOF, point mass, guided, oscillators, slosh
โ โโโ mass/ # Mass properties, aggregation, inertia
โ โโโ orbital/ # Keplerian, anomaly, ephemeris
โ โโโ propulsion/ # Rocket, electric, air-breathing
โ โโโ rng/ # Random number generation
โ โโโ rotations/ # Quaternions, Euler, DCM, axis-angle
โ โโโ sensors/ # Noise models (Allan variance, etc.)
โ โโโ time/ # GPS, UTC, TAI, TT, TDB, Julian dates
โ โโโ transfer_functions/ # Dynamics, discretization, PID
โ โโโ wind/ # Shear profiles, Dryden, von Kรกrmรกn
โ โโโ vulcan.hpp # Main umbrella header
โโโ scripts/ # Build, test, and dev utilities
โโโ tests/ # GoogleTest suite mirroring include/
โโโ reference/ # Reference data and lookups
Vulcan follows Janus's dual-backend design. All models are templated on a Scalar type:
This design is critical for symbolic optimization, where the entire simulation must be unrolled into a single computational graph without side effects.
MIT License - See [LICENSE](LICENSE) for details.