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.0-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.0-cp314-cp314t-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

slamd-3.0.0-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.0-cp314-cp314-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

slamd-3.0.0-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.0-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

slamd-3.0.0-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.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

slamd-3.0.0-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.0-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.0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b654fe069b3a0ae03778cb542971552ac606cabd66c4f1fefafc96ab6e11832f
MD5 a244e3d1365a24ed5f804251eaedaa3f
BLAKE2b-256 74f0044d3847884c1290be14add9a03ce8d5b5e096d2c08708d522a315f17aa9

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 177b6c201e56d2fe17ebc39da92ab2f25c8f93827ae6b20dd4e795260bafd598
MD5 a17829ff3680834617cdb8d1b58cdb80
BLAKE2b-256 7653603ee2b806102b9f7dd1e1cd16332d6381deb44cbf975bd433697edd2fb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4cfcbf794e762ff5a73bf8ee8d1b5e3a82ef526f5a93c1aa4ee272a04ce4db0e
MD5 836961298f9e09d08eb7043020e86897
BLAKE2b-256 ef5850740c8d43c36c86e5535cafdbc13a04709ecec5cf33858706b20cc1df86

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e6ee41aef6eaaf673249266e96e9bf107dd445f5add42ee5ebb726a9076fa34
MD5 3a7c295a12d4970ed433652d26d589a8
BLAKE2b-256 9d105c4e73203f4cfd3ec5e20944869a2af5f0d3ec2523cb2c25430372af6a9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11902d81dfd483b391c757f2114627fbd0705e38f8cfa4e76285579449722a4b
MD5 1843204887e6bc7d8af3d48a62b3ec30
BLAKE2b-256 b3c71a3de3882858018c3f77884a5abf8bc144185b977131bfd3028f2e1fcd94

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9dfcc6941f82f988160c8003bdad0422857e0b7c4bdd5f8800f706948958573
MD5 67e79b5c46dd5ee4481808ac5afc0893
BLAKE2b-256 01ea5192e0b67240acbe2cf6f35bd5f8df363b467f547aad5245ed9d19ba72f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39462fa1337030ce0fe5da085ad76fbc5f274da952f6d0a549f9a0d1fa4c23cd
MD5 814ce0b89fb604ac7e4bc935420d4414
BLAKE2b-256 8bdcb7bf9a4cf6e6bdfee6d61af5f8d608bfd7996274e780a04b19599f3746b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fc5392771778bb70ba9f8ca2e2921a60f8cbe3538a390b695c02eff6593fca7
MD5 a88c828924d37cf44c26a3d256d91297
BLAKE2b-256 35c66ed70ac1ce7c3e9acc7ac8bb36fc5bc8a3d96d0b491f260965dba54cda66

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a8502879d6da1e8ae1a556b6213969e1eb509323360f021724cca27d38620138
MD5 c2cb1058145ffee3869f1d8a3431d1aa
BLAKE2b-256 2a4d6c64ad66bc868ac14932ef348bd420573cb507d1d53686516b2bb1911035

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for slamd-3.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de9ea275b02425a103794b15d929444dce3a06278df5f65941b3ce1775c865f2
MD5 c3a1d45b42fd40e5dc7f5f49040b22f3
BLAKE2b-256 527d5443556088b611074fe538507bf5bb1256a887cbd2b2d66d12ea33ba4228

See more details on using hashes here.

Provenance

The following attestation bundles were made for slamd-3.0.0-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