/phoenix

"Phoenix", an experiment independent web-based event display for High Energy Physics.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

DOI

License Build Status Coverage Status Gitter

Phoenix Logo

Phoenix

Phoenix is a TypeScript-based event display framework, using the popular three.js library for 3D. It focuses on being experiment agnostic by design, with common tools (such as custom menus, controls, propagators) and the possibility to add experiment specific extensions.

It consists of two packages: a plain TypeScript core library (phoenix-event-display) and Angular example application (phoenix-ng). A React example is also provided. The core library can be adapted for any experiment with some simple steps.

Phoenix is supported by the HEP Software Foundation and is the official web event display of the ATLAS experiment.

It was selected for Google Summer of Code support in 2019, 2020 and 2021.

You can see the stable version at https://hepsoftwarefoundation.org/phoenix and the development version at http://phoenix-dev.surge.sh.

Demo

Phoenix demo

Packages

Development

For running both the event display and the Angular app, you will need Node.js and Yarn.

  • N.B. There seems to be a problem with node v21 and ARM devices. See here for more details.

Once you have Node.js and npm (npm comes with Node.js), install Yarn.

npm install --global yarn

You might need to set your Yarn version to Yarn 2 and beyond with

yarn set version berry

Then run the following commands.

# Install all the required dependencies
yarn install
# For macOS you must install the following:
# brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman

# For Ubuntu, you may need to install:
# sudo apt-get install xserver-xorg-dev libxi-dev libxext-dev -y
# Also, if gyp fails with not being able to find python:
# sudo ln -s  /usr/bin/python2 /usr/bin/python

# Run phoenix-event-display and phoenix-app in development/watch mode
yarn start
# If this does not do anything, make sure you have not missed a warning.
# e.g. if you are using an older version of node (we are currently using v20), then it may not work

Now both the phoenix-event-display and phoenix-app will start in development/watch mode. Any changes made to the phoenix-event-display will rebuild and hot reload the phoenix-app. You can access the app by navigating to http://localhost:4200 on the browser.

Docker

Run the following Docker command to start Phoenix locally using Docker.

docker run -dp 80:80 9inpachi/phoenix

Access the app by navigating to http://localhost on the browser.

Documentation

Phoenix presentations and publications

Examples of Phoenix in use

ATLAS

PhoenixATLAS is the official web event display of the ATLAS experiment. It can be used to visualise different versions of ATLAS Geometry, and uploaded events.

ATLAS has also used it for embedded events in Physics briefings, e.g. Heavyweight champions: a search for new heavy W' bosons with the ATLAS detector

FCC

Phoenix is also used by Future Circular Collider, see here.

LHCb

Phoenix is also used by LHCb, see here

Belle II

Phoenix is also used by Belle II, see here

Contact

The best way to contact us is to either open an issue in GitHub, start a discussion or talk to us on our gitter channel (though this is not used as much these days).