Skip to content

v1.0.0

Choose a tag to compare

@francois-drielsma francois-drielsma released this 26 Aug 04:05
· 19 commits to main since this release

Added

  • WebGL event display: Add a dedicated WebGL 2 renderer for fast interaction with large renderer-neutral SPINE scenes containing points, marker symbols, line segments, arrow vectors, indexed or wireframe meshes, and filled or wireframe boxes.
  • Renderer parity: Retain Plotly as a selectable compatibility renderer and provide common camera, theme, filtering, hover, reset-view, and PNG-export behavior across both rendering paths.
  • Object exploration: Add searchable reconstruction and truth object filters, optional one-hop match linkage, click inspection with grouped attributes, direct match highlighting, and reversible matched-object isolation.
  • Source handling: Add distinct Path, local Browse, temporary Upload, and public URL source modes with a native file picker, retryable chunked transfers, bounded session-private caching, and progress reporting.
  • Flexible inputs: Detect HDF5 data, shared-view JSON, and UTF-8 file manifests by content, including extensionless sources, relative records, comments, globs, and equivalent S3DF host/container paths.
  • Event navigation: Separate source opening from entry or run/subrun/event navigation and provide previous/next controls plus keyboard shortcuts.
  • Appearance controls: Add point size and opacity controls, continuous color scales and transforms, automatic or manual color domains, scalar visibility ranges, a live draggable value histogram, axis visibility, and adaptive light/dark themes.
  • Portable views: Add versioned share links and JSON exports that restore the source, event, display options, attributes, geometry, object filters, renderer, appearance, and camera.
  • Media exports: Add optional SPINE/detector branding, WebGL rotating GIF export, Plotly standalone HTML export, and renderer-independent PNG output.
  • Detector-aware display: Add automatic geometry selection and restoration, physical detector up-axis handling, selectable truth point sources, and geometry-aware camera fitting.
  • Application guidance: Add a searchable keyboard-shortcut reference, contextual loading/error status, a focused authenticated landing page, and task-oriented Read the Docs documentation.
  • Quality gates: Enforce complete Python statement coverage, strict documentation builds, pre-commit formatting and linting, and Codecov publication in CI.

Changed

  • Production-ready milestone: Establish the accelerated renderer, inspection, sharing, deployment, and documentation contracts as the public baseline for the 1.x release series.
  • SPINE integration: Require SPINE v1.0.1 and consume its typed renderer-neutral scenes, field metadata, detector orientation, geometry, and Plotly compatibility backend.
  • Client-side presentation: Transport compact binary scenes to the browser and apply camera motion, visibility, recoloring, appearance, hover, and theme updates without rebuilding the event on the server.
  • Caching model: Reuse file-aware HDF5 readers, built events, downloaded sources, and serialized scenes across compatible presentation updates while enforcing configurable bounds.
  • Camera behavior: Synchronize split reconstruction/truth views when requested, preserve cameras across presentation updates, reset them for new events or files, and fit projected detector bounds without changing the Plotly-matched viewing angle.
  • Auxiliary rendering: Match endpoint, direction, and interaction-vertex colors to parent objects and render direction vectors as thick shafts with three-dimensional cone heads.
  • Object visibility: Replace Plotly legend-driven and per-object trace splitting with explicit searchable object controls while retaining combined point-cloud traces and color scales.
  • Automatic refresh: Refresh loaded scenes from display controls while applying multi-select changes when their menus close to avoid redundant server work.
  • Production CLI: Run without the Dash development debugger unless --debug is explicitly supplied.
  • Script naming: Rename the local Docker helper from docker-run.sh to docker_run.sh to match check_coverage.sh and SPINE's script naming convention.

Fixed

  • S3DF path aliases: Accept both /data/... and /sdf/data/neutrino/... paths for the same data source.
  • Complete scene rendering: Preserve detector geometry, raw points, optical flashes, CRT hits, endpoints, directions, vertices, hover metadata, color domains, and object filters across WebGL and Plotly.
  • State restoration: Apply shared or imported view state exactly once, load referenced Path or URL sources automatically, and reset entry-specific selections safely when the source changes.
  • Responsive loading: Prevent duplicate WebGL renders and loading flashes while reporting renderer transitions and long-running source operations consistently.

Full Changelog: v0.4.4...v1.0.0