Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

slamd-3.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

slamd-3.0.1-cp314-cp314t-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

slamd-3.0.1-cp314-cp314-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

slamd-3.0.1-cp314-cp314-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

slamd-3.0.1-cp313-cp313-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

slamd-3.0.1-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

slamd-3.0.1-cp312-cp312-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

slamd-3.0.1-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

slamd-3.0.1-cp311-cp311-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

slamd-3.0.1-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file slamd-3.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c223ebad5f8aa4d769ee836cac341676cb955221ee79bc6cbf63729a62fc968c
MD5 01a5e405796c2800ed30733c6362be01
BLAKE2b-256 796cd84a8ffe8772c5e1970d174acebbd27bb0ceb9898b900f7b5792c89556ca

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75cccc826d6afb54b5db750c5d6b5746690ba7f00d083d07d4c42ded465818e3
MD5 b1cdee19e1e65a8cf7714d1c788d280a
BLAKE2b-256 e799b2b0288f70050a1cef031f45f1e3aa3ddbe86f1082e2558aa9ea42ce4c98

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16af23278176bad7f68f29826caa1e004c485cc6b8f47d6fa6c6f5eb9d857be3
MD5 f7f7bc213c1bc320e0e641d366f12a07
BLAKE2b-256 39df0c064a8e8217c48d3f75f72dde7cd9b32c7fc1599d7163921b2366aef83c

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cdcf1fce6606e45d968276ab75c14759611e802212d929ee9307ac95f346b58e
MD5 0de33550aeabc6920f170c72a52b2f42
BLAKE2b-256 7620573ebe00d6823ecb6bf9b08b134ef268aa7c69e71ced555a7e1867ef20e8

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 58dea2e39c449dc27a9331f35395ffe7207d855b74f31f3035bcf2bd7ff6b261
MD5 39bd883b4ed525d2c45fd479c3af19f9
BLAKE2b-256 41b9addf557792b93736c79e938a8bee3674e4ab6d2ce852c169c393069554b6

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 74d8d6c96ac5535a89c458d14fd7dbb45261125abdeb4ab8e7e7a318bb46910b
MD5 29ebd8239b15862313e3bb5ed6a1ff2e
BLAKE2b-256 2c3161ea861077f8ddd5dd8d2c333e089a10bb822001e999a5b69ed3d6007ed3

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 80f1c888f4bfba96d7760e7efc6035895eaf67ecb1194f03678d4b9ffb498e44
MD5 67229db57e8681bdb14affbc25a5a6ca
BLAKE2b-256 9083b04d6f9e7738c5ae116abc0c4389ef6a246d255f680040c8b5a1756f6f76

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4c077c675d5f0bf6d0086e9413665c1b60abbd986c4ec669f1c67af86ed8e23
MD5 7709f1dea219e8732fda3a5257f18919
BLAKE2b-256 b7777980bf340fd440e12316d221c96c9da8eb3aa1072b3d8fe30880ba64d34c

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8fb6dd49fab7cf5a8a670c7ad9589b44a9314a55e3aae87f6e80846d900df3d1
MD5 d6f4e102305efe029b3bf46ce114312b
BLAKE2b-256 816f6cb46018e1f94c1816f258f12b7fd25e7efc06ffb7651bca97055606147d

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slamd-3.0.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4a5ff39c4d7aeade01a5d3252194e53e9d353accb7ac2144c86b955c66b8017
MD5 18872f697fd7bb7bdc48bd0a58982143
BLAKE2b-256 64b747d20d00e6ca38d687e86585cb62065822638260dd958b4b7edbb60e9e4b

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page