Skip to content

ButteredFire/Astrocelerate

Repository files navigation

Note

Đây là bản README tiếng Anh. Vui lòng đọc bản tiếng Việt tại đây.

Logo

Copyright © 2024-2025 Dương Duy Nhật Minh, D.B.A. Oriviet Aerospace.


Join our communities!

Reddit Discord

Table of Contents


About Astrocelerate

Astrocelerate is Vietnam’s first high-performance orbital mechanics and spaceflight simulation engine, designed from the ground up to serve as a sovereign alternative to foreign aerospace software.

Goal

Developed in C++ with a Vulkan-based graphics pipeline and custom ECS architecture, Astrocelerate is engineered for real-time, physically accurate visualizations of satellite kinematics, launch trajectories, and maneuver simulations. But beyond technical performance, Astrocelerate stands for something far greater:

The assertion that world-class aerospace tools can emerge from within Vietnam, built not by legacy contractors, but by a new generation of engineers who refuse to wait for permission.

Its mission is to empower academic institutions, disaster-response planners, space technologists, and national defense researchers with a transparent, extensible, and self-owned simulation platform. But more than that, it represents technological sovereignty in a domain long dominated by external systems.

Powered by Oriviet Aerospace. Grounded in Vietnam. Engineered for the stars.

Vision

Short-term vision (MVP)

The short term vision of Astrocelerate is to create a Minimum-Viable Product (MVP) that satisfies core features. Specifically, the MVP must be able to achieve these minima:

  • Accurate real-time and interactive visualizations demonstrating simple scenarios (e.g., Earth-satellite orbit, basic maneuver simulation, the "launch, enter orbit, stage separation, re-entry, recovery" sequence)
  • A clean, polished GUI (planned to be made with Dear ImGui)
  • An Entity-Component-System (ECS)-based design

Design philosophy

Astrocelerate's design philosophy takes inspiration from that of the Unity game engine and the GMAT spaceflight simulation engine. These principles are subject to change over time, as Astrocelerate (and I) become more mature.

Core design principles Description
Open-source Astrocelerate aims to be transparent and thrives on community feedback, modification, and extension. Therefore, to maximize contribution and growth, it is decided that the engine should be open-source.
ECS-based, Modular & Extensible Architecture Astrocelerate is structured to allow flexibility and modularity, allowing users to set up and develop their own environments, objects, gravity, etc. with built-in, third-party, and custom "modules". This is part of Astrocelerate's integration of Entity-Component-System principles.

Astrocelerate is built to allow third-party plug-ins and extensions, enabling researchers to integrate new models or solvers.
Non-proprietary scripting language Astrocelerate allows users to program their own modules and override built-in counterparts with C++.
Support for real missions Astrocelerate can be used for operational mission planning (e.g., lunar and interplanetary transfers, spacecraft launch-and-recovery procedures).

Features

Currently implemented

  • Real-time orbital propagation
  • Accurate 2-body simulation
  • Configurable physics time step
  • Reference frame system with fixed simulation scaling (maintains physical accuracy across polarized scales)
  • Custom ECS-based architecture with sparse-set storage (allows for performant simulation and efficient data flow between the GUI and backend)
  • Live telemetry data, console, etc.; Tweakable simulation settings
  • Offscreen rendering (allows for custom viewports, post-processing, etc.)
  • N-body simulation capabilities
  • A more advanced model loader, with better, correctly mapped textures and visual fidelity
  • Solvers, coordinate systems, epochs

Near-future plans

  • Swappable numerical integrators (Symplectic Euler, RK4)
  • Data-caching in ECS for even more performance
  • Compute shaders and the offloading of parallelizable processes to the GPU
  • Dynamic scaling for seamless transitions (e.g., from terrain to planet)
  • A more diverse range of numerical integration methods (Verlet, Simpson's Rule, Gaussian quadrature)
  • C++ scripting to allow for user-created simulations
  • Serialization of GUI and simulation data, with basic exporting capabilities

Installation

Warning

Astrocelerate has only been tested on Windows, although the application aims to be cross-platform-compatible.

Prerequisites

  • Vulkan SDK (Vulkan 1.2+)
  • CSPICE Toolkit N0067
  • Vcpkg dependency manager
  • CMake 3.30+
  • Python 3.9+
  • C++20

Bootstrapping

  • Open CMakePresets.json and configure environment variables for both Debug and Release builds (like SPICE_ROOT_DIR) to their appropriate paths.
  • Run SetupDebug.* to set up a Debug configuration, or SetupRelease.* to set up a Release configuration, according to your operating system.
  • Alternatively, you can manually run GenerateDirectories.bat to ensure file discovery is up-to-date, then run scripts/Bootstrap.py and follow on-screen instructions.

History

Astrocelerate made its first commit on November 28th, 2024. As of July 10th, 2025, it has been in development for 7 months:

  • Legacy engine (OpenGL): 2 months
  • Current engine (Vulkan): 5 months

Screenshots

The following screenshots document the development of Astrocelerate.

16/08/2025

2025-08-16

25/07/2025

2025-07-25 2025-07-25

10/07/2025

2025-07-10

03/07/2025

2025-07-03

21/06 - 22/06/2025

2025-06-22 2025-06-21

08/06/2025

2025-06-08

03/06/2025

2025-06-03 2025-06-03

20/05 - 21/05/2025

2025-05-21 2025-05-20

16/05/2025

2025-05-16

14/05/2025

2025-05-14

04/05/2025

2025-05-04

01/04/2025

2025-04-01

17/03/2025

2025-03-17

09/12/2024 (Legacy Astrocelerate)

2024-12-09

About

C++/Vulkan simulation engine

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published