open-space-toolkit
open-space-toolkit copied to clipboard
Collection of versatile software libraries for space engineering applications.
Open Space Toolkit
The Open Space Toolkit (OSTk) is a collection of versatile libraries for aerospace engineering use, available in:
- C++ – the reference implementation, for portability and performance.
- Python – via C++ bindings, formidable for interactive use and prototyping.
Getting Started
Want to get started? This is the simplest and quickest way:
This will automatically start a JupyterLab environment in your web browser with Open Space Toolkit libraries and example notebooks ready to use. Nothing to download or install! 🚀
Local JupyterLab in Docker
Alternatively, you can run a pre-installed OSTk environment on your local machine. This process has the following requirements:
The following commands will start a JupyterLab server within a Docker container where the OSTk components are already installed:
# clone this repo
git clone https://github.com/open-space-collective/open-space-toolkit.git && cd open-space-toolkit
# Run the jupyter server inside of Docker
make run-jupyter
Once the container is running, access http://localhost:8888/lab and create a Python 3 Notebook.
Components
Name | Description | Version |
---|---|---|
Core | Fundamental types, containers and utilities. | |
I/O | Addressing, networking, database connectors. | |
Mathematics | Geometry, curve fitting, optimization. | |
Physics | Physical units, time, reference frames, environment modeling. | |
Astrodynamics | Orbit, attitude, access. |
Support
- Use Cases
- Frequently Asked Questions
Using OSTk in your applications
To help jump-start using OSTk, here is a simple Docker image that you can use to create your applications.
Docker
ARG PYTHON_BASE_VERSION="3.11"
# Open Space Toolkit install image
FROM mcr.microsoft.com/vscode/devcontainers/python:${PYTHON_BASE_VERSION}
ARG OSTK_DATA_LOCAL_CACHE="/var/cache/open-space-toolkit-data"
## Install OSTk data install dependencies
RUN apt-get update && \
apt-get install -y git-lfs && \
rm -rf /var/lib/apt/lists/*
## Seed OSTk Data
ENV OSTK_PHYSICS_DATA_LOCAL_REPOSITORY="${OSTK_DATA_LOCAL_CACHE}/data"
RUN git clone \
--branch=v1 \
--single-branch \
--depth=1 \
https://github.com/open-space-collective/open-space-toolkit-data.git ${OSTK_DATA_LOCAL_CACHE} && \
chmod -R g+w ${OSTK_DATA_LOCAL_CACHE}
## Update user id and group id with local ones
ARG USERNAME="vscode"
ARG USER_UID="1000"
ARG USER_GID=${USER_UID}
RUN sudo groupmod --gid ${USER_GID} ${USERNAME} && \
sudo usermod --uid ${USER_UID} --gid ${USER_GID} ${USERNAME}
USER ${USERNAME}
## Install dependencies
COPY --chown=${USER_UID}:${USER_GID} pyproject.toml /home/${USERNAME}/tmp/
RUN cd /home/${USERNAME}/tmp/ && \
pip --no-cache-dir install --user .[dev] && \
rm -rf /home/${USERNAME}/tmp/
## Change default entrypoint to bin/zsh
ENTRYPOINT ["/bin/zsh"]
## Change default entrypoint folder to /app
WORKDIR /app
pyproject.toml
And an accompanying pyproject.toml
file that should be in the same folder.
[project]
name = "my-app"
requires-python = ">=3.11"
dynamic = ["version"]
dependencies = [
"open-space-toolkit-simulation~=X.Y.Z",
]
[project.optional-dependencies]
dev = [
# Development libraries
"ipython~=8.24",
]
Build and Run
You can then build the Docker image via:
docker build . -t my-app
docker run -it --rm my-app
Enjoy!
Contributing
Contributions are more than welcome!
Please read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test the code.
Special Thanks
License
Apache License 2.0