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.1.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.1.0-cp314-cp314t-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

slamd-3.1.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.1.0-cp314-cp314-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

slamd-3.1.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.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

slamd-3.1.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.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

slamd-3.1.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.1.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.1.0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for slamd-3.1.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 169437d73ea76dd33868e5e687221b02fb9b1775ef3e1c85d8af52fd411e88ad
MD5 19395085c5c8c1138ba6dcab84765596
BLAKE2b-256 a18b2f5bd17295d979b8fc53c811d25fe949767ec76b6ecec48bed4341dedc38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 53b1613a0cdccd4c77b671e99ad5b3e66a189208e9f1aec16eed5977328583e3
MD5 a4be0bc22f0ab5ad1bf4b71bb0a53120
BLAKE2b-256 592a826c4d564e46da1110fbf41b3ddad3e5568eca3b0d42e81639a349472bb6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f65cb06cce516ad04920b6549b6c609089ac438026fb06752a3ff1edab27d215
MD5 2a574cf878db821a85795898b28918c3
BLAKE2b-256 c88ce7c936729ae10f249a931f1165f5ad182b3b773a384ea4aa821c14afd8f8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 792cfa07e4bcea222ec6be83575873defda13c1bf0c8673e9189610882f7be20
MD5 2a640b9bc4eb6d97f8b0eb335095911a
BLAKE2b-256 250df1bcf83cabf8f94c975439c145846d4a9e5e43f617b5e1c5bb3395b7e511

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5e43c0f7a70655d402f12ffdccb4c476768b9cd8e43ede553f75d665c8da73d3
MD5 c627db50f4c8916fa005446283f22ecf
BLAKE2b-256 f53a79ee402d2a22dcea41b96dae02c3cc998c671b7d09988321775821127930

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4996f0701bcf84ea3383894d7bcadd22c1eaa18e55abaf85bf92d1870066dc09
MD5 96f6ef96611832a53433ad2aa822ecc7
BLAKE2b-256 04983f8983312a13d3a4984f489c322f17a2dc68677c59d1f18b8ac3997f3c4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83834603e280350fcee1eeee750aeaf56407fcbdd83c4d7379fd81ae7f45e871
MD5 b0393390388204c4fc862bcf60b2d811
BLAKE2b-256 c307722cf438cf60107da28e9b90f66f66f124eab8991528a38be566dc570c48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08d6d8b3ebf8344ba0a3cfe6e836b95bd9c5eca02626f5e623b8342ed49ae604
MD5 3f38a6fbd989fae75e39087d37f8556d
BLAKE2b-256 ef62a18a435bfb0c54afceb2fed5d964159949ed31fc23671e9fe16412cf9237

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d24b40343b3ab8c6bb12fad7541a6423c4e6dfc3f75d5127b69f6431854da22
MD5 5368576aeca1225888697913ebde6c52
BLAKE2b-256 92d248f53a91223dd682e1ca075e8199b77fab16bc6a44794ed25cb89d4d9866

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for slamd-3.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea2ada8b032f4f3de5203728802d3e1d7a269ac7334f85a917a439e6c51d5744
MD5 e14de4247152ec64138408fee4309423
BLAKE2b-256 1ef79629cdf3abaf59808466325874d7b59ec8a695f2a20131086cea88fbade8

See more details on using hashes here.

Provenance

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