Skip to main content

A lightweight library for importing and exporting surface mesh files in multiple formats

Project description

pylmesh

pylmesh is a lightweight python library for importing and exporting surface mesh files in multiple formats. The library is designed in C++ with python bindings to feature high performance and loading large scale meshes.

Supported Formats

  • OBJ (Wavefront) - Import/Export
  • STL (ASCII) - Import/Export
  • PLY (ASCII) - Import/Export
  • OFF (Object File Format) - Import/Export
  • GLTF - Import/Export
  • GLB - Import/Export (with Draco compression)

Usage

Python

import pylmesh

# Load mesh
mesh = pylmesh.load_mesh("model.obj")
print(f"Vertices: {mesh.vertex_count()}")
print(f"Faces: {mesh.face_count()}")

# Compute surface area
area = mesh.surface_area()
print(f"Surface area: {area}")

# Save mesh
pylmesh.save_mesh("output.stl", mesh)

C++

#include <pylmesh/loader.h>
#include <pylmesh/exporter.h>

pylmesh::Mesh mesh;
if (pylmesh::MeshLoaderFactory::loadMesh("model.obj", mesh)) {
    // Use mesh data
    pylmesh::MeshExporterFactory::saveMesh("output.stl", mesh);
}

Installation

System Requirements

macOS:

brew install libomp

Linux (Ubuntu/Debian):

sudo apt-get install libomp-dev

Linux (Fedora/RHEL):

sudo dnf install libomp-devel

Python Package

Core functionality only (no dependencies):

pip install pylmesh

With optional features:

# Add trimesh support
pip install pylmesh[trimesh]

# Add batch conversion tools
pip install pylmesh[batch]

# Add development tools
pip install pylmesh[dev]

# Install everything
pip install pylmesh[trimesh,batch,dev]

From source:

pip install .

C++ Library

mkdir build && cd build
cmake ..
make

All dependencies (tinygltf, nlohmann/json, stb, draco) are automatically downloaded.

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

pylmesh-0.0.7.tar.gz (19.6 MB view details)

Uploaded Source

Built Distribution

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

pylmesh-0.0.7-cp312-cp312-manylinux_2_28_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

File details

Details for the file pylmesh-0.0.7.tar.gz.

File metadata

  • Download URL: pylmesh-0.0.7.tar.gz
  • Upload date:
  • Size: 19.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pylmesh-0.0.7.tar.gz
Algorithm Hash digest
SHA256 2d5f22639852682b33f0df120b968dd8339ec7694f0fcaebfa7711f6bc9918bf
MD5 027f6596ce6824e6298059e587023feb
BLAKE2b-256 f1a8cc57ffd92387bae6f97ae9b33c0649ac09bc776b6475b99856d29992e854

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylmesh-0.0.7.tar.gz:

Publisher: ci.yml on openbraininstitute/pylmesh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pylmesh-0.0.7-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pylmesh-0.0.7-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 32833596b79f1622b0256e1924374954e4992cbe47e56716df331b57d2a93a3b
MD5 bdcb1444251f46b962d88015f3266dce
BLAKE2b-256 3cb6d185738c8c1fcf64c8d0eb87bafe5089d45b58e70156d4caada424f8f9cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylmesh-0.0.7-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: ci.yml on openbraininstitute/pylmesh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page