Skip to main content

A Topology Repair Algorithm for Voxel Boundary Meshes

Project description

EdgeMender: A Topology Repair Algorithm for Voxel Boundary Meshes

pre-commit uv Ruff Actions status

Coverage

Coverage Report
FileStmtsMissCoverMissing
edge_mender
   init.py20100% 
   data_factory.py1350100% 
   edge_mender.py1720100% 
   geometry_helper.py430100% 
   mesh_generator.py740100% 
   visualizer.py460100% 
TOTAL4720100% 

This tool repairs non-manifold edges in voxel boundary meshes to fix downstream operations such as smoothing. Non-manifold edges are defined as edges shared by four faces. Voxel boundary meshes are 3D surface representations of a data set where the faces and vertices perfectly snap to cells in a structured voxel grid. Common uses for this algorithm are repairing output from Cuberille, Surface Nets before smoothing, and non-adaptive Dual Contouring implementation without vertex adjustment. The algorithm procedure works for quad meshes, but this implementation is currently limited to triangular meshes (see #3). This algorithm requires input meshes to have proper and consistent winding order.

The three algorithms listed above are provided in the mesh_generator module. A set of test data sets are provided in the data_factory module. A visualization tool is also provided in the visualizer module. The results folder contains the evaluation notebook and the example notebook demonstrates the tool in use.

Usage Instructions

pip install git+https://github.com/MattTheCuber/edge-mender

from edge_mender import EdgeMender

mesh: trimesh.Trimesh = ...

mender = EdgeMender(mesh)
mender.repair()

For a walkthrough example, see the example notebook.

Contributor Instructions

  1. Clone the repository using git clone https://github.com/MattTheCuber/edge-mender.git
  2. Initialize the submodule using git submodule update --init
  3. Install uv
  4. Create a virtual environment using uv venv
  5. Install all development dependencies using uv sync --all-extras
  6. Run pre-commit install
  7. Create a branch and start writing code!

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

edge_mender-0.1.0.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

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

edge_mender-0.1.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file edge_mender-0.1.0.tar.gz.

File metadata

  • Download URL: edge_mender-0.1.0.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for edge_mender-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dd7f5d80e5d88be1973de74acc9c2c6041c1e359d4618c5b6b89ccb273c6f83a
MD5 e23cb3d8d0e337d0d90762a2147f89b4
BLAKE2b-256 9335bc9257662e197204198493b7f84e5073dcb645a9bb74592532440bd7dff2

See more details on using hashes here.

Provenance

The following attestation bundles were made for edge_mender-0.1.0.tar.gz:

Publisher: release.yml on MattTheCuber/edge-mender

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

File details

Details for the file edge_mender-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: edge_mender-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for edge_mender-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 809c63377f583cf1cafbc80ce8ce935e40c48a399b8b60751c708e638cd2af92
MD5 055e30c01a85bdcc0031f6532c1185d3
BLAKE2b-256 9adda09e3f1a52eff7fbad4ed0011108e2986c934e14bda5f5dc2d647230ddd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for edge_mender-0.1.0-py3-none-any.whl:

Publisher: release.yml on MattTheCuber/edge-mender

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