The goal of this project is to create an open source, modular control interface for taking time lapse grid panoramas.

This project is open source but please contact us before using the code so we can know who is using it and please make sure to link back here in any code you use. This project is in active development but we are happy to work with other groups to develop new features so drop us a line if you are interested.


Currently supported and maintained:
  • Captures to JPEG & CR2 (RAW) images if using a DSLR, JPEG & TIF if using the Raspberry Pi camera module or an IP camera.
  • Has been tested with the AXIS Q6034-E, and a J-Systems Pan Tilt.
  • Tested with Canons (600D, 700D, 70D) but not extensively. Should work with Nikon cameras but not tested at all.
  • Resume function if panorama was interrupted and restarted within a time interval.
  • Captured photos are captured to ram, cached locally and then uploaded to a server of your choice via sftp or ftp.
  • Wifi and ethernet. Creates an ad-hoc wifi network no know network is found for easier config of new systems and in new wifi environments.
  • Ansible provisioning for Raspberry Pis control systems running Arch Linux.
Planned or in development:
  • DB-based camera management system
  • Cameras settings web interface
  • On device stitching and blending
  • Focal stacks
  • HDR


  • python3.5
  • python-cffi
  • gphoto2
  • libgphoto2
  • exiv2
  • opencv 3.1 [Arch-Extra]
  • tor (optional)

Extra Details§

If you are capturing using a Raspberry Pi camera or an IP camera you need to install py3exiv2 if you want your images to have exif data, as the method of capture doesn’t add exif data.

Camera name is determined by the value in the configuration file. The Ansible playbook that is provided automatically enables a service that starts a configuration file matching the hostname.