Skip to content

space-bass/orbitx

 
 

Repository files navigation

OrbitX

The Jupiter system, showing Io, Europa, Ganymede, and Callisto orbiting Jupiter

This project re-implements the central server and astronaut flight software for Dr. Magwood's 'Orbit' suite of software written for OCESS.

For a guide on if and how you should contribute, read CONTRIBUTING.md
For a guide on how to set up your text editor to edit code, read DEVELOPING.md
For a guide on how the actual OrbitX codebase is structured, read ARCHITECTURE.md

This project is maintained by

  • Patrick
  • Ye Qin
  • Sean

As part of CS493 and CS494, a final year project course at Waterloo.

First Time Contributors

If your a first-time contributor to OrbitX, take a look at CONTRIBUTING.md, especially if you don't recognize the git clone command in the Project Setup section. The CONTRIBUTING.md has helpful tips for first-time contributors.

Project Setup

If you run into any issues during setup, feel free to email me, patrick.melanstone on gmail. For step-by-step explanations of these instructions, read CONTRIBUTING.md.

It's recommended you develop and run in a virtualenv. Setup is as follows:

First, fork your own copy of orbitx on GitHub (you'll need a GitHub account for this). See below for windows-specific changes. Then,

git clone https://github.com/your-github-username/orbitx
cd orbitx
python3 -m venv venv # or however you can create a python3 virtualenv
source venv/bin/activate
pip install --upgrade pip # not required, but a good idea
cd orbitx
make install # installs packages in requirements.txt, make sure you've activated your venv!

If you're on windows, replace source venv/bin/activate with Scripts\Activate.bat on cmd, or Scripts\Activate.ps1 if you know you're running powershell. Also you'll have to just run the make commands manually, by running cat Makefile and copying the command you want.

And when you want to restart development, just do:

cd orbitx
source venv/bin/activate

Building

This project is mostly python, which does not require you to build a new binary after making changes to .py files. However, making changes to the orbitx.proto file requires building your changes. The file orbitx/Makefile will let you do the following commands in orbitx/:

make build    # run this when you make a change to orbitx.proto
make install  # run this once, to set up this project
make format   # run this to automatically format code

Running

orbitx.py Is an executable python script. Run python orbitx.py --help for the CLI args, or just run python orbitx.py for a graphical launcher.

If you get errors, make sure you have the pip packages in requirements.txt installed. If the setup instructions completed without errors, this is as easy as running source bin/activate.

Project Structure

Read ARCHITECTURE.md for a description of OrbitX's architecture.

Screens

The most recent iteration of the OrbitX GUI

The entire solar system, with circle segments showing the paths of planets

The Jupiter system, with sinusoidal paths of Jovian moons around Jupiter

The Jupiter system, showing Io, Europa, Ganymede, and Callisto orbiting Jupiter

A representation of the new habitat design

About

Re-implementation of orbit as part of UW's CS493/494 project course

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.6%
  • HTML 1.5%
  • Other 0.9%