Firefly

Firefly is a visualization app for particle-based simulations. Firefly allows users to interactively explore a simulation snapshot, moving through it in a smooth and intuitive manner. A unique feature of Firefly is that the same application can run seamlessly run on a wide range of platforms, ranging from an user’s personal laptop to an ultra-high resolution display wall with 3D spectroscopic capability. Thanks to this extraordinary versatility, Firefly can be used for professional data analysis as well as for education and outreach.

Firefly was originally developed to visualize SPH simulations from the FIRE project but the app can render particle snapshots of any kind. Currently, the app can load data from the simulation codes Gadget-2, GIZMO, and Arepo but we plan to extend it so that it can transparently display snapshots produced other codes, such as Gasoline. Firefly is written in Python, is scriptable, and is based on the Omegalib toolkit.

Firefly is a collaboration between Alessandro Febretti and Northwestern’s galaxy formation group led by Claude-André Faucher-Giguère. We are working on simplified Firefly interfaces to effectively bring our simulations to classrooms and museums. Several students (including high school and undergraduate interns) have contributed Firefly features through Python scripting.

firefly_desktop_ss

Above: Firefly being used on a personal laptop computer. This mode of operation allows scientists to interactively explore complex data sets and discover new patterns.

camiwall_amps_020

Firefly running on Northwestern’s CAMI wall. Here, users are moving through a simulation snapshot using an iPad controller. The simulation is displayed in full 3D, providing users with a truly immersive experience. Photo credit: Dan Hoefler.

You can download a legacy version of Firefly (used in the above images) here. We are currently developing a new version, which includes many additional features useful for quantitative data analysis. The latest version of Firefly is available here (warning: still being tested and debugged).