Skip to content

V2026 02#96

Merged
DraTeots merged 53 commits intomainfrom
v2026-02
Mar 19, 2026
Merged

V2026 02#96
DraTeots merged 53 commits intomainfrom
v2026-02

Conversation

@DraTeots
Copy link
Copy Markdown
Collaborator

@DraTeots DraTeots commented Jan 31, 2026

v2026-03 — Release Notes

What's New for Users

Z-axis Clipping for Radial Geometry Inspection (closes #65)

You can now clip the detector view along the Z-axis (beam axis), making it easy to inspect geometry in the radial direction — useful for assessing space available for service routing and cable management. A new Backward / Forward slide toggle controls the clipping direction, and the Z position is an absolute coordinate on the beam axis regardless of direction. This was a long-requested feature from Wouter Deconinck and the EIC detector integration team.

Improved Detector Coloring (addresses #38)

Subdetector geometries are now more reliably colored using the coloring rules. The cool3 and cool2 color schemes have been finalized and tuned for better visual clarity across the full detector layout.

Better Camera and View Controls

The camera controls menu (lil-gui) has been reorganized for better usability:

  • "Camera to center" is now the first item for quick access
  • New "Camera to Far Forward" preset for inspecting the forward endcap region
  • "Make Screenshot" button is now in the camera menu (also works in Firefox)
  • Video capture controls are grouped in a collapsible "Video Capture" subfolder

Reorganized Toolbar for Cleaner UX

The main display toolbar has been reorganized to reduce clutter:

  • "Animate beam collision" button moved to the transport controls bar (between rewind and play), where it logically belongs
  • "Auto Play" converted to a toggle switch in the Animation Settings dialog
  • Camera/debug controls moved to the side tool panel with a clearer icon
  • App version is now shown in the logo menu (desktop) and navigation menu (mobile)

Video Saving

You can now save visualization sessions as videos directly from the browser. Recording controls are accessible from the camera controls menu under "Video Capture".

Improved Grid and Reference Lines (addresses #40)

  • Cartesian grid now correctly appears on the XZ plane (horizontal, at detector floor level) instead of the XY plane
  • Eta/phi reference lines with labeled markers at common η values
  • Axis labels (X/Y/Z) displayed as 3D sprites at the axis endpoints
  • Axis toggle now correctly controls the existing scene axes without duplicating them

Better Default Experimental Data and Configurations

Default example events and geometry configurations have been updated to show more representative EIC physics scenarios out of the box.


Backend / pyrobird

Security Improvements

  • Secure path handling for file downloads — stricter path traversal prevention
  • Optional disabling of the /shutdown endpoint for production deployments
  • Fix for a potential XSS vulnerability in served content

Batch Screenshots (closes #66, #67)

The pyrobird screenshot command has been restored to working state after breakage from prior system updates. Integration tests now cover pyrobird CLI commands to prevent regressions.


Technical / Infrastructure

Angular 21 → Angular 22 Upgrade (closes #85)

The frontend has been updated to Angular 21 (and further to Angular 22), enabling use of modern Angular APIs and reducing the number of security-flagged dependency alerts from Dependabot.

Migration from Karma to Vitest

Frontend tests have been migrated from Karma + Jasmine to Vitest, reducing test infrastructure complexity and aligning with the Angular 21+ recommended toolchain.

DD4Hep Plugin Fix

Fixed an incorrect unit conversion in the DD4Hep trajectory writer: time values were being written in picoseconds but interpreted as nanoseconds, causing trajectory timing to be off by a factor of 1000.

Python Package Cleanup

  • Removed verbose output from the geometry smooth command
  • Fixed Python package build warnings
  • Disabled legacy Python manifest handling
  • Corrected license metadata in pyproject.toml
  • Removed Python 3.8 from the integration test matrix (EOL)

Scene Tree Fix (Angular 21 migration)

The scene tree refresh button was broken by the Angular 21 Material tree migration (from MatTreeFlatDataSource to plain-array dataSource). Fixed by forcing a two-step change detection cycle to reconnect the CdkTree.

Line Geometry Clipping Fix

Clipping planes were not being applied to THREE.Line/LineSegments objects used for geometry outlines — only THREE.Mesh instances were updated. All objects with a material property are now correctly clipped.


Closed issues: #65 (Z clipping), #85 (Angular update), #66 (batch screenshots), #67 (pyrobird CLI tests), #87 (CalVer), #40 (grid plane)

@DraTeots DraTeots requested a review from sqrd-max January 31, 2026 21:26
@DraTeots DraTeots self-assigned this Jan 31, 2026
@DraTeots DraTeots marked this pull request as draft January 31, 2026 21:27
Comment thread firebird-ng/src/app/model/event-group.spec.ts Fixed
Comment thread firebird-ng/src/app/painters/trajectory.painter.spec.ts Fixed
Comment thread firebird-ng/src/app/painters/trajectory.painter.spec.ts Fixed
Comment thread firebird-ng/src/app/services/three.service.spec.ts Fixed
Comment thread firebird-ng/src/app/utils/persistent-property.spec.ts Fixed
Comment thread firebird-ng/src/app/utils/persistent-property.spec.ts Fixed
Comment thread firebird-ng/src/app/utils/persistent-property.spec.ts Fixed
Comment thread firebird-ng/src/app/utils/three.utils.spec.ts Fixed
Comment thread firebird-ng/src/app/utils/three.utils.ts Fixed
Comment thread firebird-ng/src/lib-root-geometry/root-geo-navigation.spec.ts Fixed
@DraTeots
Copy link
Copy Markdown
Collaborator Author

#84 is moved here manually due to different directory structure. Lets count it as a merge conflict resolution

Comment thread firebird-ng/src/app/utils/three-geometry-editor.spec.ts Dismissed
Comment thread firebird-ng/src/app/utils/three-geometry-editor.spec.ts Fixed
Comment thread firebird-ng/src/app/utils/three-geometry-editor.ts Fixed
Comment thread firebird-ng/src/app/utils/three-geometry-editor.spec.ts Dismissed
Comment thread firebird-ng/src/app/utils/three-geometry-editor.ts Fixed
Comment thread firebird-ng/src/app/utils/three-geometry-editor.ts Dismissed
@DraTeots DraTeots marked this pull request as ready for review February 4, 2026 06:05
Comment thread test/run_background.py Dismissed
Comment thread test/run_background.py Dismissed
DraTeots and others added 25 commits March 16, 2026 22:41
Z position is now an absolute coordinate on the Z axis regardless of
direction. Replaced direction checkbox with a mat-slide-toggle showing
"Backward / Forward". Forward keeps z >= pos, backward keeps z <= pos.
The migration from MatTreeFlatDataSource to plain-array dataSource broke
the refresh button because CdkTree doesn't re-render on simple array
reassignment. Force change detection in two steps: clear the data source
first so the tree disconnects, then set the new data.
updateMaterialClipping only checked for THREE.Mesh instances, missing
THREE.Line/LineSegments used for outlines. Now updates clipping planes
on any object with a material property.
…tion or class'

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
- Move "Animate beam collision" button from header to bottom transport controls (between rewind and play)
- Convert "Auto Play" from header button to mat-slide-toggle in Animation Settings dialog
- Move debug/camera controls button from header to side tool panel (below ortho/perspective switch), rename to toggleCameraControls, change icon to videocam
- Remove relocated buttons from mobile tools menu
- Show app version in desktop logo menu and mobile nav menu
- Move "Camera to center" to be first item in menu
- Add "Camera to Far Forward" preset (8000, 7500, 40000 with pivot at 0, 0, 30000)
- Add "Make Screenshot" button using toDataURL for Firefox compatibility
- Move recording controls into "Video Capture" subfolder (closed by default)
- Rename "Offline Capture" to "High Resolution Capture" (closed by default)
- Rename testButton to cameraToCenter
- Cartesian grid now on XZ plane at Y=-4000 instead of XY at z=0
- Implement eta/phi lines with labeled sprites for common eta values
- Axis toggle controls existing ThreeService axes instead of creating duplicate
- Add X/Y/Z text sprite labels at axes endpoints
- Remove unused camera view preset buttons
@DraTeots DraTeots merged commit 7859171 into main Mar 19, 2026
21 checks passed
@DraTeots DraTeots deleted the v2026-02 branch March 19, 2026 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update angular and dependencies Restore batch screenshot (currently not working) Clipping for z section view

2 participants