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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firefly-3.6.0.tar.gz (6.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firefly-3.6.0-py3-none-any.whl (5.1 MB view details)

Uploaded Python 3

File details

Details for the file firefly-3.6.0.tar.gz.

File metadata

  • Download URL: firefly-3.6.0.tar.gz
  • Upload date:
  • Size: 6.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for firefly-3.6.0.tar.gz
Algorithm Hash digest
SHA256 7baa0c8967f40e25403d8eca4fc5c7ec153c07b942f1282c58000183a04280e7
MD5 b878eee06d4ea5f6e405a337106e57af
BLAKE2b-256 559d8b5230f02d94ccf8dfd3a27077c8dc09e40d22bb4039e4b1dc883c043aa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for firefly-3.6.0.tar.gz:

Publisher: publish-to-pypi.yaml on ageller/Firefly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file firefly-3.6.0-py3-none-any.whl.

File metadata

  • Download URL: firefly-3.6.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for firefly-3.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed2b11338901e69c6527ef739b47b7d7b97a1c3e5b6313a08806ac0244236365
MD5 6bc0477b853210e4f84d25fb30bc847e
BLAKE2b-256 79bd48c6e37c9ed22c0959f1bfa21a4352d6de077b0aff0b7aeb05f0f542e203

See more details on using hashes here.

Provenance

The following attestation bundles were made for firefly-3.6.0-py3-none-any.whl:

Publisher: publish-to-pypi.yaml on ageller/Firefly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.6.0 This release

2 files

3.5.0

2 files

3.4.2

2 files

3.4.1

2 files

3.4.0

2 files

3.3.2

2 files

3.2.4

2 files

3.2.3

2 files

3.2.2

2 files

3.2.1

2 files

3.2.0

2 files

3.1.2

2 files

3.1.1

1 file

3.1.0

2 files

3.0.0

2 files

2.0.6

2 files

2.0.5

2 files

1.3.0dev

1 file

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