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():
    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)

if __name__ == "__main__":
    main()

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():
    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")

if __name__ == "__main__":
    main()

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():
    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)

        # Set to true to save the depth image in the frame of the aux color camera
        in_aux_frame = False

        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, in_aux_frame, 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)

if __name__ == "__main__":
    main()

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;
    }

    // Set to true to save the depth image in the frame of the aux color camera
    const bool in_aux_frame = false;

    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,
                                                                 in_aux_frame,
                                                                 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():
    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)

if __name__ == "__main__":
    main()

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.4.0-cp313-cp313-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.13Windows x86-64

libmultisense-7.4.0-cp313-cp313-win32.whl (2.4 MB view details)

Uploaded CPython 3.13Windows x86

libmultisense-7.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

libmultisense-7.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (2.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

libmultisense-7.4.0-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

libmultisense-7.4.0-cp312-cp312-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.12Windows x86-64

libmultisense-7.4.0-cp312-cp312-win32.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86

libmultisense-7.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

libmultisense-7.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

libmultisense-7.4.0-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

libmultisense-7.4.0-cp311-cp311-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.11Windows x86-64

libmultisense-7.4.0-cp311-cp311-win32.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86

libmultisense-7.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

libmultisense-7.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

libmultisense-7.4.0-cp311-cp311-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

libmultisense-7.4.0-cp310-cp310-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10Windows x86-64

libmultisense-7.4.0-cp310-cp310-win32.whl (2.4 MB view details)

Uploaded CPython 3.10Windows x86

libmultisense-7.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

libmultisense-7.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

libmultisense-7.4.0-cp310-cp310-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

libmultisense-7.4.0-cp39-cp39-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.9Windows x86-64

libmultisense-7.4.0-cp39-cp39-win32.whl (2.4 MB view details)

Uploaded CPython 3.9Windows x86

libmultisense-7.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

libmultisense-7.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (2.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

libmultisense-7.4.0-cp39-cp39-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

libmultisense-7.4.0-cp38-cp38-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.8Windows x86-64

libmultisense-7.4.0-cp38-cp38-win32.whl (2.4 MB view details)

Uploaded CPython 3.8Windows x86

libmultisense-7.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

libmultisense-7.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (2.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

libmultisense-7.4.0-cp38-cp38-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a74bae2d4434a72eebd5cb2ff250a7fbb25c6840b6ef26f18ea257261d50dfe8
MD5 ddf425b60e90bf415a0543720de8ccda
BLAKE2b-256 c036ef5cd72b06b643bde3f0b51e2fd589454710bf5ce7ceccdc2e16ec79fc60

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for libmultisense-7.4.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 0bab1023a7c3d6293fe6577dc60c29d25e912bc625917ba795ddedbc3fbd2ac8
MD5 53eab8e588d689999ce588577abc015c
BLAKE2b-256 99469df5e0ac18aa9f89ccfae367278a47aecb307932597fcd7abe58ab89f3d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bdb26f55621a965989e5f831f5e1d43e7344acdfe2a96363fa8ba2f87afc94ae
MD5 2725a522d2d33317bd97f0526154bfd2
BLAKE2b-256 43f3b45bec66aeef44d0bb6061cfeb75c38962d5e717e4d556896ac5c00cb987

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d358fc18b21730590745967622447594c11395909f7ef7f6f6b151e6f0d296f8
MD5 902f6907a8aad5a56789261798c67aac
BLAKE2b-256 9a1b8014c93213a150710b104eb9e5bb3547f961bf51822dc5af8255cd001d91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca4ef361ab2e9459e4278b910a5408be5b1d7ef5c34aa694791ffe3199391865
MD5 a13a593e05b64cb464dd5c6225eca9e4
BLAKE2b-256 5e9193b669ca93a22aa9849e2737dcf94b3f5a60cad32709b5746bb59f1b6846

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 548b35c2cb70d1ec305fe623bb761cc4a05f99cd4dfe2437004f44545320185b
MD5 acfb7a426770b0aae5b4f24d1804a11e
BLAKE2b-256 4340ba6f920d48a7428ecaf9b168cd5eb5ff2048816d3e773c5f31c1192ba3b3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for libmultisense-7.4.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 151e44cac0abf6ffb13d3d0470ba2a6249ea02542c9de3de48e5f1fe2fe1dc1b
MD5 1148197a0954b60d5af210e334a35e95
BLAKE2b-256 3f26a65bc8467fa8db88d7d36af47b5e7ad2e95f532d18c8d5dfa31d9298e284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d68534cb49a0795f7069c69b4c50f6cf776f65fa17ac2f43f94c7f7250236472
MD5 584377dd8ef894797cfbfa1f889c83cc
BLAKE2b-256 1600159866cf258211624ee0dca6308473b4a22f1fdb65c5469781d5e11f8c63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ecbf35f484e2a537acd16a85878f364560813c16f1d38057dfddb72355dcde4a
MD5 5fea2754a16944d8681a4c69f0996506
BLAKE2b-256 851501a592f5f0a40f8ebffe8d97750fcc45509cf7b3f73c830ba69994f2ba50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64a2d92a6c82c972c4f464db1959e5d93397ff1d25852bdb94db65c58f6dfbfe
MD5 105ce8c6236b362585ccc6ab8e518d19
BLAKE2b-256 504722d909d9f210e3dd257bec15f3c04aa475d65906e14bfb1c40df00f6c753

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 15be9f618cf20f5c54f41b7ea4f03e85abbbc732b13405dc6bb88c1bf01c8a1d
MD5 cf98dbf8bf6dd66f24168f1e142a2459
BLAKE2b-256 485269788f17730cc003319c708f789d44886b58952e5f2a92ae28596ec9cb52

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for libmultisense-7.4.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 2775e228b442dfc2d7e791ff7788031c9208f591be2649518db109410306da71
MD5 0264f826face3afd2afa190cdf394f5b
BLAKE2b-256 2c27080675f670490a451cb64084b54ff22fdb3474ceb49eb3e17c28e632c46b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a2bff56a5765b8983aba82f46cc607c0be8b3d69f859d63d6d7cc4314032935
MD5 3a8699cc66cff1b5624cbcd2bb644d8a
BLAKE2b-256 f7481384eda23ef87f3c9385b5fe4aa1e12512443ffddfb32951df67d0885dc5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a21cdda39ed1256db0985a87451b148f2d60eefaa93f7891372a95cff82cf85e
MD5 844c11586d39504af5e35317b2c25095
BLAKE2b-256 da98d8b198a09d1c4a17545f8145839ad23ac3f80fcf6594e1f883e0b3a756f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b14431dec5da9b371eff5fa0c41eaec49999d248ca3c51c3a15f0f3d40d38bab
MD5 3d84cca38fc51ca0a2e30d6044d9b273
BLAKE2b-256 4ee6c4c6dedc07e28ce8afc34bd23f5065dbd708ad02b2803003522ff931a33a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 efacd9d6716f27435d7eca3466b7c20af4587364d059d2281658e0561cb0a8c2
MD5 67a870c64c18be0d80fa32e0878ac568
BLAKE2b-256 66b37935b42dbdd05f7c443e04b60746873acf3ba45c5412a47fbaf5f8e67b6c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for libmultisense-7.4.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b954b99545c8d770e1d0846e8eb9f4b0cce0e0fd13887a883f67e4bd3053359d
MD5 df23e7bfa3ab27e0b4671b8bc2559539
BLAKE2b-256 9acb4411eb5f51e153ccad5f1a58327ce7d50186bf4c07d85ee89637d6b9168a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c8cd83581cbfeb095d8ef01da2e5f372474d863af8bcedb0a2c9947fe504d82
MD5 96584212d1cb7676f4cf53ec900c13da
BLAKE2b-256 862c54510375a33d61809f8b4b8013b52c89d83ca5d25b84c5699c387f472a38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e1d1abd305f782f03d67609107b880d1412a191f0dab3c67bf8a1a5e5876658d
MD5 49498ca4af16fc30db45ed6ac4663b0f
BLAKE2b-256 2b8b8875f82cb71706f7148a8db026a433e0bddd865a9a77ce6c5677f92e7b93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27c89f65a5e2b76bf73a2c64ea31bb51d2bfa7a813867b08de2e6b4e86df62c4
MD5 be582a328f41ed02ca8b2ddb256bd219
BLAKE2b-256 4fa462961f309601158cf4ea1fcad98b036efc16a1615ad4cc37b93379bf8347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a0602e60a235b134a85cb6f04a53d8ebe550986f328dbf8a2284b8fab8a8efa9
MD5 826cc0067a15ebe5046e25ec498874c5
BLAKE2b-256 7a6f65c2d611001599ab5b293a9e0e607043f417270f06ca87068c55286bc381

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for libmultisense-7.4.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 9c28d21e29c935cdac3da28ccc64549bd44d203064bbcacc39a0c0f5aa2ee329
MD5 8c26c0539bf3f502f38b20c131013aad
BLAKE2b-256 06a5f3c2135072ab786353ed50996dd09a9720e46809f1fb16f152bc4845d42a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c58baff63d733a737f15ecfd4b0ae83b11a1ae57974a1b72835c27b424766d1
MD5 42214b5d7fde24747901a65bc08416e5
BLAKE2b-256 5bfb5daff59dc47721183e82ee531b58080c21b06de151636ddbce0236aeec2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 897b514725aa5f0a9b5972e49f3e722c9223256db8b84da3e730a848e8559be4
MD5 37eaadb47e0bb4aac226a859d99458e5
BLAKE2b-256 11629486d7d60f51f71f09f3ba74c39b5cabd074c65bfe4eefa4c8c3d313b5bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8aa44c6f8d74c015a34815f2ebb74a689ff2aefd0c2aa836db69c8b26fb822bc
MD5 8dc2c80b7c2c15ee0c077ccba20661a2
BLAKE2b-256 f680b7b8b49edd74cb6f350ac0a5abebffed61c354f00001444c68c02a7c14ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0f6d2e3fd4dddbec6b5f00af43ad6f73eeffa7957e5593d6de5e78f8d967f183
MD5 2edccaf8058d3d27be597df65a709eb1
BLAKE2b-256 a2f5f2c16de4f51cdaa69f88144ac7c09a7cd21c35145485dad20470195cf981

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for libmultisense-7.4.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 0e874ec90829b96ef3da3f354345d4ba8423f69b3f062509202ca4f3970a7eb2
MD5 fc6f882c8b2d9e67b3ac53d83f58b73f
BLAKE2b-256 94585f86e71cf68daf3c1941f1840f9df4bc7ac85d5501f5bcccc9bdf2f3b0e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99d6ae2cf03bf497949e2a075f28f41fc86e757666d2b8530b4a5b1ce01c0111
MD5 d22e4a77689ef3362b1a006281d6be5c
BLAKE2b-256 431cac80f35fef0c199981ea6f1cbae96f144709c32694d92f6b892485d6ac0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6b9e14a09330b5b0d9492e9493f22fafdd1adb7ec4c2ec6733b8411e49251d19
MD5 e4c1b858e08b2fad7df8c41ddf25b32a
BLAKE2b-256 69d9a4b591cb24e5945dc846b4f94fccc531b3501e2388a5113d19663995cbab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libmultisense-7.4.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a79dfddf39c413a10614793991f12b95b240c66277177880a5d7ad8cfd3fbd8
MD5 277a2817214a40d584f17386b7738f95
BLAKE2b-256 e36115c28b644e34ff9ec3801289d845a75d222090c1b3c9f837110f4ec7c1ef

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