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 Northwestern’s visualization group and our galaxy formation group. We are currently working on a web-based version of Firefly, as well as simplified 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.

A new version, developed primarily by Aaron Geller and Alex Gurvich using WebGL and the three.js library, is available here. This WebGL version is the one which is going to be supported going forward, it is more stable, and it includes more features. We therefore strongly recommend using this version. A live web version is also available here.