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 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 2.0.0
File Actions
slicer_layer_dm-2.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for slicer_layer_dm-2.0.0-cp313-cp313-win_amd64.whl
slicer_layer_dm-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-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
slicer_layer_dm-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-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
slicer_layer_dm-2.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for slicer_layer_dm-2.0.0-cp312-cp312-win_amd64.whl
slicer_layer_dm-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-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
slicer_layer_dm-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-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
slicer_layer_dm-2.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for slicer_layer_dm-2.0.0-cp311-cp311-win_amd64.whl
slicer_layer_dm-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-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
slicer_layer_dm-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-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
slicer_layer_dm-2.0.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for slicer_layer_dm-2.0.0-cp310-cp310-win_amd64.whl
slicer_layer_dm-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-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
slicer_layer_dm-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-2.0.0-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 2.9 MB

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

Download URL slicer_layer_dm-2.0.0-cp313-cp313-win_amd64.whl
Size 250.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
37ab8d13fd8ba48d19bf01ea1b85091a5f4a027ba98dcda884ecc65e84a19710
BLAKE2b-256 checksum
How to use checksums
a00df5a443a8392e74887f25283bc87845df1c2833974a81b57409621a217026
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-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 254.2 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5f768a25ceccd5d27a0c87bbaafe11568a3f42ebf117f96e680474c6f552d016
BLAKE2b-256 checksum
How to use checksums
deadb07743930df754421a1f60e76a0a70e47978bd4a2f42888ab86d95257837
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-2.0.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL slicer_layer_dm-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
Size 209.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2ae5d7a3c6e1c1ad93756428dfc0aa727e55ca46a5eb1cf270e5a65700642c2a
BLAKE2b-256 checksum
How to use checksums
541fe71dae554bfbdeda1e7af235f17068f6ccae4f0db01808ca5f273f8c7b48
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-2.0.0-cp312-cp312-win_amd64.whl

Download URL slicer_layer_dm-2.0.0-cp312-cp312-win_amd64.whl
Size 250.3 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
39dcd4103295390bfed80f699bfa95a0506427ac8566ac9a26cce06b4bc7d4c1
BLAKE2b-256 checksum
How to use checksums
b71683113512875dab23fde4cd364196142dc6aa8e7493cd860dc65863ca5215
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-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 254.2 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
089a65d37b467052d3e57cb5367bb48e965263821f45a4ced42588b7103ae4b5
BLAKE2b-256 checksum
How to use checksums
97f0813f145f9f4b70ae11aa4c1f3cf1c9b7bec778f4ba00041b9d319cfe0c67
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-2.0.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL slicer_layer_dm-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
Size 208.9 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
19ad3ba4ae933c699b29c7e1b741c87657f8737ad38ef81f70ac3a87e974b724
BLAKE2b-256 checksum
How to use checksums
4f23a872d85150f81bcfc3560b3e35dcf76c05605ac0566283a4c35df54146a6
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-2.0.0-cp311-cp311-win_amd64.whl

Download URL slicer_layer_dm-2.0.0-cp311-cp311-win_amd64.whl
Size 250.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
549ce5c3ccc286357b2037ec58d42637e131c3730cebc2b139b68a5289c038c0
BLAKE2b-256 checksum
How to use checksums
ae795ebcd3e832f881a6fbc2636ab77b057214e88bb07e709fbfe82b2b7d0899
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-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 254.0 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c017024fc3748218682f24a332e500f3e79eede23bc75a0bd92c240fd51df5c9
BLAKE2b-256 checksum
How to use checksums
8acc42d1c6335dd03652dc875d72bdb205bf8daf8ed18f7ef6aaa83c07bb7ab2
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-2.0.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL slicer_layer_dm-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
Size 208.6 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
26ed182214d7e7af4ce848e25cf8761d39b48075c58abb64a8f1f62eb4e53bd9
BLAKE2b-256 checksum
How to use checksums
44773fa820d830715daf919f326edf708f60d5c83d88a2310b7cbd0662fd90ef
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-2.0.0-cp310-cp310-win_amd64.whl

Download URL slicer_layer_dm-2.0.0-cp310-cp310-win_amd64.whl
Size 250.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
fc258f19ddb0a9a76c379c0fb93d690626a3e09d259a5383209297458dd6d341
BLAKE2b-256 checksum
How to use checksums
7ae73cc59e5e7669ee48a22fe48a3dbab0640fc1f8bd187f951e70302df82685
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-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL slicer_layer_dm-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 254.0 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7a455f9593e11dad71706d5d802af917a47eb3bd43e7fdd1ce564ac7db11c758
BLAKE2b-256 checksum
How to use checksums
919ca320ad0246cfa0d41cf6a2eefbb13740d1b7324259a22b1c818c2ad0ec23
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-2.0.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL slicer_layer_dm-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
Size 208.6 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
022d5cb457a8c6cdff7c23ec1b7035cd6f9023b99c4c524b3d3daf16c1882d79
BLAKE2b-256 checksum
How to use checksums
bdcae0dfc73a5123f5b50d2cdcfe411d3552354c1e267714afd4e61f8b7b8d8d
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 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-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