Giter Club home page Giter Club logo

orbitx's Introduction

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
  • Stefan De Young

Furthermore, OCESS and UWaterloo CS494 members have contribued:

  • Ye Qin
  • Sean
  • Stefano DeYoung
  • Cesare Corazza
  • Jamie Tait
  • Jonah Hamer-Wilson
  • Calum Wheaton

First Time Contributors

If you're 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.

If you get an error referencing "Microsoft Visual C++ Build Tools", especially when installing yappi, install the build tools (choose Windows 10 SDK and C++ x64/x86 build tools in the installer).

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

orbitx's People

Contributors

pmelanson avatar xxxyyyqqq12345 avatar sh32kim avatar jonahhw avatar pugzilla88 avatar spoopidy avatar stefandeyoung avatar goodday0404 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.