![Trajectorize Logo](https://raw.githubusercontent.com/itchono/trajectorize/assets/trajectorize_logo.png)
[![PyPi Version](https://img.shields.io/pypi/v/trajectorize?style=for-the-badge)](https://pypi.org/project/trajectorize/)
[![License](https://img.shields.io/github/license/itchono/trajectorize?style=for-the-badge)](https://github.com/itchono/trajectorize/blob/main/LICENSE)
---
KSP Trajectory Optimizer.
This project is a reduced-scope version of [one of my other (currently incomplete) projects](https://github.com/itchono/gravity-assist-flyby-optimizer), as an intermediate stepping stone.
This tool computes trajectories between celestial bodies in KSP based on on-rails two-body patched conics, incorporating trajectory correction maneuvers for a variety of mission scenarios, such as:
* Ballistic Hohmann transfers for other planets
* Gravity assist flyby routes
Computationally-intensive code is implemented in C, with a Python wrapper made using `cffi`.
C code follows mostly C89, with some C99 features used. It has been tested against the latest versions of GCC (on Linux) and MSVC (on Windows 10).
# Installation
The simplest way to install is from PyPI:
`pip install trajectorize`
This will install the latest stable version of the package, and may include pre-compiled binaries for your platform.
The package is still in development, so you may want to install from the latest commit on the `main` branch instead:
Run `pip install git+https://github.com/itchono/trajectorize` to install the package from source.
You will need to have Python 3.8+, and a **C compiler installed** to compile the C code if installing from source. You will also need a C compiler installed if there are no pre-compiled binaries for your platform. If you're on Windows, you can find details about installing a C compiler [here](https://wiki.python.org/moin/WindowsCompilers).
The following platforms/compilers have been tested:
|Platform |Compiler |
|-----------------|-----------|
|Windows 10 | MSVC 14.16 (Visual Studio 2017)|
|Ubuntu 20.04 LTS (Dev Machine) | GCC 9.4.0 |
# Demos
Right now, full functionality is incomplete. There are, however, some cool demos showing off the capabilities of the package.
## Full Model of KSP Planetary System and Ephemerides
`python -m trajectorize.demos.kerbol_system_anim`
![Kerbol System Animation](https://raw.githubusercontent.com/itchono/trajectorize/assets/kerbol_system.gif)
## Calculation of Ballistic Interplanetary Transfers Using Lambert's Problem
`python -m trajectorize.demos.kerbin_duna_transfer`
![Transfer](https://raw.githubusercontent.com/itchono/trajectorize/assets/kerbin_duna_transfer.png)
## Propagation of Two-Body Trajectories Using Universal Keplerian Elements
`python -m trajectorize.demos.orbit`
![Orbit Demo](https://raw.githubusercontent.com/itchono/trajectorize/assets/orbit_universal.png)
## Calculations of Optimal Transfers, Porkchop Plots
`python -m trajectorize.demos.kerbin_duna_porkchop`
![Porkchop](https://raw.githubusercontent.com/itchono/trajectorize/assets/kerbin_duna_porkchop.png)
# Inspirations
* [Interactive illustrated interplanetary guide and calculator for KSP](https://ksp.olex.biz/), by Olex
* [Launch Window Planner](https://alexmoon.github.io/ksp/), by AlexMoon
Raw data
{
"_id": null,
"home_page": "",
"name": "trajectorize",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Mingde Yin <mdsuper@hotmail.com>",
"keywords": "kerbal space program,trajectory,optimization",
"author": "",
"author_email": "Mingde Yin <mdsuper@hotmail.com>",
"download_url": "https://files.pythonhosted.org/packages/68/15/aa2cfcfc7eafe30d7e5226adfac9f5580667aa31d8abfe0cd35d3b70aa68/trajectorize-0.0.8.tar.gz",
"platform": null,
"description": "![Trajectorize Logo](https://raw.githubusercontent.com/itchono/trajectorize/assets/trajectorize_logo.png)\r\n[![PyPi Version](https://img.shields.io/pypi/v/trajectorize?style=for-the-badge)](https://pypi.org/project/trajectorize/)\r\n[![License](https://img.shields.io/github/license/itchono/trajectorize?style=for-the-badge)](https://github.com/itchono/trajectorize/blob/main/LICENSE)\r\n\r\n---\r\n\r\nKSP Trajectory Optimizer.\r\n\r\nThis project is a reduced-scope version of [one of my other (currently incomplete) projects](https://github.com/itchono/gravity-assist-flyby-optimizer), as an intermediate stepping stone.\r\n\r\nThis tool computes trajectories between celestial bodies in KSP based on on-rails two-body patched conics, incorporating trajectory correction maneuvers for a variety of mission scenarios, such as:\r\n\r\n* Ballistic Hohmann transfers for other planets\r\n* Gravity assist flyby routes\r\n\r\nComputationally-intensive code is implemented in C, with a Python wrapper made using `cffi`.\r\nC code follows mostly C89, with some C99 features used. It has been tested against the latest versions of GCC (on Linux) and MSVC (on Windows 10).\r\n\r\n# Installation\r\n\r\nThe simplest way to install is from PyPI:\r\n\r\n`pip install trajectorize`\r\n\r\nThis will install the latest stable version of the package, and may include pre-compiled binaries for your platform.\r\n\r\nThe package is still in development, so you may want to install from the latest commit on the `main` branch instead:\r\n\r\nRun `pip install git+https://github.com/itchono/trajectorize` to install the package from source.\r\n\r\nYou will need to have Python 3.8+, and a **C compiler installed** to compile the C code if installing from source. You will also need a C compiler installed if there are no pre-compiled binaries for your platform. If you're on Windows, you can find details about installing a C compiler [here](https://wiki.python.org/moin/WindowsCompilers).\r\n\r\nThe following platforms/compilers have been tested:\r\n|Platform |Compiler |\r\n|-----------------|-----------|\r\n|Windows 10 | MSVC 14.16 (Visual Studio 2017)|\r\n|Ubuntu 20.04 LTS (Dev Machine) | GCC 9.4.0 |\r\n\r\n# Demos\r\n\r\nRight now, full functionality is incomplete. There are, however, some cool demos showing off the capabilities of the package.\r\n\r\n## Full Model of KSP Planetary System and Ephemerides\r\n\r\n`python -m trajectorize.demos.kerbol_system_anim`\r\n\r\n![Kerbol System Animation](https://raw.githubusercontent.com/itchono/trajectorize/assets/kerbol_system.gif)\r\n\r\n## Calculation of Ballistic Interplanetary Transfers Using Lambert's Problem\r\n\r\n`python -m trajectorize.demos.kerbin_duna_transfer`\r\n\r\n![Transfer](https://raw.githubusercontent.com/itchono/trajectorize/assets/kerbin_duna_transfer.png)\r\n\r\n## Propagation of Two-Body Trajectories Using Universal Keplerian Elements\r\n\r\n`python -m trajectorize.demos.orbit`\r\n\r\n![Orbit Demo](https://raw.githubusercontent.com/itchono/trajectorize/assets/orbit_universal.png)\r\n\r\n## Calculations of Optimal Transfers, Porkchop Plots\r\n\r\n`python -m trajectorize.demos.kerbin_duna_porkchop`\r\n\r\n![Porkchop](https://raw.githubusercontent.com/itchono/trajectorize/assets/kerbin_duna_porkchop.png)\r\n\r\n# Inspirations\r\n\r\n* [Interactive illustrated interplanetary guide and calculator for KSP](https://ksp.olex.biz/), by Olex\r\n* [Launch Window Planner](https://alexmoon.github.io/ksp/), by AlexMoon\r\n",
"bugtrack_url": null,
"license": "LGPLv3",
"summary": "KSP Trajectory Optimization",
"version": "0.0.8",
"split_keywords": [
"kerbal space program",
"trajectory",
"optimization"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "40b67f5dd91f856984fc6c6a68f77116",
"sha256": "0dd783935478b4f359191483c07d0dba0095447270062a486a439147667dc85c"
},
"downloads": -1,
"filename": "trajectorize-0.0.8-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "40b67f5dd91f856984fc6c6a68f77116",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 71063,
"upload_time": "2022-12-30T04:35:40",
"upload_time_iso_8601": "2022-12-30T04:35:40.282178Z",
"url": "https://files.pythonhosted.org/packages/08/8d/d0f11a5474fd6d98998bf8eebd6d6d69173913b798914e2db0ad453de2ff/trajectorize-0.0.8-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "144cb93448c058dd24fed31a4f31d44e",
"sha256": "8e6389369e15f6ce3c3015eed88e1e9e12f52a26e968c8332eeb62fed01e82c0"
},
"downloads": -1,
"filename": "trajectorize-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "144cb93448c058dd24fed31a4f31d44e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 47023,
"upload_time": "2022-12-30T04:35:41",
"upload_time_iso_8601": "2022-12-30T04:35:41.576158Z",
"url": "https://files.pythonhosted.org/packages/68/15/aa2cfcfc7eafe30d7e5226adfac9f5580667aa31d8abfe0cd35d3b70aa68/trajectorize-0.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-30 04:35:41",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "trajectorize"
}