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

Uploaded CPython 3.13Windows x86-64

slicer_layer_dm-1.2.3-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.3-cp313-cp313-macosx_11_0_arm64.whl (189.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

slicer_layer_dm-1.2.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (189.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

slicer_layer_dm-1.2.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (188.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

slicer_layer_dm-1.2.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (188.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 40eb81fd1592e117f2f6591d84af2f160e1829c000de6df3580c32444ba4dd60
MD5 4183fed484646b8a3b900806a7ede19d
BLAKE2b-256 c511bae9b11deb3153cbfc7390faf86cc496aca1afd6d009fb976107db0b3e87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a7fe242dbfda9676a9964a24d38bfd7c37bdf2401f38e35489afa9cc7539fd0
MD5 aa88856cec8824c701bf2660caa650df
BLAKE2b-256 c3b7ce99207a44a08b62bd1f25f5c88b5289ba7ca7844b6ff625651c3bd22800

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 238e3708c7c3e4eaa7ebde77cebc680b3321db444322c97fa6c8f3ffaaf9f0f3
MD5 6bdbe13aa9bd3f8547218fc5d7b815bd
BLAKE2b-256 05cdb89f9f48068ad03e59a6e9463c74f1d122cef5784652dd2de03fdecad903

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ff2a58040d6306c5d968c7321875d9534006c90908d7484429cca72dff2bab81
MD5 9ca90c361d345e2eb0de4bf75ef1d9ad
BLAKE2b-256 0ccd0c1651555003379fc4de6141a570437422549125e5cebe95d6094d267c2a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b77b31c469f607d371733486044ccfd50fd05491d0e82a65e25e290353ee2a0
MD5 4c7c56ffe4228c95281d7ec7b1cc17a3
BLAKE2b-256 e7fb64e5bfee45ec170c76ee55ad5d0c58244b34fdd1b1670e3099ce3aa0c8df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e4e669c1a21ae3a2de6382e4c7fa009b16e215a6804fa56e9c8359cfba5a106
MD5 37c83a6c7b148c15fc1705e304bb8f58
BLAKE2b-256 391560f24e796221ef59fd34414a2d04b582ed7f3093979e3c16fb909ca8c905

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 42a5ee783c777da32a3594edea798d75e514aa49d68341f3932529b48d167ccf
MD5 e5cd1c59cbec8e928ff036ecc92a1dac
BLAKE2b-256 2a80cc055922776a0a41554042c51f6ad3f60c2dfecf0b818d4ca23b64b30ff8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ae059f57102c3dd86353c7dc5776d4dba01e752322ddd16a378791419e3ebada
MD5 556c2ec8dcf3cb246ee456fdd1ed8c22
BLAKE2b-256 49f0f98187b42337fd84de307abf08441b9c7af7d0680a4e75b437c6877124e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62caa246f2ec93102205eb175be1db4af77092256939e895383df29fa9662acb
MD5 789e21076e1e8ab9d59b6c85bfb602e5
BLAKE2b-256 a8cfbe5d732d8a6370d3d7c0d7d2d91959cc7f00b17e551873fe10f0530069a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7ca85dd545f5eba3c2364da60a7968ff7e0524d602a19fa746d926ec23deab4c
MD5 e895354913002bc7e8dcab099e26695a
BLAKE2b-256 951e7b2dcf315ab4b04391c42888c84dfca1aecd2ecc965dcb9a23a60bb1131e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 86bdbf759f3153a0a482f8da30e9fba99c1a71dedfec820dd70cefa9d8f32450
MD5 cc2b62e321d28f1a123a79016faca31f
BLAKE2b-256 f6f7879b7f2a1e3258cfb7871d818c94b8c1d54da43f166af73dab7b7884d69a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d5b2c2f8c731fe38a85d25da2c4db973c2700922b541b547510edcef6f7ca3fd
MD5 0b933971164814b8503af510ffe21e62
BLAKE2b-256 f687a2c5c360569b828f7b9ed5e9a94df8c18a3dd9b3bf193e722fd4475d74ed

See more details on using hashes here.

Provenance

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