Observed since 20 Oct, 15:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Advanced 3D mesh processing library.
Advanced algorithms for 3D mesh processing with AI agents!
3MeshSDK provides a robust foundation for 3D data processing, supporting all essential formats like point clouds, meshes, and volumes continuously generated by modern sensors. The powerful half-edge data structure ensures manifold compliance for precise, reliable mesh representation.
This guide explains how to set up 3MeshSDK for C++ development on Windows, Linux, macOS, and docker, and also shows how to build WebAssembly modules using 3MeshSDK with Emscripten. It covers all the prerequisites and setup steps for each platform, making it easy to get started.
Install Clang 18+ first.
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 18
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 100 # (optional)
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 200
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-14 100 # (optional)
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 200
sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 100 # (optional)
sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-18 200
sudo update-alternatives --config clang
sudo update-alternatives --config clang++
clang --version
clang++ --version
llvm-config --version
export CC=gcc
export CXX=g++
export CMAKE_C_COMPILER=gcc
export CMAKE_CXX_COMPILER=g++
export PATH=/usr/bin:$PATH
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 2
sudo update-alternatives --config python3
python3.12 -m ensurepip --upgrade
python3.12 -m pip install --upgrade pip
Install/Build Dependencies and Compile:
git submodule update --init
./scripts/build_thirdparty.sh
./scripts/build_source.sh
Create and Install Package:
For Ubuntu:
./scripts/distribution.sh
sudo apt install ./distr/meshsdk-dev.deb
For Fedora**:
./scripts/distribution_rpm.sh
sudo rpm -i ./distr/meshsdk-dev.rpm
`docker compose up --build 3mesh-emscripten-build`
`docker compose up 3mesh-emscripten-build`
`docker compose up 3mesh-emscripten-build -d`
`docker compose --profile singlethreaded up 3mesh-emscripten-build-singlethreaded`
`docker compose --profile wasm64 up 3mesh-emscripten-build-wasm64`
#
# To run custom build commands:
#
`docker compose exec 3mesh-emscripten-build bash`
`docker compose exec 3mesh-emscripten-build-singlethreaded bash`
`docker compose exec 3mesh-emscripten-build-wasm64 bash`
Prerequisites
Install Homebrew
Run the following command in your terminal to install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Update Homebrew
Make sure Homebrew is up to date:
brew update
Install Git Using Homebrew
Once Homebrew is installed and added to your PATH, you can proceed to install Git:
brew install git
Compile Locally
Install/Build Dependencies and Compile:
git submodule update --init
./scripts/build_thirdparty.sh
./scripts/build_source.sh
Run example We suggest starting with the mesh loading and saving example, which demonstrates how to work with mesh files programmatically.
Compile locally from sources.
vcpkg.vcpkg).vcpkg, follow these steps:Open a command prompt (CMD) or PowerShell window.
Navigate to parent directory to install vcpkg:
cd ../
Clone the vcpkg repository:
git clone https://github.com/microsoft/vcpkg.git
Navigate to the vcpkg directory:
cd vcpkg
git checkout git checkout 2026.02.27
If you're using Visual Studio 2022, you can use the latest version of vcpkg: git checkout 2026.02.27
The version 2024.10.21 is required only for compatibility with Visual Studio 2019.
Run the bootstrap script to build the vcpkg executable:
bootstrap-vcpkg.bat
Integrate vcpkg with Visual Studio (requires Administrator access):
vcpkg integrate install
Learn more about vcpkg.
The following steps will require approximately 40 GB of disk space.
cd ../3mesh-sdk
git submodule update --init
cd ../vcpkg
..\3mesh-sdk\thirdparty\install.bat
3mesh-sdk/source/MeshSDK.sln in Visual Studio.3mesh-sdk/CMakeLists.txt in Visual Studio (File - Open - CMake).Emscripten is required to compile C++ code into WebAssembly. You can install Emscripten by following the steps below.
# Fetch the latest version of the emsdk (not needed the first time you clone)
git pull
# Download and install the latest SDK tools.
# ./emsdk install latest # ⚠️ NOT supported
./emsdk install 4.0.10
# Make the "latest" SDK "active" for the current user. (writes .emscripten file)
# ./emsdk activate latest # ⚠️ NOT supported
./emsdk activate 4.0.10
# Activate PATH and other environment variables in the current terminal
source ./emsdk_env.sh
Only web and worker environments (i.e. web browsers) are officially supported.
git submodule update --init
./scripts/build_thirdparty.sh
./scripts/build_source.sh
Build 3meshsdk from source code, see more details in README-generating.
curl -Ls https://astral.sh/uv/install.sh | sh
source ~/.bashrc
# At project's root dir
sudo ${PWD}/scripts/3mbind/install_deps_ubuntu.sh
./scripts/3mbind/install_3mbind_ubuntu.sh
make -f ${PWD}/scripts/3mbind/generate.mk -B --trace ENABLE_CUDA=1
# **`shims` — add support for multiple Python versions.**
make shims -f ${PWD}/scripts/3mbind/generate.mk -B --trace ENABLE_CUDA=1 PYTHON_VERSIONS=3.12
# Create and fix wheel
python -m venv ./wheel_venv
source ./wheel_venv/bin/activate
python -m pip install patchelf
# This will generate the `3meshsdk` wheel to `./scripts/wheel/meshsdk`
python ${PWD}/scripts/wheel/build_wheel.py --version 'v1.0.1'
# Install the built `3meshsdk`
cd ${PWD}/scripts/wheel/meshsdk
pip install .
# Check the installed `3meshsdk`
pip list | grep 3mesh
# Publish
pip install --upgrade build twine
python -m build
'''
[distutils]
index-servers =
pypi
testpypi
[pypi]
username = __token__
password = <u-token>
[testpypi]
username = __token__
password = <u-token>
'''
vi ~/.pyirc
# test
#pip install -i https://test.pypi.org/simple 3meshsdk
twine upload --repository testpypi dist/* --verbose
# official
#pip install 3meshsdk
twine upload dist/* --verbose
Run the generator on different platforms
On Windows: scripts\3mbind\generate_win.bat -B --trace from the VS developer command prompt (use the x64 Native one!).
When generating the Python bindings, the current directory matters, as this will look for 3MeshSDK in ./source/x64/Release. Add VS_MODE=Debug at the end if you built 3MeshSDK in debug mode.
The generate_win.bat file merely calls generate.mk (see below) inside of MSYS2 shell. You can use that directly if you want.
On Linux: make -f scripts/3mbind/generate.mk -B --trace
This will look for 3MeshSDK in ./build/Release/bin. Pass MESHSDK_SHLIB_DIR=path/to/bin for a different directory.
On MacOS: Same as on Linux, but before running the command you must adjust the PATH. On Arm Macs: export PATH="/opt/homebrew/opt/make/libexec/gnubin:$PATH", and on x86 Macs /usr/local/... instead of /opt/homebrew/.... This adds the version of Make installed in Homebrew to PATH, because the default one is outdated. Confirm the version with make --version, it must be 4.x or newer.
Install with npm or yarn:
npm install 3meshsdk
For Python, simply install via pip:
pip install 3meshsdk
Here, you can access our Non-Commercial Free License with a Commercial License Requirement. Also, see license.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.1 | 31 Mar 2026 | 1 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 15:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:056175f52d8754ca0911da674ec746f38c27369d7908f5986acdf0eecd33bef6