Skip to content

[electrophysiology_browser] Session Viewer 3.0 | Dynamic Channel Amplitude | Reworked 3D Sensor Map | Miscellaneous Features#11003

Draft
MaximeBICMTL wants to merge 14 commits into
aces:29.0-releasefrom
MaximeBICMTL:ephys-browser-frontend
Draft

[electrophysiology_browser] Session Viewer 3.0 | Dynamic Channel Amplitude | Reworked 3D Sensor Map | Miscellaneous Features#11003
MaximeBICMTL wants to merge 14 commits into
aces:29.0-releasefrom
MaximeBICMTL:ephys-browser-frontend

Conversation

@MaximeBICMTL

@MaximeBICMTL MaximeBICMTL commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Builds upon #10695 and #10734

Summary

This PR modernizes the electrophysiology browser in preparation for MEG support in LORIS. This PR is purely focused on front-end changes in the electrophysiology browser and can be reviewed and tested as a standalone. Changes that depend on changes to the LORIS backend or imaging pipelines are submitted separatedly in the appropriate repositories.

Changes

General

  • Add Three.js, React Three Fiber, and Drei dependencies (see details in montage section).
  • Extend the content security policy for Three.js blob scripts and workers.
  • Move some of the state management from Redux to React contexts.
  • Add reusable low-pass and high-pass filter controls.
  • Add reusable multi-select dropdown and mutable dependency-cache components.

Series Viewer

  • Add adaptive channel scaling based on visible samples.
  • Store signals as Float32Array rather than vanilla Javascript arrays.

(3D) Montage

  • Isolate the Montage into its own directory.
  • Extract the Channels Editor and 3D Montage into their own files.
  • Add sensor categories (this PR only fetches EEG electrodes, fetching of MEG sensors will come in other PRs)
  • Refactor the 3D Sensor Map to use Three,js+Three.js Fiber (Canvas) rather than VisX (SVG) for display.
  • Use Three.js Drei orbital controls rather than homemade solution for 3D controls.
  • Add dropdown to select which types of sensors to visualize.

@MaximeBICMTL MaximeBICMTL added this to the 30.0.0 milestone Jul 24, 2026
@github-actions github-actions Bot added Language: PHP PR or issue that update PHP code Language: Javascript PR or issue that update Javascript code Module: electrophysiology_browser PR or issue related to electrophysiology_browser module Module: instrument_manager PR or issue related to instrument_manager module Module: data_release PR or issue related to data_release module Module: dataquery PR or issue related to (new) dataquery module Multilingual Any tasks related to making LORIS multilingual labels Jul 24, 2026
@MaximeBICMTL MaximeBICMTL removed Module: instrument_manager PR or issue related to instrument_manager module Module: data_release PR or issue related to data_release module Module: dataquery PR or issue related to (new) dataquery module labels Jul 24, 2026
@MaximeBICMTL
MaximeBICMTL force-pushed the ephys-browser-frontend branch from a6667d9 to 5895401 Compare July 24, 2026 18:20
@github-actions github-actions Bot added Module: instrument_manager PR or issue related to instrument_manager module Module: data_release PR or issue related to data_release module Module: dataquery PR or issue related to (new) dataquery module labels Jul 24, 2026
@MaximeBICMTL
MaximeBICMTL force-pushed the ephys-browser-frontend branch from 5895401 to 9237eb0 Compare July 24, 2026 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Language: Javascript PR or issue that update Javascript code Language: PHP PR or issue that update PHP code Module: data_release PR or issue related to data_release module Module: dataquery PR or issue related to (new) dataquery module Module: electrophysiology_browser PR or issue related to electrophysiology_browser module Module: instrument_manager PR or issue related to instrument_manager module Multilingual Any tasks related to making LORIS multilingual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant