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

pip install .

With trimesh support:

pip install .[trimesh]

With development tools:

pip install .[dev]

Dependencies are automatically downloaded during build. No manual setup required!

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.6.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.6-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.6.tar.gz.

File metadata

  • Download URL: pylmesh-0.0.6.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.6.tar.gz
Algorithm Hash digest
SHA256 12597e713095d51c578fff9c103603bc8228ce4af6849691daeea697490ec9ba
MD5 d460645891675ca09d8186ab017ddace
BLAKE2b-256 43d784562eeb46f5c00d1d57be176bbba8d857cd5c468097f6dcc65d1988bcef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylmesh-0.0.6.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.6-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pylmesh-0.0.6-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d621a3f807b330162e8542854233588f4bb0bf0d9503afa661b8cafb45e4074
MD5 1b769e9aecf00367836feb839cddf948
BLAKE2b-256 201845b4cbf84f4ff14c8cc2f5312ae0013602b2f531ad6449253ba80b0af706

See more details on using hashes here.

Provenance

The following attestation bundles were made for pylmesh-0.0.6-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