SlicerLayerDisplayableManager
A 3D Slicer module introducing a new displayable manager architecture for layered rendering and interaction handling.
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:
LayerDMis 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.LayerDMSDKis 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)
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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logSecurity 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.
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 logA 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.