Skip to main content

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.

Testing

Tests are split between the two projects:

  • LayerDM is covered by unittests that only require the LayerDM runtime wheel. They are run by the 3D Slicer test runner when testing the extension, and by pytest when testing the wheels.
  • LayerDMSDK is covered by a test that builds a third party package against the SDK. Requiring the SDK, it belongs to the SDK test suite and is out of the scope of the LayerDM unittests.

To run them against the wheels, install the slicer-layer-dm wheel (and its dependencies) in a Python environment, then:

# LayerDM unittests (runtime wheel only)
python -m pytest LayerDM

# LayerDMSDK tests (require the SDK wheel)
python -m pytest LayerDMSDK

Note: LayerDM/Testing/Python drives displayable managers in render windows and renders offscreen. No X server is required: with no DISPLAY, VTK falls back to the EGL backend and renders with software GL. A display is only used if one is already available.

Metadata

Release files for slicer-layer-dm-sdk 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for slicer-layer-dm-sdk 2.0.0
File Actions
slicer_layer_dm_sdk-2.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp313-cp313-win_amd64.whl
slicer_layer_dm_sdk-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
slicer_layer_dm_sdk-2.0.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for slicer_layer_dm_sdk-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
slicer_layer_dm_sdk-2.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp312-cp312-win_amd64.whl
slicer_layer_dm_sdk-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
slicer_layer_dm_sdk-2.0.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for slicer_layer_dm_sdk-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
slicer_layer_dm_sdk-2.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp311-cp311-win_amd64.whl
slicer_layer_dm_sdk-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
slicer_layer_dm_sdk-2.0.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for slicer_layer_dm_sdk-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
slicer_layer_dm_sdk-2.0.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp310-cp310-win_amd64.whl
slicer_layer_dm_sdk-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details for slicer_layer_dm_sdk-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
slicer_layer_dm_sdk-2.0.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for slicer_layer_dm_sdk-2.0.0-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 5.5 MB

Release files / slicer_layer_dm_sdk-2.0.0-cp313-cp313-win_amd64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp313-cp313-win_amd64.whl
Size 470.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
be46a8c93314ecb8d5542db0fa02d7c857e8173839f386a4d81658077ff2bb58
BLAKE2b-256 checksum
How to use checksums
cbee35199e2d225e87d94a3989e176fee1207563a8565d845c4271a580cc9031
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 473.3 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2a9379887cba6ad00304fc17f2f1b54b640a5ff7d0ac469f07486d1cb2e10b00
BLAKE2b-256 checksum
How to use checksums
076dadfc2ee0c2cde57079c920b3ee29bdceaed7ffdcf796be2950acfbe5785b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
Size 428.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0783b794675474c8857002200f3aee9bd4dda028122995ccfc835249462546ee
BLAKE2b-256 checksum
How to use checksums
d39af855a7aa00dd1e47439704475b4acf8963ece4116d1ad0eb0c0763ccec4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp312-cp312-win_amd64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp312-cp312-win_amd64.whl
Size 470.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a4e965f746cadf6a3a92ace79e5106d9396a897674a79e172848ccfc5a48fd75
BLAKE2b-256 checksum
How to use checksums
938cac795d975b17968037d963fed467c999cba1e7552b1468e74d867e5f0adf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 473.3 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5ca89faa12fe40fbf10e8aa9ef1a205ece2394dd6e9baa0514c255b93d1e04f2
BLAKE2b-256 checksum
How to use checksums
4100901826d4c1d5030a64cbc264d78ca072fca9bf2198d402e71ee692a5340a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
Size 428.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
017764b0270be071b9fd0ca2eb913c48428ee647063ddcdbb08f1ebc06c5430f
BLAKE2b-256 checksum
How to use checksums
cfccdc3c7e30bb8d24c3a958ebaba05a641f6cc4ea013434ef44ae054bcd5a57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp311-cp311-win_amd64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp311-cp311-win_amd64.whl
Size 470.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8ab5b7330d001f16c08efd67696d375f0c3a2201c940c24b1df0ee54af3cbc56
BLAKE2b-256 checksum
How to use checksums
3fbe54ca36c0d023fc5eac900e4c48d903da19ee0d0066eb30cdf98298a1077a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 473.1 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8cb9b1b0a2a3ba329fee7235865e455184ee76d365a2830ddd7e5cdde358e1d7
BLAKE2b-256 checksum
How to use checksums
95db68cdb51f85b9c3ea5bd519528d3762fa8410922ab69a408ee0cf98e9bf1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
Size 427.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ab5174c5c7b9724bf203746dea427333ca90fc36ed2a3ef354d5878cd6e568fc
BLAKE2b-256 checksum
How to use checksums
a2ac42991f2b065e9056bdbac7f29f70bbbac559c80b8d8c1af24556635ec28f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp310-cp310-win_amd64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp310-cp310-win_amd64.whl
Size 470.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
ea67a682d85dd170ae696cd82e18e5d7b0ee8947a34ee964de34b22e667e4a63
BLAKE2b-256 checksum
How to use checksums
9ca585f2c975942044dab1cb04778a5f751f0a6bae3b8211aa79ffe513797e55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 473.1 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b00fa1a372c87ff7f96f91fcb0ce9c9222640c7bf7c186af3472f88f212d5c6c
BLAKE2b-256 checksum
How to use checksums
619583590c5c74018e34d853263a7af473a6ab396d82188950d87ac85450ff36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / slicer_layer_dm_sdk-2.0.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL slicer_layer_dm_sdk-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
Size 427.8 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
13b680e6194a7d53f8145b23d865449c527a62a9307aae370a3bef093c310cdb
BLAKE2b-256 checksum
How to use checksums
678c6801fc163307d7f8583ca402b956c95129b3bd76a46dee3b2fb2c25c3e1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for slicer-layer-dm-sdk 2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 12 files in this release have been uploaded with provenance metadata.

Select from 12 files

Attestation for slicer_layer_dm_sdk-2.0.0-cp313-cp313-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page