Skip to content

My quest to learn JAX and make an autograd implementation of the Q-Law

License

Notifications You must be signed in to change notification settings

itchono/qlipper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub tag Python 3.9+

qlipper: A Q-Law Implementation in Python

          ___
   ____ _/ (_)___  ____  ___  _____
  / __ `/ / / __ \/ __ \/ _ \/ ___/
 / /_/ / / / /_/ / /_/ /  __/ /
 \__, /_/_/ .___/ .___/\___/_/
   /_/   /_/   /_/

A moderately fast implementation of my solar sail guidance law, QUAIL, developed for my 4th year undergraduate thesis in aerospace engineering.

Extending the research done during my undergrad thesis to greater heights using a more robustly written and well-developed simulator.

Qlipper also represents my quest to learn JAX and make an autograd-based implementation of the Q-Law, as a spiritual successor to Star Sailor.

Project Plans

  • Milestone 1: Mirrored implementation of existing SLyGA repository, except all in Python (DONE)
  • Milestone 2: Getting autograd and jit to work so code becomes fast (DONE)
  • Milestone 3: Expansion of the Q-Law to include 6-element static targeting
  • Milestone 4: Multibody transfers

Showcase

Example transfer from my paper. image image

Install

Python 3.9+ is required.

  1. Clone the repo
  2. cd to repo root
  3. (Optional) Create a virtual environment
  4. Run pip install -e . to install qlipper as a package. This automatically installs required dependencies.

Optional Dependencies

  • pip install -e .[dev] - for unit testing

Tests

Run pytest from the root folder to run tests.

About

My quest to learn JAX and make an autograd implementation of the Q-Law

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages