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.
It was selected for Google Summer of Code support in 2019, 2020 and 2021.
For running both the event display and the Angular app, you will need Node.js and Yarn.
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
# For macOS Ventura you may need to specify C++ version, e.g. yarn install -std=c++17
# Run phoenix-event-display and phoenix-app in development/watch mode
Now both the
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.
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.
Phoenix presentations and publications
- Phoenix was presented at the 2020 HSF/WLCG virtual workshop and the presentation can be watched on YouTube
- Phoenix was shown at CHEP 2021 (abstract).
Examples of Phoenix in use
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