Skip to main content

About Spaceflight Dynamics Framework

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

The project originated as a lunar landing simulation and is now evolving into a broader framework for spaceflight dynamics research, subsystem experimentation, and future autonomous flight applications.

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, and long-term architectural evolution.

The focus is not gameplay, but explicit physical modeling, clean system boundaries, reproducible simulation behavior, and extensible architecture design suitable for future frontend/backend decoupling and research workflows.

The current development milestone focuses on establishing a complete full-state 6DOF-capable simulation architecture as the technical foundation for future spacecraft dynamics research.

Research Platform Overview

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

The current implementation provides a modular translational spacecraft dynamics environment while the software architecture is already prepared for extension toward full rigid-body 6DOF simulation, including attitude dynamics and rotational RCS control.

System Architecture

SDF follows a subsystem-oriented simulation architecture in which user input, command routing, propulsion modeling, physics propagation, telemetry, and visualization are separated.

  • Dynamics: 3D translational spacecraft dynamics with vector-based force aggregation
  • Physics: Modular force models including lunar central-body gravity
  • Propulsion: Multi-engine architecture with Thrust Orchestrator, main engine model, and RCS thruster models
  • Control: Manual and automated command paths using InputMapper, InputArbiter, controller modules, and autopilot logic
  • Configuration: JSON-based spacecraft setup for engines, tanks, mass properties, initial state, and geometry
  • Telemetry: Runtime simulation output for cockpit visualization, debugging, export, and future research workflows
  • Frontend: Qt-based cockpit interface for real-time 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, fuel consumption, and vectorized thrust aggregation.

The current propulsion system separates command input, actuator state, and resulting physical force:

  • Main Engine: Scalar thrust model with dynamic response, target tracking, thrust direction, and fuel consumption
  • RCS Thrusters: Individual binary actuator models with command delay, first-order rise and decay dynamics, scalar thrust output, and propellant consumption
  • RCSControlAllocator: Axis-based command allocation from translational RCS vector commands to individual thruster commands
  • Fuel System: Multi-tank support with tank assignment and engine-specific mass-flow computation
  • Telemetry: Engine-level RCS state export for cockpit visualization and future analysis workflows

This design allows the main engine and RCS thrusters to be modeled independently while still 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 RCS Control: Translational axis commands mapped to individual RCS thrusters through the allocator

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 data is collected into structured simulation and telemetry containers. The current frontend still uses some backend data structures, but this is a transitional state.

The next architectural step is the introduction of a dedicated mapping layer that translates backend domain data into frontend-facing telemetry DTOs. This prepares the system for a future ROS-based interface where the frontend can be replaced without changing backend simulation logic.

Current Development Status

Current development status: Pre-release Development Build
Active milestone: M1 - Full 6DOF Simulation

  • 3D translational spacecraft dynamics implemented
  • Vectorized thrust aggregation implemented
  • Multi-engine propulsion architecture implemented
  • Main engine model with dynamic response implemented
  • Individual RCS thruster model implemented
  • RCS command allocation from axis commands to individual thrusters implemented
  • Multi-tank fuel system implemented
  • JSON-based spacecraft configuration system implemented
  • Qt cockpit telemetry for main engine, RCS activity, fuel, state, and navigation data
  • Adaptive descent guidance for automated landing
  • Preparation for DTO mapping, telemetry export, ROS interface, and future 6-DOF dynamics

Release Strategy

SDF is currently under active pre-release development. The project has not yet published a formal release version. Current work is focused on completing the first major architectural milestone: M1 - Full 6DOF Simulation.

The planned research release line will introduce a more stable public project baseline, clearer frontend/backend boundaries, improved telemetry interfaces, and a stronger foundation for reproducible simulation studies.

  • Current state: Pre-release development build
  • Active milestone: M1 - Full 6DOF Simulation
  • Planned release line: v0.2 - SDF Research Release
  • Strategic direction: From lunar landing simulation toward a reusable spaceflight dynamics research framework

Goals and Vision

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

  • Extension toward full 6-DOF rigid-body spacecraft dynamics
  • Rotational RCS control and attitude stabilization
  • ROS-based frontend/backend decoupling
  • Telemetry export for reproducible analysis and post-processing
  • Scenario-based autonomous landing research campaigns
  • Advanced guidance, control, and optimization methods
  • 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 demo.