Skip to main content

A slicer-core based library introducing a new displayable manager architecture for layered rendering and interaction handling.

Project description

SlicerLayerDisplayableManager

A 3D Slicer module introducing a new displayable manager architecture for layered rendering and interaction handling.

GitHub stars Documentation Status

Usage

The API Reference documentation provides API-level documentation.

Overview

SlicerLayerDisplayableManager is a module designed to simplify the integration of new display pipelines in 3D Slicer. It introduces a flexible and extensible framework for managing layered rendering, interaction forwarding, and camera synchronization across multiple pipelines.

This module aims to address common limitations in existing displayable managers by offering a more modular and injectable design.

Goals

  • Factorize pipeline creation and teardown
  • Enable layered rendering and interaction forwarding
  • Maintain focus continuity across pipelines
  • Synchronize cameras across views and layers
  • Centralize render request handling

Limitations in Current Displayable Managers

The current displayable manager (DM) architecture in 3D Slicer presents several structural and usability limitations:

  • Redundant logic: Each DM reimplements pipeline instantiation and renderer setup independently.
  • Custom camera sync: Camera synchronization strategies are manually implemented per DM, leading to inconsistent behavior.
  • Complexity growth: DMs tend to accumulate unrelated logic over time, making them harder to maintain and extend.
  • Focus handling: Focus decisions are based on proximity to interaction only, without consideration for layer priority.
  • Factory instantiation: DMs are created using string-based factories, preventing injection of shared dependencies or services.

Improvements Introduced by SlicerLayerDisplayableManager

The module introduces a new architecture to improve development quality and scalability for visualization widgets:

  • Centralized pipeline management: Pipelines are automatically created and deleted by the displayable manager.
  • Dependency injection: Lambda and callback-based creators allow find pipeline creation control and injection of shared logic at pipeline creation.
  • Modular camera synchronization: A dedicated synchronizer handles camera updates across views and layers for pipelines following the main camera.
  • Layer-aware interaction: Pipelines declare their render layer with arbitrary values, enabling prioritized focus and interaction handling without handling the finer grained VTK logic.
  • Python integration: A Python abstract class enables rapid development and integration of pipelines.

These changes simplify the development of new widgets, reduce boilerplate, and improve maintainability of existing visualization components.

Key Features

  • Pipeline registration via factory and creator API
  • Lambda and callback support for dependency injection
  • Customizable observer update pattern
  • First-class Python abstract pipeline class

For more information on the extension's architecture, please refer to the online documentation.

Installing the extension

The extension can be installed through the extension manager from 3D Slicer 5.10 onwards:

Getting Started

To use this extension checkout the getting started documentation.

And refer to the examples.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

slicer_layer_dm_sdk-1.2.3-cp313-cp313-win_amd64.whl (440.8 kB view details)

Uploaded CPython 3.13Windows x86-64

slicer_layer_dm_sdk-1.2.3-cp313-cp313-manylinux_2_28_x86_64.whl (441.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.3-cp313-cp313-macosx_11_0_arm64.whl (396.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

slicer_layer_dm_sdk-1.2.3-cp312-cp312-win_amd64.whl (440.8 kB view details)

Uploaded CPython 3.12Windows x86-64

slicer_layer_dm_sdk-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl (441.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.3-cp312-cp312-macosx_11_0_arm64.whl (396.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

slicer_layer_dm_sdk-1.2.3-cp311-cp311-win_amd64.whl (440.7 kB view details)

Uploaded CPython 3.11Windows x86-64

slicer_layer_dm_sdk-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl (441.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.3-cp311-cp311-macosx_11_0_arm64.whl (395.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

slicer_layer_dm_sdk-1.2.3-cp310-cp310-win_amd64.whl (440.7 kB view details)

Uploaded CPython 3.10Windows x86-64

slicer_layer_dm_sdk-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl (441.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.3-cp310-cp310-macosx_11_0_arm64.whl (395.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4fdf5efbbf74a6d09bbe7940132fca95bcdf9880e6b58aa60740168066753fa8
MD5 6999b55f3edcc8160932958c1c5667c7
BLAKE2b-256 db6c76373a74b20ed13d8a10776372ee6c3eb0c1884aed09b0ed5a43a0157ebe

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp313-cp313-win_amd64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b31008b88955f3028f6accb9b18861a304ecda6131deba8d2f5ae37693d438b4
MD5 867d5d724c2c7b3b3b40a0641c701fb8
BLAKE2b-256 cc9bd22589d9b1f16d88a654c2f387774b1558a36d5a9b782d1a60d0db530052

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bd814aa9db8e4e4fac76fd8bc1929c1d83662ce99811d435a0667c4982bb996
MD5 bb5f7ffa4568387ec3af7bd0334d38cf
BLAKE2b-256 c0daa8ac4c8b3b3be7c5003ce987d66e6cc8f526fb30c6861f5322a14604dbe3

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 68cd3a0c94af86dc2af3141074e11ed11d28d83f4841d5261641976adefeb55c
MD5 d127eea895f14753e8cdabdb2da96adf
BLAKE2b-256 df1e17177b1f8e2eb674def18f99ab6ce7824b02d5ed3e2b8e723cd6792ab139

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp312-cp312-win_amd64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1f1ae96481bb5ff365aee54f34b932bd7b28fb464137054ec5d7a0b24c850e2
MD5 2387fce2f910182dc407fb6898b1c1e7
BLAKE2b-256 0b676d94121b42bd3784fb4a1d99e09c29958ad309a381cf14bb63917b61ed55

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cdf73fe1bcd3c72c6e0f9042c37dbc7f628f95fb34351670f7dfccac50f5e60
MD5 3fb675e62904a9838cb1c7c11f22bfc1
BLAKE2b-256 37c6ed0ce6b6521a71f35400362259f41f8668bf25bc2d843b2d290f03f01b55

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 580c6b05fe84d45ea9b8521d99020661ae13690815601cf4045344d83cf4f6b8
MD5 c0e751681adaf8c2ffe89626bdfc2600
BLAKE2b-256 f463a64308766501f5be07678e2deee9af49d6e077c248ad7ad9518b95fbc636

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp311-cp311-win_amd64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b1ef3509e6e67493fc10353fe22117e70c8c5203dfe0188fb38bdea56430a90
MD5 7f16b721d692954554d47ca913a700e0
BLAKE2b-256 ae50a9649d711a243846ca5015922e24e4e20fd3da992e9004e2480df917e3ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20fa3577bd793757fc89c125b72909aef970e5d5018c42d32e02173af92ebc6a
MD5 192cad3bca49ebc6070aaa7ba4f605f6
BLAKE2b-256 c36289078a2e19ed6ed24338eabb87e291aec7b73d81c6d1b93d8a0912d0a4dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d88458d372f6b4750770fcc53e03e4b392b9bf7279ee4cecee7656854405bb21
MD5 8e66d92925378271f66c6add736e0ada
BLAKE2b-256 34a40590118273ff59b29e7c180ca787fd96113adfa16705fc7c572c02d7d976

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp310-cp310-win_amd64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42c6582fc6b05a1180f5a711b9057a433783e16aee4169742a77cad1a94c6678
MD5 b1904fa48377b20c6087681aabaa4fc1
BLAKE2b-256 dd4a6d24e3ca8990577939a04b3d12db5c099aa8b5b08d283235952d513708f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slicer_layer_dm_sdk-1.2.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48e4071749a0d4c4f5722de43e1bd29055cc6f77c69a5e189fdfce2d468c9702
MD5 5a83586ac8a32feff33723e4f56d78a7
BLAKE2b-256 846044e3bab59fccdd65c79238b3be2c71c42cb86bf984b767b52fee24fe8d98

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on KitwareMedical/SlicerLayerDisplayableManager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page