Releases: HSF/phoenix
v4.0.1
v4.0.0
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
NotificationServicewith 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
EffectsStateenum andsetHoverColor()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 width —
TracksMeshnow 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:
- 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 toremoveRenderer()(#853) - Fixed renderer swap operating on class state rather than local parameters (#811)
- Fixed
tween.jsupgraded 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 withsubstring()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
alttext 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-snapshotswith@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.
- @edward-moyse (Edward Moyse)
- @apausa (Pablo Apausa)
- @deveshbervar (Devesh Bervar)
- @remo-lab / @rx18-eng
- @GaneshPatil7517 (Ganesh Patil)
- @DhanashreePetare (Dhanashree Petare)
- @kjvbrt (Juraj Smiesko)
- @AlphaAbdo (Abdelkader Kantaoui)
- @goyalpalak18 (Palak Goyal)
- @Shivansh1205 (Shivansh Bhageria)
- @sponce (Sebastien Ponce)
- @XPE-7 (Richang)
- @Pratz2005 (Pratham Mehra)
- @eduardo-rodrigues (Eduardo Rodrigues)
- @WHOIM1205
- @lavjeetrai (Lavjeet Kumar Rai)
- @LALANI-DEVARSHI (Devarshi Lalani)
- @atharrva01 (Atharva Borode)
- @Sanchit2662
- @codeMaestro78
- @SHARANcanCODE
- @Rajveer173 (Rajveer Kharade)
- @Mayank77maruti (Mayank Mohapatra)
- @matiasmantinan (Matias Mantinan)
- @joy-vardhan-yalla (Joy Vardhan Yalla)
- @deepsharan (Deep Sharan)
- @Aman-Cool
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
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
2.17.0 (2024-11-21)
Note: Version bump only for package root
v2.16.0
2.16.0 (2024-03-24)
Note: Version bump only for package root