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.5-cp313-cp313-win_amd64.whl (442.5 kB view details)

Uploaded CPython 3.13Windows x86-64

slicer_layer_dm_sdk-1.2.5-cp313-cp313-manylinux_2_28_x86_64.whl (443.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.5-cp313-cp313-macosx_11_0_arm64.whl (397.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

slicer_layer_dm_sdk-1.2.5-cp312-cp312-win_amd64.whl (442.5 kB view details)

Uploaded CPython 3.12Windows x86-64

slicer_layer_dm_sdk-1.2.5-cp312-cp312-manylinux_2_28_x86_64.whl (443.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.5-cp312-cp312-macosx_11_0_arm64.whl (397.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

slicer_layer_dm_sdk-1.2.5-cp311-cp311-win_amd64.whl (442.4 kB view details)

Uploaded CPython 3.11Windows x86-64

slicer_layer_dm_sdk-1.2.5-cp311-cp311-manylinux_2_28_x86_64.whl (443.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.5-cp311-cp311-macosx_11_0_arm64.whl (397.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

slicer_layer_dm_sdk-1.2.5-cp310-cp310-win_amd64.whl (442.4 kB view details)

Uploaded CPython 3.10Windows x86-64

slicer_layer_dm_sdk-1.2.5-cp310-cp310-manylinux_2_28_x86_64.whl (443.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

slicer_layer_dm_sdk-1.2.5-cp310-cp310-macosx_11_0_arm64.whl (397.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7e2bb5e6adea65780c8b209d4105f0edb85117e3e59c7301f8740bb7157da8bc
MD5 f2ac2ab1e0a77a613f8ddfe57323c0a1
BLAKE2b-256 1263fafb098deb643d7d491aebce812c61390aa46488f72ebb21d8a97717e7b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc07965462bdce8341305c7d374ab703d6e83f836a00c60622d823b2723a7d6b
MD5 ff4d09a3fb62f5f7a259229c1ab9d337
BLAKE2b-256 07c4275bb6a893255d9372fd35606ab4a7d235274714aa0fe288691fb5bfda2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89c4cd41e46e082045abc2feec9f40fa0c98de08f92eb7e21b706e89da000313
MD5 04155c850e740656b5fdc989031cc635
BLAKE2b-256 365bce7934c5a4395241051d6e0d5d642d815ee6732eec895eb22254800ad28c

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 be0c43e2618149be895cf43cb941b46e965b14ed144a984a82a9d30f4148a8c5
MD5 96a89175af15bf7a7a96fa8dae663b24
BLAKE2b-256 0601ace3d343de75394e7fdbc5635c73caae2aaac8de32281aeb0f8f8607611a

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 905f67f4a5d4394a47280952fc98eef051b6d55bd821f937be7d36842cbd14bb
MD5 0a4a14e0c35fa3ddfcec2e25cba23fc2
BLAKE2b-256 f181a8d1a4f57311d543ad7571358915709e5461ceb68c7a298b1dada86f222c

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be271ef07febff1762231354db8f28cfeffc407fe6dbd674fde99f84ad15d7c5
MD5 6d13cee3c76840c9aa82c32f7ba0c1e6
BLAKE2b-256 25a6118622e7657bbf3b276acc9bab9fdf86325f305e6b6730e8fe517a08385d

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8d28f083b648d8c7130fa159c34900e289480177a8860b2f760b1daca39de14d
MD5 e37f94f2af139f11488badaa024ee1ec
BLAKE2b-256 5dd10e1a4dddfebe774856b197d4e0f2bdfec1976d2c8cebe59e1a5ca5718350

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5b74b640a6ae12b348d052884d497ca01ccbf321e754e76481d19619e3d755d
MD5 5432b00457ee8667142e2e37bcdce63b
BLAKE2b-256 fd6759af0bbddc81a56d579c114056dcd1a354147b525f9ea667e7001db8a683

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a95155862784d0d229bf4d164ebc3a4525dd8c69641d421c139f5d36b4c91c22
MD5 1169163e2ecad1005fe891c0634f1f85
BLAKE2b-256 a0dbf79d9eb51aff615d24f69aad6b535ee73eabc7c704e276cf86f9ba4ad081

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 12549f6d946596dbb5046f3665adf396ed2b76be9a4578ab150e197d4ff56f2d
MD5 19999441a83eeaa7f6d6330fe0d7cde8
BLAKE2b-256 6ae0cc196a3ef9e7087b3be3f27f65c61a151bbc4c94c98808a2f8afa4768894

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f2b438fb8c65d4b6a4e44373eb56dabbd4bf79590f5e62782d0febf26ab0dbe
MD5 8b4ca145df65e2bcbbfbd309934b3eed
BLAKE2b-256 547df842daf91a320539744546633c843972c0190fe06ef436dd0eb6a90114de

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm_sdk-1.2.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 102c438a44c24cd45c97c98d7f6b8408d0de209d2691c2f49f6c2a81996bfc45
MD5 983154b3d486e37365b0a80a9fd18309
BLAKE2b-256 b6c6a4ff04d3c86e429910685939a4c2f8a210da22f8d6a8c0d25240f224736d

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm_sdk-1.2.5-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