/FrisPy

Frisbee flight simulator written in Python.

Primary LanguageJupyter NotebookMIT LicenseMIT

TRAVIS COVERALLS LICENSE

FrisPy

Documentation for FrisPy package can be found here on RTD.

This repository contains a physical model for a flying disc. Using this code, one can simulate trajectories of discs with varying initial conditions, while also changing the underlying physical model. This is useful for analyzing the mechanics of a disc in terms of its design, as well as creating simulated throws for things like disc launchers or other helpful tools.

This is a pure Python rebuild of the old FrisPy code, which included a version of the integrator written in C for speed. Find the fast C simulation in the Frisbee_Simulator repository.

The earliest implementation of this model that I could find was by Sara Ann Hummel for their 2003 Masters thesis for UC Davis. You can find the document in full on this page.

Installation

The easiest way to install this package is with pip. The PyPI package can be viewed here.

pip install frispy

For developers

Development should be performed using poetry to handle the development environment. Once poetry is installed, you can install the environment, which will include frispy:

poetry install

All proceeding instructions assume you entered your virtual environment using poetry shell, otherwise prepend poetry run to all instructions.

If you intend to open a pull request, please make sure pre-commit is installed before committing to your branch:

pre-commit install

This will ensure that the code you submit is PEP8 compliant. Otherwise, CI checks will fail before merging can be completed.

Verify your installation by running:

pytest

Please report any problems you encounter on the issues page. Thank you!