slamd is a 3D visualization library for Python. pip install, write a few lines, and you have a GPU-accelerated interactive 3D viewer. No event loops, no boilerplate — just set geometry and it shows up.
pip install slamd
Why slamd?
Most 3D visualization in Python is either painfully slow (matplotlib's 3D mode), or requires you to learn a massive framework. slamd is neither.
- Dead simple — create a visualizer, set geometry, done. The viewer window spawns automatically in a separate process. No event loop, no main thread hijacking, no callbacks.
- Real 3D rendering — GPU-accelerated OpenGL. Handles millions of points, animated meshes, and real geometry at interactive framerates. This is not a plot library pretending to do 3D.
- Pose tree — objects live in a transform tree (like ROS TF or a scene graph). Set a parent transform and everything underneath moves. Makes articulated and hierarchical scenes trivial.
- The right primitives — point clouds, meshes, camera frustums, triads, arrows, polylines, spheres, planes. The stuff you actually need when working with 3D data, robotics, or SLAM.
How is this different from Rerun?
slamd is a stateful viewer, not a logging database. There's no append-only log, no timeline, no timestamps forced onto your data. You have a tree of geometry — you set objects, move them, delete them, and what you see is what's there right now.
Rerun is powerful, but it's a big tool with a lot of concepts. slamd does one thing: show your geometry, right now, with minimal API surface. If you want a data recording platform with time-series scrubbing, use Rerun. If you want to throw some geometry on screen and look at it, use slamd.
Quick Start
import slamd
vis = slamd.Visualizer("Hello world")
scene = vis.scene("scene")
scene.set_object("/origin", slamd.geom.Triad())
That's it. A window opens with an interactive 3D view.
Objects live in a transform tree — move a parent and children follow:
scene.set_object("/robot/camera/frustum", slamd.geom.CameraFrustum(K, w, h, scale=0.2))
scene.set_object("/robot/lidar/cloud", slamd.geom.PointCloud(pts, colors, point_size))
# Move the whole robot — camera and lidar come with it
scene.set_transform("/robot", pose)
Multiple Windows
Create multiple scenes — each gets its own sub-window with ImGui docking. Drag, tab, float, or dock them however you like:
vis = slamd.Visualizer("multi-view")
scene1 = vis.scene("RGB camera")
scene2 = vis.scene("point cloud")
scene1.set_object("/frustum", slamd.geom.CameraFrustum(K, w, h, img, 1.0))
scene2.set_object("/cloud", slamd.geom.PointCloud(pts, colors, 0.3, 0.5))
Geometry
- Point clouds —
slamd.geom.PointCloud - Meshes —
slamd.geom.Mesh - Camera frustums (with image) —
slamd.geom.CameraFrustum - Arrows —
slamd.geom.Arrows - Polylines —
slamd.geom.PolyLine - Spheres —
slamd.geom.Sphere/slamd.geom.Spheres - Triads —
slamd.geom.Triad - Planes —
slamd.geom.Plane - Boxes —
slamd.geom.Box
Installation
Wheels on PyPI for Linux and macOS (Python >= 3.11):
pip install slamd
Only runtime dependency is numpy >= 1.23.
Examples
See examples/ for the full set.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for slamd 3.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| slamd-3.1.0-cp314-cp314t-manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux glibc 2.28+ x86-64 | Details |
| slamd-3.1.0-cp314-cp314t-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 free-threading | macOS 11.0+ ARM64 | Details |
| slamd-3.1.0-cp314-cp314-manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.28+ x86-64 | Details |
| slamd-3.1.0-cp314-cp314-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 11.0+ ARM64 | Details |
| slamd-3.1.0-cp313-cp313-manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64 | Details |
| slamd-3.1.0-cp313-cp313-macosx_11_0_arm64.whl | CPython 3.13 | CPython 3.13 | macOS 11.0+ ARM64 | Details |
| slamd-3.1.0-cp312-cp312-manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64 | Details |
| slamd-3.1.0-cp312-cp312-macosx_11_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 11.0+ ARM64 | Details |
| slamd-3.1.0-cp311-cp311-manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ x86-64 | Details |
| slamd-3.1.0-cp311-cp311-macosx_11_0_arm64.whl | CPython 3.11 | CPython 3.11 | macOS 11.0+ ARM64 | Details |
Total release size: 16.4 MB
Release files / slamd-3.1.0-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | slamd-3.1.0-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
169437d73ea76dd33868e5e687221b02fb9b1775ef3e1c85d8af52fd411e88ad
|
|
BLAKE2b-256 checksum How to use checksums |
a18b2f5bd17295d979b8fc53c811d25fe949767ec76b6ecec48bed4341dedc38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | slamd-3.1.0-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
53b1613a0cdccd4c77b671e99ad5b3e66a189208e9f1aec16eed5977328583e3
|
|
BLAKE2b-256 checksum How to use checksums |
592a826c4d564e46da1110fbf41b3ddad3e5568eca3b0d42e81639a349472bb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | slamd-3.1.0-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f65cb06cce516ad04920b6549b6c609089ac438026fb06752a3ff1edab27d215
|
|
BLAKE2b-256 checksum How to use checksums |
c88ce7c936729ae10f249a931f1165f5ad182b3b773a384ea4aa821c14afd8f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | slamd-3.1.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
792cfa07e4bcea222ec6be83575873defda13c1bf0c8673e9189610882f7be20
|
|
BLAKE2b-256 checksum How to use checksums |
250df1bcf83cabf8f94c975439c145846d4a9e5e43f617b5e1c5bb3395b7e511
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | slamd-3.1.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5e43c0f7a70655d402f12ffdccb4c476768b9cd8e43ede553f75d665c8da73d3
|
|
BLAKE2b-256 checksum How to use checksums |
f53a79ee402d2a22dcea41b96dae02c3cc998c671b7d09988321775821127930
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | slamd-3.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4996f0701bcf84ea3383894d7bcadd22c1eaa18e55abaf85bf92d1870066dc09
|
|
BLAKE2b-256 checksum How to use checksums |
04983f8983312a13d3a4984f489c322f17a2dc68677c59d1f18b8ac3997f3c4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | slamd-3.1.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
83834603e280350fcee1eeee750aeaf56407fcbdd83c4d7379fd81ae7f45e871
|
|
BLAKE2b-256 checksum How to use checksums |
c307722cf438cf60107da28e9b90f66f66f124eab8991528a38be566dc570c48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | slamd-3.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
08d6d8b3ebf8344ba0a3cfe6e836b95bd9c5eca02626f5e623b8342ed49ae604
|
|
BLAKE2b-256 checksum How to use checksums |
ef62a18a435bfb0c54afceb2fed5d964159949ed31fc23671e9fe16412cf9237
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | slamd-3.1.0-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4d24b40343b3ab8c6bb12fad7541a6423c4e6dfc3f75d5127b69f6431854da22
|
|
BLAKE2b-256 checksum How to use checksums |
92d248f53a91223dd682e1ca075e8199b77fab16bc6a44794ed25cb89d4d9866
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency logRelease files / slamd-3.1.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | slamd-3.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ea2ada8b032f4f3de5203728802d3e1d7a269ac7334f85a917a439e6c51d5744
|
|
BLAKE2b-256 checksum How to use checksums |
1ef79629cdf3abaf59808466325874d7b59ec8a695f2a20131086cea88fbade8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 24, 2026.
Transparency log