Skip to content

Releases: HSF/phoenix

v4.0.1

06 Jun 07:16

Choose a tag to compare

4.0.1 (2026-06-06)

Note: Version bump only for package root

v4.0.0

06 Jun 05:43

Choose a tag to compare

4.0.0 (2026-06-06)

It has been a long time since the last release, and this is a big one. There have been very significant performance and UI improvements, bugfixes, a migration to Angular 20 finally, and lots and lots of new features. Details below, but we hope you enjoy Phoenix v4.0.0

New Features

  • Angular 20 upgrade — migrated from Angular 19 to Angular 20 using the new application builder, with full compatibility fixes for tests and tooling (#806, #906)
  • Eta-phi energy map panel — new visualization panel showing energy distributions in eta/phi space (#876)
  • Event dataset browser — new browser panel with physics-aware filtering for navigating event datasets (#868)
  • Track kinematics panel — new panel displaying track kinematic variables with config-driven column selection, accessible from the More Information menu (#848)
  • EventAutoloader — live event streaming from directories or remote endpoints (#857)
  • Notification service — new NotificationService with four severity levels (info, success, warning, error) (#895)
  • Cut state serialization — cut configuration is now serialized to JSON and restored via Load State (#882)
  • Configurable UI components — UI menu items are now configurable via UIMenuConfig (#814)
  • EffectsState enum — new EffectsState enum and setHoverColor() for cleaner effects management (#889)
  • URL deep linking — full view state (camera, selections, cuts) shareable via URL (#804)
  • PHYSLITE ROOT file loader — new loader for ATLAS Open Data PHYSLITE ROOT files (#836)
  • Tiled screenshot rendering — screenshots can now be rendered at very large resolutions via tiling (#738)
  • Screenshot mode consolidated — screenshot mode merged into the Make Picture menu
  • Per-collection track extension to radius — tracks can now be extended to a configurable radius per collection (#757)
  • Per-track line widthTracksMesh now supports per-track configurable line widths (#748)
  • More Information menu — new top-level menu item consolidating info panels and related tools (#916)
  • URL event loading with auto-refresh — events can be loaded from URLs with automatic refresh
  • NgZone animation loop isolation — animation loop moved outside Angular's NgZone for improved rendering performance (#877)
  • Multi-object selection — overhauled selection system supporting simultaneous selection of multiple objects (#721)
  • EDM4hep loader improvements:
    • Support for new-style links (to/from) (#719)
    • Track hits split by PDG of associated particle (#716)
    • Tracker hits separated by quality flags (#716)
    • MCParticle added across all schema types
    • Reduced passes through event data to a single pass
  • New LHCb geometry — updated to dd4hep format and 2025 detector geometry (#727)
  • GLTF menu hierarchy — fixed support for collection hierarchy in the Phoenix menu when loading from GLTF files (#725)
  • Jet origin — jet collections now carry origin information (#709)

Bug Fixes

  • Fixed WebGL crash when rendering large numbers of CaloCells — now uses InstancedMesh (#849)
  • Fixed event icon colour not updating when switching between light and dark themes (#905)
  • Fixed collection cuts being lost on event switch (#872)
  • Fixed JSON parse errors in IO options dialog now showing user-facing feedback (#879)
  • Fixed duplicate three.js instance bundled alongside jsroot (#817)
  • Fixed JiveXML crash on missing XML tags during vertex parsing (#780)
  • Fixed labels appearing during animations before event objects are fully loaded (#741)
  • Fixed RendererManager.removeControls() renamed to removeRenderer() (#853)
  • Fixed renderer swap operating on class state rather than local parameters (#811)
  • Fixed tween.js upgraded to v25 with explicit group management to prevent animation conflicts (#813)
  • Fixed screenshot stretch/crop aspect ratio handling
  • Fixed FileReader error handling in IO options dialog (#767)
  • Fixed collection-info table display (#706)
  • Fixed substr() calls replaced with substring() to remove deprecated API usage (#810)
  • Fixed EDM4hep JSON loader imports and loading of event data files (#715)
  • Fixed distinct icons for collections info panel vs other panels (#870)
  • Fixed accessibility: added descriptive alt text to images (#765)
  • Fixed multiple WebGL and GPU memory leaks (#782, #783, #785, #786, #787, #788, #846):
    • Dispose intermediate geometries after GLTF merge
    • Dispose renderers and revoke blob URLs on cleanup
    • Clear selections and GPU resources on event switch
    • Prevent selection outline accumulation across events
  • Fixed event listener accumulation on repeated init() calls (#778, #781)
  • Fixed cycle-events interval not cleared on component destroy (#771)
  • Fixed Jest and Cypress TypeScript type isolation (#736)
  • Replaced cypress-plugin-snapshots with @frsource/cypress-plugin-visual-regression-diff (#734)
  • Various CI/Docker build and deployment fixes (#737, #860, #871)

Contributors

Many, many thanks to all the contributors, new and old.

v3.0.5

30 Nov 11:26

Choose a tag to compare

3.0.5 (2024-11-30)

Note: Version bump only for package root

v3.0.4

29 Nov 16:05

Choose a tag to compare

3.0.4 (2024-11-29)

Bugfix:
Fix for #570 - very annoying bug where the state was not correctly applied.

v3.0.3

22 Nov 09:27

Choose a tag to compare

3.0.3 (2024-11-22)

Note: Version bump only for package root

v3.0.2

22 Nov 06:18

Choose a tag to compare

3.0.2 (2024-11-22)

Note: Version bump only for package root

v3.0.1

22 Nov 06:11

Choose a tag to compare

3.0.1 (2024-11-22)

Note: Version bump only for package root

v3.0.0

21 Nov 06:07

Choose a tag to compare

3.0.0 (2024-11-21)

This is a major update to Phoenix, including migrations to Angular 20.X, significant threejs changes (and update to latest version, v0.170), many bugfixes (especially to do with how the configuration and GUI work), and significant changes to how the library itself is structured and built.

See below for details.

Bugfixes
#673 - cannot set box hit color (#664)
#678 - fix zoom not working
#682 - fix screenshot icon missing (#654)
#686 - fix for buggy state (config) loading
#690 - fixes for jivexml loading
#692 - fix for reset cut not updating view

Improvements:

#656 - add support for zipped geometry files
#684 - optionally draw some tracks with thicker lines
#687 and #688 - improvements to labels and GUI sync
#696 - update to threejs v0.170, jsroot to 7.8.0 etc

v2.17.0

21 Nov 00:24

Choose a tag to compare

2.17.0 (2024-11-21)

Note: Version bump only for package root

v2.16.0

24 Mar 17:44

Choose a tag to compare

2.16.0 (2024-03-24)

Note: Version bump only for package root