Skip to main content

LibMultiSense python package wrapped using pybind11

Project description

LibMultiSense

LibMultiSense is a C++ and Python library designed to simplify interaction with the MultiSense S family of stereo sensors developed by Carnegie Robotics. It provides a comprehensive, easy-to-use API for capturing and processing stereo sensor data an generating depth images, color images, and 3D point clouds.

Official product page: Carnegie Robotics MultiSense Products

Detailed documentation: LibMultiSense Documentation

LibMultiSense was recently refactored to have a new API. The following examples in the README all assume the user is using the new API. To build with the new API, the following CMake arguments should be set.

-DBUILD_LEGACY_API=0FF

The README for the Legacy API can be found here.

The LibMultiSense C++ and Python library has been tested with the following operating systems

  • Ubuntu
    • 20.04
    • 22.04
    • 24.04
  • MacOS Sequoia
  • Windows 11

Table of Contents

Client Networking Prerequisite

The MultiSense comes preconfigured with a static 10.66.171.21 IP address with a /24 subnet. To connect to the MultiSense, a client machine must be updated with an IP address on the 10.66.171 subnet.

Please see the host network configuration for details on how to set a client machine's IP address and MTU.

Quickstart Guide

Below are minimal examples demonstrating basic usage of LibMultiSense to capture rectified images from the camera.

Before running the examples make sure LibMultiSense is installed, and your machines network is properly configured.

For new users, it's recommended to start with the Python version of LibMultiSense

Python

Install the LibMultiSenes python client and OpenCV dependency via

pip install libmultisense opencv-python
import libmultisense as lms
import cv2

channel_config = lms.ChannelConfig()
channel_config.ip_address = "10.66.171.21"
with lms.Channel.create(channel_config) as channel:
    channel.start_streams([lms.DataSource.LEFT_RECTIFIED_RAW, lms.DataSource.RIGHT_RECTIFIED_RAW])

    while True:
        frame = channel.get_next_image_frame()
        if frame:
            for source, image in frame.images.items():
                cv2.imwrite(str(source) + ".png", image.as_array)

C++

#include <MultiSense/MultiSenseChannel.hh>
#include <MultiSense/MultiSenseUtilities.hh>

namespace lms = multisense;

int main()
{
    const auto channel = lms::Channel::create(lms::Channel::Config{"10.66.171.21"});
    channel->start_streams({lms::DataSource::LEFT_RECTIFIED_RAW, lms::DataSource::RIGHT_RECTIFIED_RAW});

    while(true)
    {
        if (const auto image_frame = channel->get_next_image_frame(); image_frame)
        {
            for (const auto &[source, image]: image_frame->images)
            {
                const auto path = std::to_string(image_frame->frame_id) +  "_" +
                                  std::to_string(static_cast<int>(source)) + ".png";
                lms::write_image(image, path);
            }
        }
    }
    return 0;
}

Optional Dependencies When Building From Source

OpenCV

LibMultiSense optionally has OpenCV utility functions to make the LibMultiSense client API easier to integrate with existing systems. To build the OpenCV helpers the following CMake argument should be set

-DBUILD_OPENCV=ON

This will require a system installation of OpenCV, or an installation which can be pointed to with CMake's CMAKE_PREFIX_PATH argument

nlohmann json

LibMultiSense optionally uses nlohmann_json for serialization of base LibMultiSense types. To build the nlohmann_json serialization helpers the following CMake argument should be set

-DBUILD_JSON_SERIALIZATION=ON

This will require a system installation of nlohmann_json, or an installation which can be pointed to with CMake's CMAKE_PREFIX_PATH argument

pybind11

LibMultiSense optionally uses pybind11 to generate python bindings for the C++ API. To build the pybind11 python bindings the following CMake argument should be set

-DBUILD_PYTHON_BINDINGS=ON

This will require a system installation of pybind11, or an installation which can be pointed to with CMake's CMAKE_PREFIX_PATH argument

googletest

LibMultiSense optionally uses googletest for unit testing the C++ API. To build the googletest unit tests the following CMake argument should be set

-DBUILD_TESTS=ON

This will require a system installation of googletest, or an installation which can be pointed to with CMake's CMAKE_PREFIX_PATH argument


Installation

Linux

Python

PyPi (Recommended)

The following command installs/updates to the latest version of the LibMultisense Python API:

pip install --upgrade libmultisense

To avoid conflicts with other Python packages, it's recommended to utilize venv to isolate dependency installations.

From Source

LibMultiSense uses pybind11 to generate Python bindings for the base LibMultiSense API. These bindings can be installed via pip into a Python virtual environment or a local Python project.

To install the LibMultiSense Python bindings

> sudo apt install build-essential pybind11-dev nlohmann-json3-dev

> git clone https://github.com/carnegierobotics/LibMultiSense.git
> cd LibMultiSense
> pip install .

C++

LibMultiSense uses CMake for its build system.

To build the standalone LibMultiSense library and demonstration applications.

# Note this only needs to be run once before building
> sudo apt install build-essential nlohmann-json3-dev

> git clone https://github.com/carnegierobotics/LibMultiSense.git
> cd LibMultiSense
> mkdir build
> cd build && cmake -DBUILD_LEGACY_API=OFF -DBUILD_JSON_SERIALIZATION=ON -DCMAKE_INSTALL_PREFIX=../install ..
> make install
> cd ../install

To build the standalone LibMultiSense library without the demonstration applications, set the cmake variable -DMULTISENSE_BUILD_UTILITIES=OFF


MacOS

Python

PyPi (Recommended)

The following command installs/updates to the latest version of the LibMultisense Python API:

pip install --upgrade libmultisense

To avoid conflicts with other Python packages, it's recommended to utilize venv to isolate dependency installations.

From Source

LibMultiSense uses pybind11 to generate Python bindings for the base LibMultiSense API. These bindings can be installed via pip into a Python virtual environment or a local Python project.

To install the LibMultiSense Python bindings

> brew install pybind11 nlohmann-json

> git clone https://github.com/carnegierobotics/LibMultiSense.git
> cd LibMultiSense
> pip install .

C++

LibMultiSense uses CMake for its build system.

To build the standalone LibMultiSense library and demonstration applications.

# Note this only needs to be run once before building
> brew install nlohmann-json

> git clone https://github.com/carnegierobotics/LibMultiSense.git
> cd LibMultiSense
> mkdir build
> cd build && cmake -DBUILD_LEGACY_API=OFF -DBUILD_JSON_SERIALIZATION=ON -DCMAKE_INSTALL_PREFIX=../install ..
> make install
> cd ../install

To build the standalone LibMultiSense library without the demonstration applications, set the cmake variable -DMULTISENSE_BUILD_UTILITIES=OFF


Windows

Python

PyPi (Recommended)

The following command installs/updates to the latest version of the LibMultisense Python API.

After installing Python via the Microsoft Store execute the following command in a Powershell terminal

pip install --upgrade libmultisense

To avoid conflicts with other Python packages, it's recommended to utilize venv to isolate dependency installations.

From Source

LibMultiSense uses pybind11 to generate Python bindings for the base LibMultiSense API. These bindings can be installed via pip into a Python virtual environment or a local Python project. To ensure Windows has the proper build tools installed, please install Microsoft Visual Studio with the C++ and CMake extensions.

Note you will need to have a version of Python installed on your Windows system. This was tested with Python 3.9 installed via the Microsoft Store on Windows 11.

To install the LibMultiSense Python bindings open a powershell terminal and execute the following commands

> git clone https://github.com/carnegierobotics/LibMultiSense.git
> cd LibMultiSense
> git clone https://github.com/microsoft/vcpkg.git
> ./vcpkg/bootstrap-vcpkg.bat

> $Env:VCPKG_ROOT = ./vcpkg

> pip install .

C++

LibMultiSense uses CMake and vcpkg to build the LibMultiSense library. To ensure Windows has the proper build tools installed, please install Microsoft Visual Studio with the C++ and CMake extensions.

Open a powershell terminal and execute the following commands:

> git clone https://github.com/carnegierobotics/LibMultiSense.git
> cd LibMultiSense
> git clone https://github.com/microsoft/vcpkg.git
> ./vcpkg/bootstrap-vcpkg.bat

> $Env:VCPKG_ROOT = ./vcpkg

> cmake --build build --config Release --target install

CMake Project Integration

Integrating LibMultiSense into an existing CMake project is easy. There are two primary methods for integration: a local install on your system, or a submodule clone within your repository

Local Installation

LibMultiSense is installed on your system (i.e. in a location like /opt/multisense)

find_package(MultiSense)
target_link_libraries(<your-library-or-binary> MultiSense)

When running CMake, make sure to specify the location of the LibMultiSense install via -DCMAKE_PREFIX_PATH

Git Submodule

Clone the LibMultiSense repository into the existing project's source tree. In the main CMakeLists.txt file of the project, add the following lines:

 include_directories(LibMultiSense/source/LibMultiSense)
 add_subdirectory(LibMultiSense/source/LibMultiSense)

Documentation

Documentation of high-level LibMultiSense concepts can be found here

Doxygen documentation can be built for LibMultisense by running the Doxygen configuration file located in the docs directory

> cd LibMultiSense/docs
> doxygen Doxyfile

HTML and LaTex documentation will be generated in the docs directory.

Usage examples are included in the Doxygen documentation.


Support

To report an issue with this library or request a new feature, please use the GitHub issues system

For product support, please see the support section of our website Individual support requests can be created in our support portal


Camera Configuration

Camera settings like resolution, exposure, FPS, gain, gamma, and white balance can be configured via the LibMultiSense image::Config

Python

import libmultisense as lms
import cv2

def main(args):
    channel_config = lms.ChannelConfig()
    channel_config.ip_address = "10.66.171.21"

    with lms.Channel.create(channel_config) as channel:
        if not channel:
            print("Invalid channel")
            exit(1)

        config = channel.get_config()
        config.frames_per_second = 10.0
        config.width = 960
        config.height = 600
        config.disparities = lms.MaxDisparities.D256
        config.image_config.auto_exposure_enabled = True
        config.image_config.gamma = 2.2
        if channel.set_config(config) != lms.Status.OK:
            print("Cannot set configuration")
            exit(1)

C++

#include <iostream>

#include <MultiSense/MultiSenseChannel.hh>
#include <MultiSense/MultiSenseUtilities.hh>

namespace lms = multisense;

int main(int argc, char** argv)
{
    const auto channel = lms::Channel::create(lms::Channel::Config{"10.66.171.21"});
    if (!channel)
    {
        std::cerr << "Failed to create channel" << std::endl;;
        return 1;
    }

    auto config = channel->get_config();
    config.frames_per_second = 10.0;
    config.width = 960;
    config.height = 600;
    config.disparities = lms::MultiSenseConfig::MaxDisparities::D256;
    config.image_config.auto_exposure_enabled = true;
    config.image_config.gamma = 2.2;
    if (const auto status = channel->set_config(config); status != lms::Status::OK)
    {
        std::cerr << "Cannot set config" << std::endl;
        return 1;
    }

    return 0;
}

Point Cloud Generation

Disparity images can be converted to 3D point cloud images using the client API.

The following modified version of the Quickstart example, converts disparity images to 3D point clouds colorized using the left rectified image.

Python

import libmultisense as lms
import cv2

def main(args):
    channel_config = lms.ChannelConfig()
    channel_config.ip_address = "10.66.171.21"

    with lms.Channel.create(channel_config) as channel:
        if not channel:
            print("Invalid channel")
            exit(1)

        if channel.start_streams([lms.DataSource.LEFT_RECTIFIED_RAW, lms.DataSource.LEFT_DISPARITY_RAW]) != lms.Status.OK:
            print("Unable to start streams")
            exit(1)

        while True:
            frame = channel.get_next_image_frame()
            if frame:
                point_cloud = lms.create_gray8_pointcloud(frame,
                                                         args.max_range,
                                                         lms.DataSource.LEFT_RECTIFIED_RAW,
                                                         lms.DataSource.LEFT_DISPARITY_RAW)

                print("Saving pointcloud for frame id: ", frame.frame_id)
                lms.write_pointcloud_ply(point_cloud, str(frame.frame_id) + ".ply")

C++

#include <iostream>

#include <MultiSense/MultiSenseChannel.hh>
#include <MultiSense/MultiSenseUtilities.hh>

namespace lms = multisense;

volatile bool done = false;

int main(int argc, char** argv)
{
    const auto channel = lms::Channel::create(lms::Channel::Config{"10.66.171.21"});
    if (!channel)
    {
        std::cerr << "Failed to create channel" << std::endl;;
        return 1;
    }

    if (const auto status = channel->start_streams({lms::DataSource::LEFT_RECTIFIED_RAW,
                                                    lms::DataSource::LEFT_DISPARITY_RAW}); status != lms::Status::OK)
    {
        std::cerr << "Cannot start streams: " << lms::to_string(status) << std::endl;
        return 1;
    }

    const double max_range_m = 20.0;

    while(!done)
    {
        if (const auto image_frame = channel->get_next_image_frame(); image_frame)
        {
            if (const auto point_cloud = lms::create_color_pointcloud<uint8_t>(image_frame.value(),
                                                                               max_range_m,
                                                                               lms::DataSource::LEFT_RECTIFIED_RAW,
                                                                               lms::DataSource::LEFT_DISPARITY_RAW); point_cloud)
            {
                std::cout << "Saving pointcloud for frame id: " << image_frame->frame_id << std::endl;
                lms::write_pointcloud_ply(point_cloud.value(), std::to_string(image_frame->frame_id) + ".ply");
            }
        }
    }

    return 0;
}

Depth Image Generation

Disparity images can be converted to depth images using the client API

The following modified version of the Quickstart example, converts disparity images to openni depth images and saves them to disk using OpenCV.

Python

import libmultisense as lms
import cv2

def main(args):
    channel_config = lms.ChannelConfig()
    channel_config.ip_address = "10.66.171.21"

    with lms.Channel.create(channel_config) as channel:
        if not channel:
            print("Invalid channel")
            exit(1)

        if channel.start_streams([lms.DataSource.LEFT_DISPARITY_RAW]) != lms.Status.OK:
            print("Unable to start streams")
            exit(1)

        while True:
            frame = channel.get_next_image_frame()
            if frame:
                # MONO16 depth images are quantized to 1 mm per 1 pixel value to match the OpenNI standard.
                # For example, a depth image pixel with a value of 10 would correspond to a depth of 10mm
                depth_image = lms.create_depth_image(frame, lms.PixelFormat.MONO16, lms.DataSource.LEFT_DISPARITY_RAW, 65535)
                if depth_image:
                    print("Saving depth image for frame id: ", frame.frame_id)
                    cv2.imwrite(str(frame.frame_id) + ".png", depth_image.as_array)

C++

#include <iostream>

#include <opencv2/opencv.hpp>

#define HAVE_OPENCV 1
#include <MultiSense/MultiSenseChannel.hh>
#include <MultiSense/MultiSenseUtilities.hh>

namespace lms = multisense;

volatile bool done = false;

int main(int argc, char** argv)
{
    const auto channel = lms::Channel::create(lms::Channel::Config{"10.66.171.21"});
    if (!channel)
    {
        std::cerr << "Failed to create channel" << std::endl;;
        return 1;
    }

    if (const auto status = channel->start_streams({lms::DataSource::LEFT_DISPARITY_RAW}); status != lms::Status::OK)
    {
        std::cerr << "Cannot start streams: " << lms::to_string(status) << std::endl;
        return 1;
    }

    while(!done)
    {
        if (const auto image_frame = channel->get_next_image_frame(); image_frame)
        {
            //
            // MONO16 depth will be quantized to mm to match OpenNI's depth format
            //
            if (const auto depth_image = lms::create_depth_image(image_frame.value(),
                                                                 lms::Image::PixelFormat::MONO16,
                                                                 lms::DataSource::LEFT_DISPARITY_RAW,
                                                                 65535); depth_image)
            {
                std::cout << "Saving depth image for frame id: " << image_frame->frame_id << std::endl;
                cv::imwrite(std::to_string(image_frame->frame_id) + ".png", depth_image->cv_mat());
            }
        }
    }

    return 0;
}

Color Image Generation

Luma and Chroma Aux images can be converted to BGR color images using the client API

The following modified version of the Quickstart example, converts luma and chroma aux images to BGR images and saves them to disk using OpenCV.

Python

import libmultisense as lms
import cv2

def main(args):
    channel_config = lms.ChannelConfig()
    channel_config.ip_address = "10.66.171.21"

    with lms.Channel.create(channel_config) as channel:
        if not channel:
            print("Invalid channel")
            exit(1)

        if channel.start_streams([lms.DataSource.AUX_RAW]) != lms.Status.OK:
            print("Unable to start streams")
            exit(1)

        while True:
            frame = channel.get_next_image_frame()
            if frame:
                bgr = lms.create_bgr_image(frame, lms.DataSource.AUX_RAW)
                if bgr:
                    cv2.imwrite(str(frame.frame_id) + ".png", bgr.as_array)

C++

#include <iostream>

#include <opencv2/opencv.hpp>

#define HAVE_OPENCV 1
#include <MultiSense/MultiSenseChannel.hh>
#include <MultiSense/MultiSenseUtilities.hh>

namespace lms = multisense;

volatile bool done = false;

int main(int argc, char** argv)
{
    const auto channel = lms::Channel::create(lms::Channel::Config{"10.66.171.21"});
    if (!channel)
    {
        std::cerr << "Failed to create channel" << std::endl;;
        return 1;
    }

    if (const auto status = channel->start_streams({lms::DataSource::AUX_RAW}); status != lms::Status::OK)
    {
        std::cerr << "Cannot start streams: " << lms::to_string(status) << std::endl;
        return 1;
    }

    while(!done)
    {
        if (const auto image_frame = channel->get_next_image_frame(); image_frame)
        {
            if (const auto bgr = create_bgr_image(image_frame.value(), lms::DataSource::AUX_RAW); bgr)
            {
                cv::imwrite(std::to_string(image_frame->frame_id) + ".png", bgr->cv_mat());
            }
        }
    }

    return 0;
}

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.

libmultisense-7.2.0-cp313-cp313-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.13Windows x86-64

libmultisense-7.2.0-cp313-cp313-win32.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86

libmultisense-7.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

libmultisense-7.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

libmultisense-7.2.0-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

libmultisense-7.2.0-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

libmultisense-7.2.0-cp312-cp312-win32.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86

libmultisense-7.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

libmultisense-7.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

libmultisense-7.2.0-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

libmultisense-7.2.0-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

libmultisense-7.2.0-cp311-cp311-win32.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86

libmultisense-7.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

libmultisense-7.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

libmultisense-7.2.0-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

libmultisense-7.2.0-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

libmultisense-7.2.0-cp310-cp310-win32.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86

libmultisense-7.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

libmultisense-7.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

libmultisense-7.2.0-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

libmultisense-7.2.0-cp39-cp39-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.9Windows x86-64

libmultisense-7.2.0-cp39-cp39-win32.whl (1.6 MB view details)

Uploaded CPython 3.9Windows x86

libmultisense-7.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

libmultisense-7.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

libmultisense-7.2.0-cp39-cp39-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

libmultisense-7.2.0-cp38-cp38-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.8Windows x86-64

libmultisense-7.2.0-cp38-cp38-win32.whl (1.6 MB view details)

Uploaded CPython 3.8Windows x86

libmultisense-7.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

libmultisense-7.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

libmultisense-7.2.0-cp38-cp38-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file libmultisense-7.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4e31d9456b4e2c3dcdb2f73a642351d1bfaae2d371ec576c411854ef8cec45f9
MD5 9cb761739b99f73d68392ab7fad8582d
BLAKE2b-256 165cf145eed7390424a105323442c53335cc132e31898ace7c90668027489732

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: libmultisense-7.2.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for libmultisense-7.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 86aa563cc56691dc2de271c0a276251a4b984719b48dd4aaae6c0fd97eacd901
MD5 0f1c0951635fba53869b62e9068d43f1
BLAKE2b-256 3a200d9bdf029f9b5d33b955aeaee6f029a781ddd0765c076fb6109cd41db0aa

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 613bd738d4bb7ae63a0f0f4399c9c6ccacb12026947792a0cf34bb4bc00eca69
MD5 aeb1f6193188a0c7bbbc34ad080f7af2
BLAKE2b-256 817aa9813910eb658dfab3160878385abc8371f7ceba70c5f61f84605ca69e96

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3dfe0bf883b0fa744eaccbfbae8ca453f4077c62ecb0d16191e7c89cf21f7d58
MD5 3e48d81af766c3781defd7f735fa9102
BLAKE2b-256 def159f6d7d01456284c5ea27b8684b78611031dcdf61945b0ffab3a9f3d11c6

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0973ffc5b7b03d0e6c12653283874c927f14f86652588ea4d718b175924f7c78
MD5 341a26da48e2d25963f6ca289a02c541
BLAKE2b-256 a51fc44340932dc20024d0365ff9ee33334f9c18622eed5019172ee508d9f79b

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 60b5efd9458a2c538a5570b4064cf8e677e9a71f4b7ca4c7bf8187a81c3bcabd
MD5 6bdaa5d15b54b4e75546bef2913fdae2
BLAKE2b-256 02206f7133582ca862ae6b574a53dce26545664eb6b1d4d70b80a7030ec6c74c

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: libmultisense-7.2.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for libmultisense-7.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 220905b121be30a10754fa1ccdef28fb79d70ca6843497d3c79781dbd0c74047
MD5 d663362ce33eb5f7aae59c2b1b184260
BLAKE2b-256 da1fc129d072053e339ba0f2d6695eda04d2066650331c8cc0cf66032081c2a4

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ad178a1fd81b8cce7856563b8306f57ede281a474343b7e077e21bda00568ebd
MD5 6261cb93de3886c05fa482e3bdb6eaa3
BLAKE2b-256 04e87108bbd94d32dba1fa8cb5364a8eb715fd4b01a92e1c434aae85fa2bad2f

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9458a20157d79927f8dff6a1d59138e48e201fd10190dfcf6b4ce1d853371668
MD5 076a7e30b65de3c3c1b41ad822563287
BLAKE2b-256 ec203196aba75282e2c169f8f318efc75c83816722c2c2e5edfa0918ad366027

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddfeebb3225e27a72a08ff5bc1cc596bfdc197f8e41ffa520852d694ea6d6bd4
MD5 3df96a6fa85c4474ec754ee8c81b39a7
BLAKE2b-256 c99f8263fcc819ce54d672180cb0cd245fd723e96ff67d98ce30cc7a2db7a7d1

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f09834bc3444f1a718dd25621ee05ae07af6fc16df86a1d39268306dde652072
MD5 809906b2bb82eeb3a1dce94f052ba6d1
BLAKE2b-256 e5bf4cc350e9b1cc8904b733f24f49981a006b6da8a9290e64098ac4bb36ad16

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: libmultisense-7.2.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for libmultisense-7.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 d4aba99f9d1db58eb0502b0bf8f767daac89652e02de29aa7a9a00dc70d9e2a2
MD5 2957e42820e8ccbeef268dd9914e0fec
BLAKE2b-256 5014ff499822710bdba31fc1932bd6187f31ba7cd11424b0228eba3f855f8c4c

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 377fa42377d3d3fa1062ff316900b729bf300ba37ce8fb7f3801f6d6bbb60dcb
MD5 f33737a5235bde0349c1be3c02955100
BLAKE2b-256 18fa5283ecb67cc249b48fbca0220ed5df7177c02682e8588c129cca689ca377

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bd7eafb7b7414abdef8e8be6464a1745dc72e22259e4c4c70498c322ab19fa21
MD5 3759488550cf487ad7865b14e06eb31b
BLAKE2b-256 51340dc341e5936a70b2bdf8bf949bfe6dede9a5c0d2afa13767eab6c7f58e0c

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 762e8ae47da0d5df07d95f2e09d69cd16ec15e1712beda23ae0b8ad87aea245b
MD5 1cfe86f05ef25c2c5cbfa2f0825ae097
BLAKE2b-256 a3ca57f3c907cb5ea042cf60320b29d790670a7e4b15d9eeae606c313073c896

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4a2e4781d9e6ef6712a999370e069fe718d334ddd80c9840baf6b08dda781301
MD5 e6632fae5d042dbd22f5125c37b18e57
BLAKE2b-256 6ba24faba756846f2e1902821fc6f6c578af54d8235d2ec8027889397fec7730

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: libmultisense-7.2.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for libmultisense-7.2.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c49e1dfddc4d5bc18845637c3a9dca6c20f19e5f8620a2614b3ab2113e53c768
MD5 862b75e3289737343fc11238c82b52bd
BLAKE2b-256 1fb964449e0dff775846acae7c6c7307e05b040b9a0f8311fc3e9b46681a160f

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cf139a4d1ad6d97e80ab2e27a1719f22a195ec1b3f5eaa87f0320084b66a5ff
MD5 60f11072122d564811b466d4143463dc
BLAKE2b-256 bce43683d56ef30e1a8966006793b65f1ef4d470c06c7c94ffb16ef5d0e44e7b

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b312d86b031393bf91351bde7cfe0484832e647f716d0b6900caeef5f0139db9
MD5 44df1d7f69ac2c714f9feeb4d37ef28f
BLAKE2b-256 16e5ba7d4e6805e76b175d2bf7f72ae4de1ac19b6051e1e8becb15e990783bd6

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82b506a9e962a975f15b7b70451532af7c00c4b03ed93573c498c97fd61c2b63
MD5 a272704f4930a9e4ae6a7788ac55e577
BLAKE2b-256 cdc502dafb5145566e8632caa99aca99f28493bf900367f00d70ed033e1b8d02

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a8f21652ff4ceafbb19a74f3fdd91129ac08552d1695c933958ac9e34da32dd0
MD5 e5efa28a893fde761d516cc3368a5ce3
BLAKE2b-256 6b23172fa7de431652ab85edd4902817102f753e80bb585d3f4efd1d8430f05f

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: libmultisense-7.2.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for libmultisense-7.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 4ff6d935c00bf31c962dbbb1cb1510aee5264a8fc02bd6498de610a3709661aa
MD5 9d97f0871bc56c21c744f3f14cf6be61
BLAKE2b-256 ca5e36618d396077a264814fa65d3e092c22c70c602c84ec2d3dd610ffda11ba

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 12236cd8a0fbee777f39cd60eee3be06aae5c2559250810c69d4b8a75f1759e6
MD5 1cf5f36e52d162d66acd9c80789db8be
BLAKE2b-256 8f63d41b9f556aabbc19eca5ce84fe896892e7b218b1486b41ed9582d4873953

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ca5cba7cbcc53ee2fc2cbc50d4bb5fd6820b5b1addabc8e3c53614c0a14e441f
MD5 e16df44dfc7d124018700db49bbdb989
BLAKE2b-256 ab65f998b0afd4d7017fff80cb50e9a6946f9e28f484cedc9a85e68b3b208e59

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eaf8ffdcdc06e527579a84bccf7a0c52eb5921912a54ae4613d13f74b12f4470
MD5 688007b58c44ce402931c8a5e1ddcae9
BLAKE2b-256 72967b74d9d78d812ea086d21edebd9354aea2b973b217c52ac2f0adaf1ae782

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a7dc216514cfcfbb05ad21f4e7e2a1138ff06a2f89a1e6e08162931d1f93567b
MD5 1892b298b714268eeebf8d5d13045089
BLAKE2b-256 d7543b0ead3513bedc9f7bea45e574816a92e5254db6f126e329131e5e3a981e

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: libmultisense-7.2.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for libmultisense-7.2.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 9babca6ae13561e46fdb04314438e16b3d3f06e98635323b447f6b648f227af4
MD5 12abaf0fafc2f05e5f7b70167b884d5a
BLAKE2b-256 49186a56b82fa224cf9dedabeb381a38ed14bf7a267fae26a719cca2ac28c65a

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5191d74546206515faa1757fdb362ffa9f49279eddaa3c3905a4f9c970a61797
MD5 27e6f53531bb8e377f51b0c25d35d605
BLAKE2b-256 dcca4955a4193d04ff9a07e718fa321d0451a4e16a9643decd75826069dd8f9f

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d64623ab8274d0cf06c99710d6db39085bc1a5a4be8c4c83dae6927c977254a9
MD5 10bd77dcd4e07724500ba9ba935ee6a9
BLAKE2b-256 e3c949feb1b3c0d01e791b643781c9705270d185c48f95de6b6c291b24e2e1f4

See more details on using hashes here.

File details

Details for the file libmultisense-7.2.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libmultisense-7.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f57566d613197da8d62f07fdd149216f27095f2b2eab5ffb3a9d2477ae4fcc7
MD5 cf521bf6c851f7f6cc341985a85c24fc
BLAKE2b-256 30508929bdecf65da737a3d805435c133de1ac63f17a34303306f948fd309287

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