trajectorize


Nametrajectorize JSON
Version 0.0.8 PyPI version JSON
download
home_page
SummaryKSP Trajectory Optimization
upload_time2022-12-30 04:35:41
maintainer
docs_urlNone
author
requires_python>=3.8
licenseLGPLv3
keywords kerbal space program trajectory optimization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![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"
}
        
Elapsed time: 0.14194s