Skip to main content

vcti-tree-exporter-mesh

Tree exporter plugins for mesh-schema DataNode trees: PLY, OBJ, and STL writers.

Overview

vcti-tree-exporter-mesh is the write side of the mesh package family. It ships three exporters satisfying the vcti-tree-exporter Exporter protocol — PlyExporter (binary little-endian), ObjExporter (text), StlExporter (binary) — that consume a mesh-schema subtree from any tree (typically one a mesh loader such as vcti-fileloader-slim populated) and write its points and triangles to disk. The three formats live in one package deliberately: all are zero-dependency and schema-bound; a format earns its own package only when it brings a heavy dependency.

Installation

pip install vcti-tree-exporter-mesh

In requirements.txt

vcti-tree-exporter-mesh>=1.0.0

In pyproject.toml dependencies

dependencies = [
    "vcti-tree-exporter-mesh>=1.0.0",
]

Quick Start

Convert a SLIM mesh to STL — loader in, exporter out, the mesh subtree as the hand-off:

from pathlib import Path
from vcti.fileloader.core import DataNode
from vcti.fileloader.slim import SlimLoader
from vcti.tree.core import DictTree
from vcti.tree.exporter.mesh import StlExporter

loader, tree = SlimLoader(), DictTree(root_data=DataNode())
with loader.open(Path("3d.slm")) as handle:
    loader.populate(handle, tree, tree.root_handle)
    StlExporter().export(tree, Path("3d.stl"))

Each exporter finds the tree's (single) mesh subtree by itself; pass root= when the tree holds several. Through the registry, resolution works by id or attribute lookup like the rest of the exporter family:

from vcti.tree.exporter.core import build_registry, get_exporter
from vcti.tree.exporter.mesh import get_exporter_descriptors

registry = build_registry(get_exporter_descriptors())
get_exporter(registry, "ply").export(tree, Path("mesh.ply"), overwrite=True)

The three formats

Exporter id Output Notes
PlyExporter ply binary little-endian PLY float32 vertices; vertex-only meshes allowed
ObjExporter obj Wavefront OBJ text 1-based faces; \n line endings on all platforms
StlExporter stl binary STL computed facet normals; requires a non-empty triangle block

Common behavior: the mesh subtree is validated against the schema before writing (violations raise ExportError with context, never raw numpy errors); 2-D meshes are padded with z = 0; existing files raise FileExistsError unless overwrite=True.

See docs/design.md for the model and boundaries.


Dependencies

Metadata

Release files for vcti-tree-exporter-mesh 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vcti-tree-exporter-mesh 1.0.0
File Size Uploaded
vcti_tree_exporter_mesh-1.0.0.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vcti-tree-exporter-mesh 1.0.0
File Interpreter ABI Platform
vcti_tree_exporter_mesh-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / vcti_tree_exporter_mesh-1.0.0.tar.gz

Download URL vcti_tree_exporter_mesh-1.0.0.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
569a348170896b1c5b458f308bef8d17af74fbb810fdb7241e719912135eb6f8
BLAKE2b-256 checksum
How to use checksums
8f993a5e99f572813515104e393581dc18118ce604bafbcdce8f8624ad39b5af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.

Transparency log

Release files / vcti_tree_exporter_mesh-1.0.0-py3-none-any.whl

Download URL vcti_tree_exporter_mesh-1.0.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
690b30253379b8ff7e0ab552d8b43a195159351947a5d725569f9786060aad23
BLAKE2b-256 checksum
How to use checksums
2fc11fdf89fb8dc65cf932dbfbc20f0e9353da8dc93ea5046af928f37228b476
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page