/epicycler

Create epicycle animations.

Primary LanguagePython

epicycler

CircleCI codecov Code style: black PyPi Version GitHub stars

circles

Epicylces have been used for millenia to describe the motion of planets; even Copernicus still used them. They got out of fashion when Kepler thought about ellipses, but one can still fool around with epicycles a bit. See mathologer's awesome video about it (which in fact motivated this little package).

Installation

epicycler is available from the Python Package Index, so simply type

pip install -U epicycler

to install or upgrade.

Create animations from polygons

Given a number of 2D polygonal points, epicycler creates nice animations. For example, the above is created with

epicycler-poly \
  0.0 0.0 \
  1.0 0.0 \
  1.0 2.0 \
  -0.5 1.1 \
  -0.5 2.1 \
  --xylim -1.5 +2.0 -1.3 3.0

See

epicycler-poly -h

for more options.

Create animations from image files

seagull

Given a (small) linedrawing image file like the above seagull, epicycler can create an animation from it

epicycler-image in.png -c 0.5

Use the -c option for reducing the number of circles by cutting off those smaller than the given threshold radius; notice then how the polygon points are not followed exactly:

seagull-gif

Creating a GIF

ffmpeg -i out.mp4 -r 10 'frame-%03d.png'
convert -delay 5 -loop 0 frame-*.png out.gif

Testing

To run the epicycler unit tests, check out this repository and type

pytest

Distribution

To create a new release

  1. bump the __version__ number,

  2. publish to PyPi and GitHub:

    make publish
    

License

epicycler is published under the MIT license.