APSIS is an interpreted domain-specific programming language designed specifically for scientific computing, celestial mechanics, orbital dynamics, and numerical analysis.
- Built-in Astrodynamics Engine: First-class support for state vector propagation, orbital element conversion (Keplerian, Cartesian), and trajectory calculations.
- Scientific Unit Aware: Built-in handling for units and dimensional analysis.
- Linear Algebra & Numerics: Fast vector/matrix operations and numerical integration methods.
- Python-like CLI: Execute scripts seamlessly from anywhere on your machine using
apsis <script.jdx>.
-
Clone or download this repository to your computer:
git clone https://github.com/Jits-Doomen/Apsis.git cd Apsis -
Run the automated installer:
- Double-click
installer.bat, or run it from your command prompt:.\installer.bat
- Double-click
-
Restart your terminal or reload your environment variables:
# In PowerShell (or simply close and reopen your terminal) $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
-
Verify installation:
apsis
- CMake (v3.16 or higher)
- C++20 Compliant Compiler (MSVC, GCC, or Clang)
# 1. Clone repository
git clone https://github.com/Jits-Doomen/Apsis.git
cd Apsis
# 2. Configure build system
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
# 3. Compile project
cmake --build build --config ReleaseThe compiled binary will be generated at build/Release/apsis.exe.
Run any .jdx script directly from any directory:
apsis path/to/script.jdx// Calculate circular orbital velocity at 400 km (~248,548 miles) LEO
var R_earth = 6378.137;
var altitude = 400.0;
var mu_earth = 398600.4418;
var r = R_earth + altitude;
var v = sqrt(mu_earth / r);
print("Orbital Radius: " + r + " km");
print("Circular Velocity: " + v + " km/s");
Run it:
apsis orbit_demo.jdxApsis/
├── include/ # Public C++ header files (.hpp)
│ └── apsis/ # Language interpreter & core math headers
├── src/ # Source implementation files (.cpp)
├── packages/ # Physics, astrodynamics, and ephemerides modules
├── examples/ # Sample .jdx scripts
├── CMakeLists.txt # Primary CMake build configuration
├── installer.bat # One-click Windows installer script
└── README.md # Project documentation
Contributions are welcome! If you find a bug or want to add a feature:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/yourchange). - Commit your changes (
git commit -m 'Add new (insert your change here)'). - Push to the branch (
git push origin feature/yourchange). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.