2026.02.03 Weekly Meeting

Tomorrow, we will be having our next weekly hangout at 10:00 AM ET until 11:00 AM ET.

Anyone is welcome to join at this link: https://bit.ly/slicer-googlemeet-hosted-by-kitware


Agenda:

Please post to this thread to put a topic on the agenda! We will try to prioritize agenda items during the meeting.


Thanks
Sam and Ebrahim

I’ll have a topic regarding a logarithmic window/level feature that our group has been working on. Hoping to get some feedback on if our approach of modifications in the Slicer core and VTK levels are correct. We can demo what we currently have working. @lassoan If you are available, this may be relevant to some code areas you have worked in (recent invert color table and color legend work).

Notes from today’s meeting:

Logarithmic window/level feature (James and Alex; Revvity)

Porting a useful logarithmic window scale feature set from a non-Slicer application to core Slicer. Slicer has various color tables but nothing to switch to log. The proposal is to add this to Slicer in a location that is similar to where Andras recently added “invert color table”.

Using VTK’s built-in log scale feature isn’t good enough to achieve what we want. It applies a log to the colormap but it does not scale the bins at all, so for example the fine granularity that a log scale provides at small image values would be compressed into one giant bin. What we want is for the equally spaced bins to be created and then a log scale to be applied (resulting in differently-sized bins), rather than to apply a log scale and then create equally spaced bins on top. A custom approach is needed to achieve this.

Proposed approach: vtkImageMapToWindowLevel is doing the work. Add an option to the middle that if the display node has log mode activated then we do a different rescaling so as to compress the data into bins logarithmically.

Additionally, the “synchronize with volume node” button placed those control points only when they’re needed now.

Just like the vtkMathematics “addon”, the approach here is to add a vtkImageMapToWindowLevelColorsAddon which could be integrated in the future into vtkImageMapToWindowLevelColors.

This would be good to integrate fairly soon but we want to do it carefully and without breaking anything as it’s touching mrml core.

Next steps to get this integrated fairly soon: create one PR with separate commits and start to solicit feedback.

While playing with it we noticed that a DTI behaves a bit strangely. The colormap selection is grayed out, but a few controls can still be manipulated, causing some interesting unintended behaviors. This bug was already present, not new.

(Later update: Slicer#9016 is up for review!)

pip_install improvements (Ebrahim)

  • Slicer#9010 from a PW44 project
  • Include type annotations or not? Yes, it’s all backwards compatible so we can accept the style disconnect. Much nicer to have the type annotations. Maybe in a future project we can type annotate everything, and enforce it in the linting.
    • Speaking of typing, we should at least add typing to the scripted loadable module template, so that people at least start with everything typed.
    • We already want to type everything! Slicer#8226. Doing so in incremental steps is welcome.
  • Defaults for pip_install seem okay; some extensions that already have a progress dialog would want to either turn off the new one explicitly in favor of the one they have, or to just adopt the new one.
  • Restart prompt behavior: Yes the way Andras suggested seems good.

Qt6 remaining tasks (Sam, James)

  • On the Windows side things seem okay
  • On macOS more testing is needed. There are some packaging issues.
  • James plans to review the curl-related PR
  • Sam will start setting things up on the Windows factory machine in preparation

Failing Windows tests

  • These are caused by a setting in the task scheduler which we changed to enable things to work without manually logging on. To get rid of this setting we need to re-enable auto-login but due to an annoying IT policy this now requires creating a new account on the system.
  • It would be good to go back to a setting where these tests pass so that when we go to Qt6 we can understand which failures are real ones rather than being caused by some lack of display context on the factory machine.
  • Ebrahim will start getting a new account set up to address this

SlicerTelemetry (Bernardo)

Bernardo made a pull request about where to send the telemetry data.