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

Uploaded CPython 3.13Windows x86-64

slicer_layer_dm-1.2.5-cp313-cp313-manylinux_2_28_x86_64.whl (234.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.5-cp313-cp313-macosx_11_0_arm64.whl (189.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

slicer_layer_dm-1.2.5-cp312-cp312-win_amd64.whl (233.1 kB view details)

Uploaded CPython 3.12Windows x86-64

slicer_layer_dm-1.2.5-cp312-cp312-manylinux_2_28_x86_64.whl (234.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.5-cp312-cp312-macosx_11_0_arm64.whl (189.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

slicer_layer_dm-1.2.5-cp311-cp311-win_amd64.whl (233.0 kB view details)

Uploaded CPython 3.11Windows x86-64

slicer_layer_dm-1.2.5-cp311-cp311-manylinux_2_28_x86_64.whl (234.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.5-cp311-cp311-macosx_11_0_arm64.whl (188.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

slicer_layer_dm-1.2.5-cp310-cp310-win_amd64.whl (232.9 kB view details)

Uploaded CPython 3.10Windows x86-64

slicer_layer_dm-1.2.5-cp310-cp310-manylinux_2_28_x86_64.whl (234.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

slicer_layer_dm-1.2.5-cp310-cp310-macosx_11_0_arm64.whl (188.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cb9744e5eb346fb07be94b474f92ae7fe693932ae03b3eb781639342a96cdd28
MD5 f0cb4e6970648f549ce77c416a27acbb
BLAKE2b-256 c521fe9460b5939e470ecbc8d3c676583453bd0e24633057b86314d734a532c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a27f4c6ab8f22eb8cf37c65d2c5f1d81925b6a3eb5f14d633d6678ea8d74b24
MD5 5b928af23540a48cd48ad4a8d5c26997
BLAKE2b-256 2116aae4413b59b56d6e12f1ead4f211fc6bcad8502699c925e94acdc8f3a247

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1de98b32672b5a8cd24ddc19c15d30e19182b14bef03bc609452cc25a7918a02
MD5 115e432021e7968f8f8f9d424e5250a0
BLAKE2b-256 73e04122c62485a98870f2feeedd42d474d29afad4f6794fd69135865a918c14

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2052e86b28cd3f371de87201a2e8014589f0524761f6fb93b302d19a12a61c2c
MD5 ac1e37a36fc12bb28e17a6ac98cfa813
BLAKE2b-256 70c6a4f1c9acb6e619d7152866a3abbcbd57621322ae6cf5e4005c7e428d86f6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2de8b4602cd52b4eadcdf68b8e380cf1771e57e9cf4469c4ee4149227993fb92
MD5 7946cb6f517668ad31c7fb98a391d1a2
BLAKE2b-256 7fe1a307fba5a19b0393890a2101adf8f2af5b9e4d999bfa0d3d241974bcd007

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d064748ba1f9dc99f1d88b1b5cd6cdff0bf7e13aabeee36d3336b5a3962ed039
MD5 bddfe0dc8ea2bf616978c2fd20d26395
BLAKE2b-256 579bb8ecfc630fa4c432695f1c9864531a5a4825ceb44dd60a35abefa5346bbc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 421a8928eddb54a1acebbc062acfbc13bc9ac822a69b4c196c81320b0cd86fef
MD5 325941779c15d8e21d16a54cc5d0bd13
BLAKE2b-256 3d3761858147c319a6195a900d3412a03814587801cc6a57f51169c797a84a52

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 879005a4a883401c7dc1f9101d3fcfefd92fc2b1e281bb1d2b8b7f72f55397e4
MD5 0888e8ea64c7d6f6c9551f4094baec8f
BLAKE2b-256 2190678ef5dc1ec784a94421d1cadd9e0059fcd9cf7525156887cc507c7fb975

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54aa7c81ee075866f2b9888676d6d8a0957acf53f7c75bf84d72ac7111183e52
MD5 9328c1250d799eb57baf8656ebb7d9a4
BLAKE2b-256 1f0d833ac5eda1a0b7b64bdccc0ffd1b3b9281c7b514ad96dff08977abdef1e4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5a79b4424a442ad0c9e311570a3aec7af8f1a30ce2dc8eeb0b837c685cf14b63
MD5 e3ad11f052730f918f21bfe603acbc08
BLAKE2b-256 364d75b2b643799d73518358815a64df82cba2a452e64c706b7cdfb8220e85d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ca001c0a676577ef53f0db86ea5043442c150b76c6023143aa4a60fab9a03b2
MD5 c700428f26fbf5979569d3da6ec217ba
BLAKE2b-256 962d1062aad2d9afaec3d1cad052e39a5b638ca0ac4647e1b22546860582c0f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slicer_layer_dm-1.2.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7c34de1b78708c9ffec42199cb4cdff506e6cd7482fd73e3aaa6007c7399316
MD5 de874f758dac273e2411629babe8d2b9
BLAKE2b-256 143453faebebf2560e38482f6bc921119fe3c3f70681fbfa059b4429891ef4d6

See more details on using hashes here.

Provenance

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