A 3D visualiztion library
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slamd-3.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: slamd-3.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.14t, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c223ebad5f8aa4d769ee836cac341676cb955221ee79bc6cbf63729a62fc968c
|
|
| MD5 |
01a5e405796c2800ed30733c6362be01
|
|
| BLAKE2b-256 |
796cd84a8ffe8772c5e1970d174acebbd27bb0ceb9898b900f7b5792c89556ca
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl -
Subject digest:
c223ebad5f8aa4d769ee836cac341676cb955221ee79bc6cbf63729a62fc968c - Sigstore transparency entry: 1111045701
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp314-cp314t-macosx_11_0_arm64.whl.
File metadata
- Download URL: slamd-3.0.1-cp314-cp314t-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.14t, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75cccc826d6afb54b5db750c5d6b5746690ba7f00d083d07d4c42ded465818e3
|
|
| MD5 |
b1cdee19e1e65a8cf7714d1c788d280a
|
|
| BLAKE2b-256 |
e799b2b0288f70050a1cef031f45f1e3aa3ddbe86f1082e2558aa9ea42ce4c98
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp314-cp314t-macosx_11_0_arm64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp314-cp314t-macosx_11_0_arm64.whl -
Subject digest:
75cccc826d6afb54b5db750c5d6b5746690ba7f00d083d07d4c42ded465818e3 - Sigstore transparency entry: 1111045697
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: slamd-3.0.1-cp314-cp314-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16af23278176bad7f68f29826caa1e004c485cc6b8f47d6fa6c6f5eb9d857be3
|
|
| MD5 |
f7f7bc213c1bc320e0e641d366f12a07
|
|
| BLAKE2b-256 |
39df0c064a8e8217c48d3f75f72dde7cd9b32c7fc1599d7163921b2366aef83c
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp314-cp314-manylinux_2_28_x86_64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp314-cp314-manylinux_2_28_x86_64.whl -
Subject digest:
16af23278176bad7f68f29826caa1e004c485cc6b8f47d6fa6c6f5eb9d857be3 - Sigstore transparency entry: 1111045705
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: slamd-3.0.1-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdcf1fce6606e45d968276ab75c14759611e802212d929ee9307ac95f346b58e
|
|
| MD5 |
0de33550aeabc6920f170c72a52b2f42
|
|
| BLAKE2b-256 |
7620573ebe00d6823ecb6bf9b08b134ef268aa7c69e71ced555a7e1867ef20e8
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
cdcf1fce6606e45d968276ab75c14759611e802212d929ee9307ac95f346b58e - Sigstore transparency entry: 1111045679
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: slamd-3.0.1-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58dea2e39c449dc27a9331f35395ffe7207d855b74f31f3035bcf2bd7ff6b261
|
|
| MD5 |
39bd883b4ed525d2c45fd479c3af19f9
|
|
| BLAKE2b-256 |
41b9addf557792b93736c79e938a8bee3674e4ab6d2ce852c169c393069554b6
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp313-cp313-manylinux_2_28_x86_64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
58dea2e39c449dc27a9331f35395ffe7207d855b74f31f3035bcf2bd7ff6b261 - Sigstore transparency entry: 1111045660
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: slamd-3.0.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74d8d6c96ac5535a89c458d14fd7dbb45261125abdeb4ab8e7e7a318bb46910b
|
|
| MD5 |
29ebd8239b15862313e3bb5ed6a1ff2e
|
|
| BLAKE2b-256 |
2c3161ea861077f8ddd5dd8d2c333e089a10bb822001e999a5b69ed3d6007ed3
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
74d8d6c96ac5535a89c458d14fd7dbb45261125abdeb4ab8e7e7a318bb46910b - Sigstore transparency entry: 1111045686
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: slamd-3.0.1-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80f1c888f4bfba96d7760e7efc6035895eaf67ecb1194f03678d4b9ffb498e44
|
|
| MD5 |
67229db57e8681bdb14affbc25a5a6ca
|
|
| BLAKE2b-256 |
9083b04d6f9e7738c5ae116abc0c4389ef6a246d255f680040c8b5a1756f6f76
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp312-cp312-manylinux_2_28_x86_64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
80f1c888f4bfba96d7760e7efc6035895eaf67ecb1194f03678d4b9ffb498e44 - Sigstore transparency entry: 1111045693
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: slamd-3.0.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4c077c675d5f0bf6d0086e9413665c1b60abbd986c4ec669f1c67af86ed8e23
|
|
| MD5 |
7709f1dea219e8732fda3a5257f18919
|
|
| BLAKE2b-256 |
b7777980bf340fd440e12316d221c96c9da8eb3aa1072b3d8fe30880ba64d34c
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
d4c077c675d5f0bf6d0086e9413665c1b60abbd986c4ec669f1c67af86ed8e23 - Sigstore transparency entry: 1111045675
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: slamd-3.0.1-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fb6dd49fab7cf5a8a670c7ad9589b44a9314a55e3aae87f6e80846d900df3d1
|
|
| MD5 |
d6f4e102305efe029b3bf46ce114312b
|
|
| BLAKE2b-256 |
816f6cb46018e1f94c1816f258f12b7fd25e7efc06ffb7651bca97055606147d
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp311-cp311-manylinux_2_28_x86_64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp311-cp311-manylinux_2_28_x86_64.whl -
Subject digest:
8fb6dd49fab7cf5a8a670c7ad9589b44a9314a55e3aae87f6e80846d900df3d1 - Sigstore transparency entry: 1111045666
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type:
File details
Details for the file slamd-3.0.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: slamd-3.0.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4a5ff39c4d7aeade01a5d3252194e53e9d353accb7ac2144c86b955c66b8017
|
|
| MD5 |
18872f697fd7bb7bdc48bd0a58982143
|
|
| BLAKE2b-256 |
64b747d20d00e6ca38d687e86585cb62065822638260dd958b4b7edbb60e9e4b
|
Provenance
The following attestation bundles were made for slamd-3.0.1-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
pip_publish.yml on Robertleoj/slamd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slamd-3.0.1-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
f4a5ff39c4d7aeade01a5d3252194e53e9d353accb7ac2144c86b955c66b8017 - Sigstore transparency entry: 1111045669
- Sigstore integration time:
-
Permalink:
Robertleoj/slamd@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Robertleoj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pip_publish.yml@fbcb31fe31d0e130b0654d0703da6383c1e712cb -
Trigger Event:
release
-
Statement type: