Skip to main content

Firefly

PyPI ascl:1810.021

logo banner

Firefly is an interactive viewer for any particle-based data. A live example is available here or if you're ready to get started creating your own interactive viewer, click here.

If you use Firefly, please cite our ApJS paper and our entry in the Astrophysics Source Code Library (ASCL).

Additional Docs

Comprehensive documentation is available here.

Keeping a Deployment Copy in Sync

If you host Firefly on a server from your own repository — a fork of this one carrying site-specific settings, data and launch scripts — keep it as a fork and merge from here, rather than copying files across. A copy script has to overwrite everything from upstream while preserving your local edits; that is exactly what a merge already does, and it does it correctly.

Run the merge on your own machine. The server only ever pulls.

One-time setup, in your local clone of the deployment repository:

git remote add upstream https://github.com/ageller/Firefly.git
git fetch upstream

If that repository was ever cloned on Windows it may have CRLF line endings committed, which makes every line of a file look modified and turns every merge into a conflict. Fix it once, before the first merge, by copying this repository's .gitattributes into yours and running:

git add --renormalize .
git commit -m "normalize line endings to LF"

To pick up a new Firefly release, still in your local clone of the deployment repository:

git checkout -b sync-upstream     # work on a branch, not on the default one
git fetch upstream
git merge upstream/main           # resolve any conflicts, then commit

Test locally, then merge the branch into your default branch and push it.

git checkout main
git merge --ff-only sync-upstream
git push origin main

On the server, in the deployment repository:

git pull

then restart whatever serves the app (for example, the gunicorn service).

Keeping the merges painless

Merges stay clean for as long as your customizations live in files this repository never touches. Some ways to arrange that:

  • Put site-specific choices in your dataset's settings .json instead of in code. GUI panels can be hidden with GUIExcludeList, a list of GUI paths such as "main/general/data/loadNewData", so hiding a control needs no source change.
  • To add markup to the <head> of every page — an analytics tag, extra meta tags — drop a templates/_extra_head.html into your repository. Every template already includes it if it exists, so you never have to edit the shared templates.
  • If the instance is exposed on the open internet, run it in public mode: set FIREFLY_PUBLIC=1 in the server's environment (this is the one that works under gunicorn/wsgi) or pass --public to the firefly command. That refuses the endpoints which accept data or settings for a live viewer session, and keeps a single fixed room so visitors are never prompted for a session name.
  • Keep server-specific launch scripts in their own files.
  • Leave packaged files you don't need in place rather than deleting them; deletions become modify/delete conflicts every time upstream edits them.

Contributors

Primary Developers

  • Aaron Geller
  • Alex Gurvich

Past Contributors

  • Mike Cronin
  • Zach Hafen
  • Alessandro Febretti

Student Contributors

  • Mahlet Shiferaw
  • Luolei Zhao
  • Nora Linzer

Project PI

  • Claude-André Faucher-Giguère

Acknowledgments

Firefly is written in WebGL using the three.js library. This tool builds off of a previous version developed by Alessandro Febretti.

This project is funded by Northwestern's Center for Interdisciplinary Exploration and Research in Astrophysics (CIERA), Northwestern's IT Research Computing group, and NSF grants AST-1412836, AST-1715216, and CAREER award AST-1652522 awarded to Claude-André Faucher-Giguère.

Additional Info

Firefly was originally designed for FIRE data, but has since been extended to support any particle data. This package should not be confused with the serendipitously named web-based visualization software Firefly, from Caltech-IPAC, a general tool for retrieving and viewing astronomy data.

Metadata

Release files for firefly 3.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for firefly 3.6.0
File Size Uploaded
firefly-3.6.0.tar.gz 6.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for firefly 3.6.0
File Interpreter ABI Platform
firefly-3.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.0 MB

Release files / firefly-3.6.0.tar.gz

Download URL firefly-3.6.0.tar.gz
Size 6.9 MB
Tags Source
SHA-256 checksum
How to use checksums
7baa0c8967f40e25403d8eca4fc5c7ec153c07b942f1282c58000183a04280e7
BLAKE2b-256 checksum
How to use checksums
559d8b5230f02d94ccf8dfd3a27077c8dc09e40d22bb4039e4b1dc883c043aa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / firefly-3.6.0-py3-none-any.whl

Download URL firefly-3.6.0-py3-none-any.whl
Size 5.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ed2b11338901e69c6527ef739b47b7d7b97a1c3e5b6313a08806ac0244236365
BLAKE2b-256 checksum
How to use checksums
79bd48c6e37c9ed22c0959f1bfa21a4352d6de077b0aff0b7aeb05f0f542e203
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page