Published June 6, 2026
| Version v4.0.0
Software
Open
HSF/phoenix: v4.0.0
Authors/Creators
- Fawad Ali1
- Edward Moyse2
- Mohammad Humayun Khan
- Emilio Cortina Labra3
- pablo4
- Devesh
- Juraj Smiesko
- Ganesh Patil5
- Andreas Pappas6
- remo-lab
- Jyotiraditya Panda
- Gaurav Sharma
- AlphaAbdo
- Arthur Hennequin2
- goyalpalak18
- Shivansh Bhageria
- bcouturi
- edreyer
- Eduardo Rodrigues7
- Richang Chaudhary
- Pratham
- Riccardo M. BIANCHI, PhD8
- Atharva Borade9
- David laid
- Somya Bansal
- LALANI DEVARSHI10
- xonx
- matiasmantinan
- Mrinaal Arora
- 1. @PufferFinance
- 2. CERN
- 3. Amazon
- 4. @CERN, @HEP-FCC
- 5. Pimpri Chinchwad University
- 6. @cern
- 7. University of Liverpool
- 8. @CERN & University of Pittsburgh
- 9. Atharva Borade
- 10. Acquire.io
Description
4.0.0 (2026-06-06)
Bug Fixes
- accessibility: add descriptive alt text (8e16302)
- add Angular 20 compatibility by upgrading dependencies and migrating to application builder (a1bccdc), closes #728
- add missing ngOnDestroy cleanup in 4 UI components (bb2278b), closes #865
- add unsubscribe mechanism to prevent callback memory leaks (9c10385)
- align screenshot mode button styling (40bf07b)
- app: fixing tests (9402d2f)
- app: isolate Jest and Cypress TypeScript types to restore IntelliSense (4eee288)
- apply lint formatting fixes (183294c)
- clean up event listeners in OverlayComponent and SSModeComponent (54ba286), closes #762
- clear selections before track extension to prevent stale outlines (594e3e8)
- convert makeRequest() to async/await with proper error propagation (8b770da), closes #847
- correct stretch rendering logic, remove crop offsets, proper viewOffset and aspect handling (1b836b3)
- correct Stretch screenshot aspect ratio & restore camera aspect (5a1662c)
- correct viewOffset typing to resolve TS2349 error (07e9fc1)
- deduplicate three.js instance bundled by jsroot (8e13cbc), closes #655
- dispose intermediate geometries after merging (ad79b44)
- dispose WebGL renderers and revoke blob URLs to prevent resource leaks (a59b067), closes #845
- dispose WebGL resources and event listeners on cleanup (b7cd200)
- effects-manager: sync selection outlines with object transforms (cf02404)
- event-display: a patch to a typo (90db004)
- exclude generated docs from ESLint to fix release build (ca4c63b)
- gltf: dispose intermediate geometries after merge (c50d18b)
- hide eta-phi panel button on LHCb section (4f0c25c)
- hide labels during animations until event objects fully appear (efd4e3e)
- ignore generated docs in eslint (c0dc65f)
- import-manager: dispose intermediate geometries after GLTF merge (2d4fb93)
- initialize callback functions + update Docker install step to fix CI (4a6d799)
- initialize callbacks + update Dockerfile base image to fix CI (e86b35d)
- io-options-dialog: add try/catch for JSON parse errors with user feedback (#842) (d77601f)
- jivexml: prevent crash on missing XML tags in vertex parsing (2752bb8)
- make-picture: remove outdated size check for tiled screenshots (6d7a5f0)
- phoenix-objects: guard against undefined track.pos (35d496f)
- preserve main renderer during cleanup to prevent disposed-renderer reuse (4cdb72a)
- python install and node-gyp python3 path for CI (82e5612)
- re-apply collection cuts after event switch and clear registry on rebuild (4683c91)
- release: add OIDC permissions, pin action versions, fix exports warnings (44dd281), closes #851
- release: use actual release version for Docker tags (4e4c7b8)
- remove checkSize and disabled logic as requested (c9ee693)
- remove unsupported --verbose flag from yarn install (56317f2)
- rename RendererManager.removeControls() to removeRenderer() (#809) (66a7762)
- renderer-manager: swap renderers in class state instead of local params (9409909), closes #808
- replace cypress-plugin-snapshots with @frsource/cypress-plugin-visual-regression-diff (10b296a), closes #733
- replace deprecated substr() with substring() in url-options-manager\n\nReplace window.location.href.substr() with substring() and add a guard\nfor missing query string to prevent incorrect behavior when the URL\nhas no '?' character." (ddbd110)
- replace hardcoded column exclusion list with configurable Input (c693972)
- reset callbacks and state on view transitions (0c12096)
- resolve Dockerfile conflict and enable native build for lmdb (247b909)
- resolve duplicate AttributePipe and stabilize Angular 20 tests (3646a9f)
- restore callback typings + initialize defaults + replace python with python3 in Dockerfile (0c41d48)
- restore crop/stretch logic + integrate tiling safely (cc8b764)
- restore default UI config for LHCb (f4b4b4e)
- restore stretch aspect logic + safe TS guards (5eddf2d)
- revert rainbow selection to amber glow, improve jet and selection UX (#839) (0f6da97)
- safe camera view offset calls (e06a9c2)
- scene-manager: dispose GPU resources on event switch (ae6df4a)
- selection-manager: prevent duplicate event listeners on re-init (cb9daec)
- stabilize Jest tests for Angular 20 compatibility (3270baf)
- test: make setup-jest ESLint-safe for Angular 20 (504a131)
- three-manager: clear selections on event switch to prevent memory leak (1335d57)
- three-manager: complete event listener cleanup on re-init (a72f27b)
- ui: clear cycle-events interval on component destroy (8b650d5)
- ui: handle FileReader errors in IO options dialog (005e6d1)
- upgrade tween.js to v25 with explicit group management (acec46c), closes #680
- upgrade TypeScript to 5.7 with Jest ESM mocks (7969ece)
- use Angular build configs for deploy scripts to avoid outputPath override (5d5a986)
- use distinct icon for collections info panel (7cbb895)
- use InstancedMesh for CaloCells to prevent WebGL crash (#474) Signed-off-by: rx18-eng remopanda78@gmail.com (766d3ba)
Features
- add eta-phi energy map panel (012fb8d)
- add event dataset browser with physics-aware filtering (#861) (28a8995)
- add EventAutoloader for live event streaming from directories/endpoints (4b3f139)
- add masterclass panel and ATLAS masterclass landing page (closes #835, closes #915) (8a6784c)
- add per-collection track extension to radius (#177) (2983295)
- add PHYSLITE ROOT file loader for ATLAS Open Data (#823) (d9ff993)
- add tiled screenshot rendering to support very large images (#581) (67d522d)
- add track kinematics panel with config-driven columns (846edca)
- add typed event data pipeline with loader registry (901707a)
- add URL deep linking with full view state sharing (4124325)
- add URL event loading with auto-refresh clean-branch(#448) (1b95c31)
- effects-manager: add EffectsState enum and setHoverColor() (#886) (eabcdbf)
- event-display: implement performant rainbow selection system with multi-object support (bfa2705)
- event-display: implement rainbow outline selection system with EdgesGeometry (6bb0256)
- event-display: migrate to controls-based architecture with dual canvas support (b045001)
- make UI components configurable via UIMenuConfig (#61) (09efeb8)
- merge screenshot mode into make picture menu (#540) (0edb178)
- notification-service: add NotificationService with 4 severity levels (#886) (067155a)
- offload JiveXML/JSON parsing to Web Worker to prevent UI freeze (f101fb3)
- state-manager: serialize cut state to JSON and restore via Load State (092814b), closes #872 #863
- support per-track linewidth in TracksMesh (4c7d711)
Performance Improvements
- phoenix-ng: isolate animation loop outside NgZone (b8e1f98), closes HSF/phoenix#827
Reverts
- Revert "chore: apply prettier and eslint fixes" (8904c1c)
Files
HSF/phoenix-v4.0.0.zip
Files
(140.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:b5df7cbe7f69b9a9745837988adab427
|
140.8 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/HSF/phoenix/tree/v4.0.0 (URL)
Software
- Repository URL
- https://github.com/HSF/phoenix