Skip to main content

About Spaceflight Dynamics Framework

Spaceflight Dynamics Framework (SDF) is an open-source modular C++ simulation framework for spacecraft dynamics, propulsion modeling, guidance, control development, telemetry, and aerospace simulation research.

The project originated as an autonomous lunar landing simulation and has since evolved into a broader framework for spacecraft dynamics, subsystem experimentation, control-system development, and future research-oriented simulation workflows.

SDF follows an open engineering philosophy focused on transparency, modularity, reproducibility, and collaborative development. The project is intended to provide a technically accessible platform for experimentation, learning, contribution, model validation, and long-term architectural evolution.

The focus is not gameplay, but explicit physical modeling, well-defined system boundaries, reproducible simulation behavior, and an extensible software architecture suitable for real-time simulation and future scientific analysis.

The current development milestone establishes the complete 6DoF Core Simulation, including translational and rotational rigid-body dynamics, force and torque propagation, angular-velocity integration, and quaternion-based spacecraft attitude. The remaining milestone work focuses on systematic physical and numerical verification of the complete motion pipeline.

Research Platform Overview

The backend is implemented as a modular C++ simulation core with separated subsystems for dynamics, propulsion, control, automation, sensing, configuration, numerical integration, optimization, coordinate transformation, and telemetry.

The current implementation provides a complete rigid-body 6DoF spacecraft dynamics pipeline. Translational and rotational motion are evaluated through separate physical models while sharing a common numerical integration architecture.

The rotational simulation includes torque generation, torque aggregation, spacecraft inertia, Euler rigid-body dynamics, angular velocity propagation, and quaternion-based attitude kinematics.

System Architecture

SDF follows a subsystem-oriented simulation architecture in which user input, command routing, propulsion modeling, physical state propagation, telemetry generation, and visualization are separated through explicit interfaces.

  • Dynamics: Full rigid-body 6DoF spacecraft dynamics including translational and rotational state propagation
  • Physics: Modular translational and rotational physics models including lunar central-body gravity and Euler rigid-body rotational dynamics
  • Propulsion: Multi-engine architecture with Thrust Orchestrator, main engine model, individual RCS thruster models, force aggregation, and torque generation
  • Control: Manual and automated command paths using InputMapper, InputArbiter, controller modules, and autopilot logic
  • Configuration: JSON-based spacecraft setup for engines, tanks, mass properties, inertia tensor, initial state, actuator geometry, and mission parameters
  • Telemetry: Explicit telemetry DTOs and mapping between backend domain state and frontend visualization
  • Coordinate Transformation: Dedicated transformation architecture for spacecraft, local, lunar-fixed, and inertial reference frames
  • Frontend: Qt-based cockpit interface for real-time telemetry visualization and operator interaction

Propulsion System

The propulsion subsystem is built around a centralized Thrust Orchestrator. It manages multiple engines, fuel tanks, engine-specific runtime states, command forwarding, actuator updates, fuel consumption, and aggregation of the resulting body-fixed forces and torques.

The propulsion architecture separates command input, actuator state, force generation, and resulting rotational moments:

  • Main Engine: Scalar thrust model with dynamic response, target tracking, thrust direction, fuel consumption, and propulsion-induced torque representation
  • RCS Thrusters: Individual binary actuator models with command delay, first-order rise and decay dynamics, scalar thrust output, mounting position, thrust direction, torque generation, and propellant consumption
  • RCSControlAllocator: Axis-based allocation from translational RCS commands to individual thruster commands
  • Force and Torque Aggregation: Individual propulsion outputs are combined into total body-fixed force and torque vectors for use by the 6DoF dynamics pipeline
  • Fuel System: Multi-tank support with tank assignment and engine-specific mass-flow computation
  • Telemetry: Engine-level state export for cockpit visualization, debugging, and future analysis workflows

This design allows main engines and RCS thrusters to be modeled independently while exposing a unified propulsion interface to the spacecraft dynamics layer.

Guidance and Control

SDF supports both manual and automated control paths through a modular command-routing and control architecture. Operator input is processed in the frontend through the InputMapper, transferred as a structured flight command, and routed through the simulation backend.

The current control stack includes:

  • Adaptive Descent Controller: Energy-based landing guidance with brake-ratio-based mode switching
  • PD Velocity Control: Gravity-compensated velocity tracking with thrust saturation handling
  • InputArbiter: Separation and arbitration between manual and automated control commands
  • Manual Translational RCS Control: Body-axis translation commands mapped to individual RCS thrusters through the allocator

Dedicated RCS-based attitude control is the next propulsion-control extension. Future rotational RCS allocation will provide commanded roll, pitch, and yaw authority through physically modeled thruster combinations rather than artificial torque inputs.

Configuration and Data Flow

Spacecraft are defined using external JSON configuration files. These definitions include mass properties, inertia values, initial state, fuel tanks, main engines, RCS thrusters, thrust directions, mounting positions, and engine-to-tank assignments.

Runtime simulation state remains internal to the backend. Frontend-facing telemetry is exposed through dedicated DTOs instead of directly exposing backend domain structures.

The TelemetryMapper translates the authoritative backend spacecraft state into frontend-facing telemetry structures. This establishes a stable communication boundary between the simulation engine and cockpit frontend and provides the architectural basis for future transport mechanisms such as ROS2.

The current 6DoF state includes translational quantities together with angular velocity and quaternion-based spacecraft attitude. The cockpit frontend is being adapted to visualize these additional rotational state variables.

Current Development Status

Current development status: Pre-release Development Build
Active milestone: M1 - 6DoF Core Simulation

  • Three-dimensional translational spacecraft dynamics implemented
  • Three-axis rigid-body rotational dynamics implemented
  • Euler rigid-body equations including gyroscopic coupling implemented
  • Spacecraft inertia tensor integrated into rotational dynamics
  • Angular velocity propagation implemented
  • Quaternion-based attitude propagation implemented
  • Force and torque aggregation implemented
  • Multi-engine propulsion architecture implemented
  • Main engine model with dynamic response implemented
  • Individual RCS thruster model implemented
  • Translational RCS command allocation implemented
  • Multi-tank fuel system implemented
  • JSON-based spacecraft configuration system implemented
  • Telemetry DTO and TelemetryMapper architecture implemented
  • Qt cockpit telemetry and operator interface implemented
  • Adaptive descent guidance for automated landing implemented
  • Systematic 6DoF physics verification pending as the M1 exit criterion
  • Cockpit adaptation to rotational state currently planned
  • Dedicated RCS attitude-control development planned

Release Strategy

SDF is currently under active pre-release development. The project has not yet published a formal stable release. Current work is focused on completing and validating the first major technical milestone: M1 - 6DoF Core Simulation.

Completion of M1 requires systematic verification of the complete translational and rotational motion pipeline, including coordinate transformations, force and torque signs, numerical propagation, quaternion attitude behavior, and physical plausibility.

After this verification baseline, development can proceed toward a lightweight public SDF release and subsequently toward research-oriented extensions such as advanced numerical integration, telemetry analysis, controller benchmarking, and additional physical models.

  • Current state: Pre-release development build
  • Active milestone: M1 - 6DoF Core Simulation
  • Current milestone exit criterion: Complete physical and numerical verification of the 6DoF motion pipeline
  • Strategic direction: From autonomous lunar landing simulation toward a reusable spacecraft dynamics framework

Goals and Vision

The long-term objective of SDF is to evolve into a flexible and extensible spaceflight dynamics framework supporting spacecraft simulation, guidance research, telemetry workflows, control-system experimentation, model validation, and future distributed simulation architectures.

  • Systematic verification and validation of the 6DoF simulation core
  • Dedicated rotational RCS control and attitude stabilization
  • Advanced spacecraft guidance and control algorithms
  • Higher-order numerical integration methods
  • Extended environmental and disturbance models
  • ROS2-based external communication and integration
  • Telemetry export for reproducible analysis and post-processing
  • Controller benchmarking and simulation comparison workflows
  • Scenario-based autonomous landing research campaigns
  • Support for broader mission phases including deorbit, descent, landing, orbital transfer, and multi-body scenarios

The project is intended to provide a technically robust and extensible simulation environment rather than a fixed single-scenario demonstration.