Skip to main content

Python binding of the OctoMap library with bundled shared libraries.

Project description

PyOctoMap

OctoMap Core

A comprehensive Python wrapper for the OctoMap C++ library, providing efficient 3D occupancy mapping capabilities for robotics and computer vision applications. This modernized binding offers enhanced performance, bundled shared libraries for easy deployment, and seamless integration with the Python scientific ecosystem.

Features

  • 3D Occupancy Mapping: Efficient octree-based 3D occupancy mapping
  • Probabilistic Updates: Stochastic occupancy updates with uncertainty handling
  • Path Planning: Ray casting and collision detection
  • File Operations: Save/load octree data in binary format
  • Cross-Platform: Pre-built wheels for Linux (x86_64) and macOS (Apple Silicon arm64), with Windows compatibility via WSL

Installation

Quick Install (Recommended)

Install from PyPI (pre-built manylinux wheel when available):

pip install pyoctomap

🚀 ROS Integration: ROS/ROS2 integration is currently being developed on the ros branch, featuring ROS2 message support and real-time point cloud processing.

Building from Source

📋 Prerequisites: See Build System Documentation for detailed system dependencies and troubleshooting guide.

If you need to build from source or create custom wheels locally, we provide a cibuildwheel setup. First, ensure you have the repository cloned:

Linux / WSL / macOS:

# Clone the repository with submodules
git clone --recursive https://github.com/Spinkoo/pyoctomap.git
cd pyoctomap

To build locally using cibuildwheel:

pip install cibuildwheel
cibuildwheel --platform linux  # or macos

The CI build automatically creates wheels for Python 3.8-3.13 (cp38cp313), properly bundling all required C++ libraries.

📋 Google Colab Users: See Build System Documentation for detailed Colab installation instructions.

Quick Start

Basic Usage

import pyoctomap
import numpy as np

# Create an octree with 0.1m resolution
tree = pyoctomap.OcTree(0.1)

# Add occupied points
tree.updateNode([1.0, 2.0, 3.0], True)
tree.updateNode([1.1, 2.1, 3.1], True)

# Add free space
tree.updateNode([0.5, 0.5, 0.5], False)

# Check occupancy
node = tree.search([1.0, 2.0, 3.0])
if node and tree.isNodeOccupied(node):
    print("Point is occupied!")

# Save to file
tree.write("my_map.bt")

Tree Families Overview

PyOctoMap provides multiple octree variants from a single package:

  • OcTree – standard probabilistic occupancy tree (most users start here)
  • ColorOcTree – occupancy + RGB color per voxel
  • CountingOcTree – integer hit counters per voxel
  • OcTreeStamped – occupancy with per-node timestamps for temporal mapping

See the API Reference for a detailed comparison table and full method documentation.

Color Occupancy Mapping (ColorOcTree)

import pyoctomap
import numpy as np

tree = pyoctomap.ColorOcTree(0.1)
coord = [1.0, 1.0, 1.0]

tree.updateNode(coord, True)
tree.setNodeColor(coord, 255, 0, 0)  # R, G, B (0-255)

Batch insertion with colors:

# Insert point cloud with colors in a single operation
points = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]], dtype=np.float64)
colors = np.array([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]], dtype=np.float64)  # RGB in [0, 1] range
sensor_origin = np.array([0.0, 0.0, 0.0])  # Optional: for proper ray casting
tree.insertPointCloud(points, sensor_origin=sensor_origin, colors=colors)

Batch Operations (Summary)

For large point clouds, use the unified insertPointCloud method:

  • OcTree.insertPointCloud(points, origin, max_range=-1.0, lazy_eval=False, discretize=False)
  • ColorOcTree.insertPointCloud(points, sensor_origin=None, ..., colors=colors) — also sets per-point colors
  • OcTreeStamped.insertPointCloud(points, sensor_origin=None, ..., timestamps=ts) — also sets per-node timestamps

For extremely fast readout of the internal state into NumPy arrays without iteration, use extractPointCloud():

  • OcTree.extractPointCloud() -> (occupied_points, empty_points)
  • ColorOcTree.extractPointCloud() -> (occupied_points, empty_points, colors)
  • CountingOcTree.extractPointCloud() -> (coords, counts)
  • OcTreeStamped.extractPointCloud() -> (occupied_points, empty_points, timestamps)

See the Performance Guide for practical batch sizing and resolution recommendations.

Examples

See runnable demos in examples/:

  • examples/basic_test.py — smoke test for core API
  • examples/demo_occupancy_grid.py — build and visualize a 2D occupancy grid
  • examples/demo_octomap_open3d.py — visualize octomap data with Open3D
  • examples/sequential_occupancy_grid_demo.py — comprehensive sequential occupancy grid with Open3D visualization
  • examples/test_sequential_occupancy_grid.py — comprehensive test suite for all occupancy grid methods

Demo Visualizations

3D OctoMap Scene Visualization:

OctoMap Demo Scene

Occupancy Grid Visualization:

Occupancy Grid

Showcase

🎨 Photo to 3D Voxel Scene

pyocto-map-anything - Transform single photos into vibrant 3D voxel scenes using AI depth estimation (Depth Anything 3) and PyOctoMap's ColorOcTree. This showcase demonstrates the power of combining modern depth estimation models with efficient octree-based mapping, enabling instant 3D reconstruction from 2D images.

Features:

  • AI-powered depth estimation from single images
  • Automatic camera intrinsics estimation (DA3 models)
  • Color-integrated voxel mapping with ColorOcTree
  • Support for multiple depth models (Depth Anything v3, ZoeDepth, DPT)
  • High-resolution 3D reconstruction with configurable voxel resolution

Perfect for exploring PyOctoMap's color mapping capabilities and seeing how it integrates with modern computer vision pipelines.

Advanced Usage

Room Mapping with Ray Casting

import pyoctomap
import numpy as np

# Create octree
tree = pyoctomap.OcTree(0.05)  # 5cm resolution
sensor_origin = np.array([2.0, 2.0, 1.5])

# Add walls with ray casting
wall_points = []
for x in np.arange(0, 4.0, 0.05):
    for y in np.arange(0, 4.0, 0.05):
        wall_points.append([x, y, 0])  # Floor
        wall_points.append([x, y, 3.0])  # Ceiling

# Use batch insertion for better performance
wall_points = np.array(wall_points)
tree.insertPointCloud(wall_points, sensor_origin, lazy_eval=True)
tree.updateInnerOccupancy()

print(f"Tree size: {tree.size()} nodes")

Path Planning

import pyoctomap
import numpy as np

# Create an octree for path planning
tree = pyoctomap.OcTree(0.1)  # 10cm resolution

# Add some obstacles to the map
obstacles = [
    [1.0, 1.0, 0.5],  # Wall at (1,1)
    [1.5, 1.5, 0.5],  # Another obstacle
    [2.0, 1.0, 0.5],  # Wall at (2,1)
]

for obstacle in obstacles:
    tree.updateNode(obstacle, True)

def is_path_clear(start, end, tree):
    """Efficient ray casting for path planning using OctoMap's built-in castRay"""
    start = np.array(start, dtype=np.float64)
    end = np.array(end, dtype=np.float64)
    
    # Calculate direction vector
    direction = end - start
    ray_length = np.linalg.norm(direction)
    
    if ray_length == 0:
        return True, None
    
    # Normalize direction
    direction = direction / ray_length
    
    # Use OctoMap's efficient castRay method
    end_point = np.zeros(3, dtype=np.float64)
    hit = tree.castRay(start, direction, end_point, 
                      ignoreUnknownCells=True, 
                      maxRange=ray_length)
    
    if hit:
        # Ray hit an obstacle - path is blocked
        return False, end_point
    else:
        # No obstacle found - path is clear
        return True, None

# Check if path is clear
start = [0.5, 2.0, 0.5]
end = [2.0, 2.0, 0.5]
clear, obstacle = is_path_clear(start, end, tree)
if clear:
    print("✅ Path is clear!")
else:
    print(f"❌ Path blocked at: {obstacle}")

# Advanced path planning with multiple waypoints
def plan_path(waypoints, tree):
    """Plan a path through multiple waypoints using ray casting"""
    path_clear = True
    obstacles = []
    
    for i in range(len(waypoints) - 1):
        start = waypoints[i]
        end = waypoints[i + 1]
        clear, obstacle = is_path_clear(start, end, tree)
        
        if not clear:
            path_clear = False
            obstacles.append((i, i+1, obstacle))
    
    return path_clear, obstacles

# Example: Plan path through multiple waypoints
waypoints = [
    [0.0, 0.0, 0.5],
    [1.0, 1.0, 0.5], 
    [2.0, 2.0, 0.5],
    [3.0, 3.0, 0.5]
]

path_clear, obstacles = plan_path(waypoints, tree)
if path_clear:
    print("✅ Complete path is clear!")
else:
    print(f"❌ Path blocked at segments: {obstacles}")

Dynamic Environment Mapping & Iterators

For more complete examples on:

  • dynamic environment mapping,
  • iterator usage (begin_tree, begin_leafs, begin_leafs_bbx),

refer to the API Reference and example scripts in examples/.

Requirements

  • Python 3.8+
  • NumPy
  • Cython (for building from source)

Optional for visualization:

  • matplotlib (for 2D plotting)
  • open3d (for 3D visualization)

Documentation

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Acknowledgments

  • Previous work: wkentaro/octomap-python - This project builds upon and modernizes the original Python bindings
  • Core library: OctoMap - An efficient probabilistic 3D mapping framework based on octrees
  • Build system: Built with Cython for seamless Python-C++ integration and performance
  • Visualization: Open3D - Used for 3D visualization capabilities in demonstration scripts
  • Research support: Development of this enhanced Python wrapper was supported by the French National Research Agency (ANR) under the France 2030 program, specifically the IRT Nanoelec project (ANR-10-AIRT-05), advancing robotics and 3D mapping research capabilities.

Project details


Download files

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

Source Distribution

pyoctomap-1.2.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distributions

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

pyoctomap-1.2.1-cp314-cp314-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.14Windows x86-64

pyoctomap-1.2.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyoctomap-1.2.1-cp314-cp314-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyoctomap-1.2.1-cp313-cp313-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.13Windows x86-64

pyoctomap-1.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyoctomap-1.2.1-cp313-cp313-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyoctomap-1.2.1-cp312-cp312-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.12Windows x86-64

pyoctomap-1.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyoctomap-1.2.1-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyoctomap-1.2.1-cp311-cp311-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.11Windows x86-64

pyoctomap-1.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyoctomap-1.2.1-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyoctomap-1.2.1-cp310-cp310-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.10Windows x86-64

pyoctomap-1.2.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyoctomap-1.2.1-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyoctomap-1.2.1-cp39-cp39-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.9Windows x86-64

pyoctomap-1.2.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyoctomap-1.2.1-cp39-cp39-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyoctomap-1.2.1-cp38-cp38-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.8Windows x86-64

pyoctomap-1.2.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyoctomap-1.2.1-cp38-cp38-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file pyoctomap-1.2.1.tar.gz.

File metadata

  • Download URL: pyoctomap-1.2.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a614eb56ecca12cade9d953e30dbabd4b447b2268b5d53943caf5e48ecd82845
MD5 88c8683b50caf8975acd29b509145cfe
BLAKE2b-256 c13f8dd1f9e1ff6c1be88d98265dcca734b3000f0012b3df76e5f724fd4a7187

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyoctomap-1.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bc50a0cf481146dd575619fa6f5ffed6ed69497406cc1191c7cada4deb4e65e6
MD5 c06c8e248c8271c67276e46cd2dbf2b9
BLAKE2b-256 93a1cd49e12db145186d8c1264c5fefde7a010bbf83a62e0b51e7668d789aae1

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2ad6495c259788d6a56feef2d7cf7aa9eb087a0445a0747a0c7e548d53cbd33
MD5 065d4c0e99b839ce534f6aa692d3979f
BLAKE2b-256 59a2c83478c25ffa9dae855632f50ba785a059f040cacad329d821c8756c279a

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ee4c324a57aa877b23e03e367a2d44604185755e00f03d30a4bbf90ba93a865
MD5 e0017a11c773e459d5cded791802110b
BLAKE2b-256 fb9dd07fb5464fa0ea98f1175e9c62f666c62c0a985bf86c961aef44b733d836

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyoctomap-1.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6e865dddd1abcc56616aaf664b4257a5ce86bad71adad92d102bb9d6983f85be
MD5 3060a2df736635f14cca910c44297b07
BLAKE2b-256 4244be3ae60d2b6f8807c89f4116a026d46cfe05b7eeb7714aec39afa2cf1dfc

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7cf2d15bbbde5a79c8dfa6bac70402d7cae58d47f98e8c78645185c474bbeb3
MD5 7616a962662482de6080a5bcbca3c6e9
BLAKE2b-256 0739c7ac01c1e8c4e624d5ce25c6f6f7878c98c7769176fc81881b332abe450b

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a28f467f0db5da99e35a889fb4c798f64a1995b03cf18ac033da70313e156acd
MD5 439ee53685d2bd4c693cdad879450ded
BLAKE2b-256 ae486781b0185a43f893835fed12425ba8efd5ddedc907199625aabb98573952

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyoctomap-1.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0fd4269b3cbc2717f9d96c2db2a2877602e5e4f8fa52ba7154516f4935edf26c
MD5 9a1228e427924f2b4250779e0f12c8e5
BLAKE2b-256 aaa34f7ca56cc4379c55e8ef1144b6edb1b0c88df0e10dfb58cdac9e1d73d50a

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f81f1a292a32b32803a141606c36c39de479cf427764b626bd9d63dd0a760f57
MD5 3c5c35dd699e660f6e3e825b58f917f5
BLAKE2b-256 55426bf86d456de4e49d61c26315511d5984fc2fe84813764dc512b4a4c07449

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ae29c861c97261180c7e9a9458b55a9315c409746bfb0a07e2568a874d1f1aa
MD5 c159be28290a0ab194f85afa2c577b93
BLAKE2b-256 0acaafbc0c394af21f1dfecf0e2d56991d3b555b55f5a870f94704ba171583b9

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyoctomap-1.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b4ce7c03aab1a8ec4915c3fb923fd2245f8c811b390da658a117bfd9d307e1de
MD5 a0514c603aeeab5b12765b076118d339
BLAKE2b-256 18b2a09bc63ef7d80fd6269c9d44052c193532b7e33c336c1d839ae2070020aa

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15b87343f5f12abc7a15cf2d7fdf5f86d6ea1d80aeddf1e06734464261006dce
MD5 09eca69cc5e256080f8efdd2cd8b275b
BLAKE2b-256 51c81ebe2addc0cabdfe594352f16231b74912f2e3c78730c77f167c05a3f3dd

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d4f1f098e5556d42074b9e2313e50c8cef072da6902e9f3f1e2d65bc8db2b97
MD5 a6faf93622e51103ffcab7b6d843f463
BLAKE2b-256 4f5962a826485ad7ace4f04cbca2ab7f3f0580064dd9c7d0f19742c922d090cb

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyoctomap-1.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 42906b264242854f0f564369c0dadb52d00113d6a6ee93b56fe03cb20969c766
MD5 18dd324e6e130b936e62211782e9b085
BLAKE2b-256 4c4b01dd03074cea9c03f27a32ae88b3834878401dfb0852927a27f9993f5f8a

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c168f5a9b31db563b6c28d268403023b8d2018965449e3c98d86b12dbb429fd
MD5 afaa6a8c849f90c56ad2a707e2e2e2df
BLAKE2b-256 8f945b9594792e01c29207e41acb7e8637c3eea6ca62f1b7a78797c32a747cd1

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d686c90ba7c371a2206967e3618f85b8c4ed23fe555e109e696a116c39599ae
MD5 13fe1de82fb0125fa4e06af9502ab9f4
BLAKE2b-256 0fb3adf31097a6ffd3240833cc7d0b529f3593fd5e746805b8343fc4623c138e

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyoctomap-1.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 daa427ed55c7f6503ff1c63a38731718a81c079e953e10f86173b5d08d0d2325
MD5 609406a70e5dd565bd5852a088905d38
BLAKE2b-256 26217fb3b797ee5362ba74cdc90c6dbadb993310235c916a65310abe6ecb55c7

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9235a8e1831f9c8aef66acb8201db0fc48cbc0343321ec1072aea489360247ee
MD5 a65533efd880ce21175c9cb0640eb2b3
BLAKE2b-256 75eb8020df17a9449892391f29a0d09ce5d0fc01ef0494b900c4fb5884de658a

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57faf14adb00564094f1cfa0a21a438fd89b6f973626007f098bf612cab23fe1
MD5 8cb649b9f567937a32c14905539b6690
BLAKE2b-256 bd87c5f4d2d4f482f778f2a4026853b74939423d0ceb4d5d338952c105b87803

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyoctomap-1.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyoctomap-1.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8c5c7a76ee3359019d2f682175ca99078b92da0819d155fa12d9974ff2a9f8c9
MD5 b958554d0f7d251bde2f8596b9d1227c
BLAKE2b-256 4da9e3209573fa48dfb8d6f8a655c717cb2eacc46bcb3ffe19e1d84af46b0cb6

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c9d2948a96551573a36dd8ebd5173c9c1ceddd6b764fbc2598d90ab949a4a71
MD5 73bae9ea419d56ad0c18caebd4e9018f
BLAKE2b-256 c80b5c4bc9682df487843711ba80243c365b3a2f459adce8abcbcc5313df5137

See more details on using hashes here.

File details

Details for the file pyoctomap-1.2.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoctomap-1.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1f6afb737ea2ce1a4ed99561656f0d6db42b4a2e4277eac5c7cb443ec44e2e9
MD5 2547b422927d0efeedad84f774870d78
BLAKE2b-256 ae80adac8968c3cf8701473412947856fe1f07ae643ca75da50a76130f42bd6f

See more details on using hashes here.

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