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

Uploaded CPython 3.13Windows x86-64

slicer_layer_dm-1.2.2-cp313-cp313-manylinux_2_28_x86_64.whl (234.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.2-cp313-cp313-macosx_11_0_arm64.whl (189.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

slicer_layer_dm-1.2.2-cp312-cp312-win_amd64.whl (232.8 kB view details)

Uploaded CPython 3.12Windows x86-64

slicer_layer_dm-1.2.2-cp312-cp312-manylinux_2_28_x86_64.whl (234.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.2-cp312-cp312-macosx_11_0_arm64.whl (189.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

slicer_layer_dm-1.2.2-cp311-cp311-win_amd64.whl (232.7 kB view details)

Uploaded CPython 3.11Windows x86-64

slicer_layer_dm-1.2.2-cp311-cp311-manylinux_2_28_x86_64.whl (234.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.2-cp311-cp311-macosx_11_0_arm64.whl (188.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

slicer_layer_dm-1.2.2-cp310-cp310-win_amd64.whl (232.7 kB view details)

Uploaded CPython 3.10Windows x86-64

slicer_layer_dm-1.2.2-cp310-cp310-manylinux_2_28_x86_64.whl (234.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.2-cp310-cp310-macosx_11_0_arm64.whl (188.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file slicer_layer_dm-1.2.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ce652b8cb4c03b50d1f548d127de034ba5ad84b2225e78a2d4b5353e7675398f
MD5 61380233c2cc7d2278bbb85432983710
BLAKE2b-256 a8eb5242490a23950db9d18d88eaaf55be3abc13865e9551a7e1760de9534926

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6bb1c77dadfb5b73709ba82712d27e6d0d3bb755af33109298b1b3f518d6cc39
MD5 0cadfdbef0ae7af51cc4ef4d33d48e6e
BLAKE2b-256 07a36a1ab6e4aef25514a2e30be6b43cd0b1280f8099b58cebd9000df644e0e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fee10812d4ec4d0b5447e84262a495fa3da3ff51badbfbb567f37e1e6500a84b
MD5 83df28ba886a746e0ec141529ba84792
BLAKE2b-256 28ba85d7e90843ee041634924153a3c01b75e72d4ed17f69c0e3d7108b482220

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a9e8e0d1325875c2da3864f27cd2cf1deb9f6e18af349be354e7aa37bf59ddeb
MD5 cb35da4dfcbf74998c98544b1fb167e9
BLAKE2b-256 c6bb2243416017169503b982076ed543cee577480c09f046d61bdbc8a4767b7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 adb9ddc396105083f12a8b93166b73567802709a26e98efc1d4d00b752747c88
MD5 c7cd209ba887d32650b2a55c341f4fcb
BLAKE2b-256 381b507f4088a81a4f17c384685cb4b712907fac2c888bc2bc20b53ca9c97856

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2bb4109fae2a6979885de8bc1ff52b9663889c6abe392ee0151f744bf1b948b
MD5 fe02c4a7b40eb983571bad43fd077042
BLAKE2b-256 66a65c5fa80c948a0f019ee9285bef1e5ab0d971c44dd60e98ba678965537311

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dcec5ae7100276035bc7a717f93f2062a1308f670d1037479a9e0d478f995283
MD5 55b4769aed2a4cabce8a87c5d76d57f3
BLAKE2b-256 c0007c5a0e31191e4a16518031453c1bf665becaff70e84e7f314ee53d066a5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98a8e557dba0a5a17dea00de721ef194b6f20bcfc70e904c2c01c86d5b94f578
MD5 acbf600020c0a82f75971d427a9de742
BLAKE2b-256 23ccfe88562f593e2409043213d0ffcae03ae47909a770d950f1fdf90935e708

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bcf3223b6e2cbfc1a1545b5e218c058e21da09fe7d0f0549690acda7f9465e86
MD5 c5ef690d6057a97b6629ea61c314b050
BLAKE2b-256 0ea275475f480bb841838f5f1c29be4eb29df1865bdb8ff8598abb8f4b7c69eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e04eda60386bdb1b4107f2e8379e14fb2dfe21fd2d2030418e1d83311ee1bbb6
MD5 3357ede0e762241c52b2820f41f47c67
BLAKE2b-256 4490313de45883f669696c2938ee20157bab56af5f4d0a1ec4472e9c30b7283f

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c87e43badf40f7238f243fbd893cef3fd5cbf18ec8e8f2ad77886f5ddf884f0e
MD5 11abda3bd54b345c2e4c00c2e2d688ad
BLAKE2b-256 518b03b7db8ad9625a858a000800ea1d9daabd84d81f03366d38fcd879ef2a1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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-1.2.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40f7fdcba91fde3a1d2d47d844a8ef54567d6fb87d5808531e8c3bae07c427d8
MD5 d843e1c7eaaa0a346d5198b5a5e515c6
BLAKE2b-256 5c4eb74e5e7cf02e8aa673ae3e0c59edc98fed9307e7edc9605354e07b5af2e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for slicer_layer_dm-1.2.2-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