Skip to content

paireks/meshmeshmesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

meshmeshmesh Crates.io Version

meshmeshmesh

Introduction

Open-source mesh engine written in Rust programming language.

It could be useful for mesh modification, processing, fixing, etc.

Installation

https://crates.io/crates/meshmeshmesh

Run the following command:

cargo add meshmeshmesh 

Features

Mesh analysis tools

  • Triangle/Ray intersection
  • Mesh/Ray intersection
  • Face normals calculation
  • Area
  • Finding non-manifold edges
  • Is connected
  • Mesh -> Graph
  • ... and more ;)

Mesh processing tools

  • Mesh welding
  • Split by angle
  • Normals flipping Normals flipping
  • Mesh planar simplify Planar simplify
  • Mesh deduplication Deduplication

Mesh creation tools

  • 3D Polygon triangulation with holes Polygon triangulation

File formats

This library works natively on .bim file format, which is open minimalist text mesh format described here: https://github.com/paireks/dotbim

Example for loading dotbim scene:

use std::fs; use serde_json::from_value; use meshmeshmesh::*; fn import_scene_example() { let path = "File.bim"; let read_file = fs::read_to_string(path).unwrap(); let json: serde_json::Value = serde_json::from_str(&*read_file).unwrap(); let input_scene: scene::Scene = from_value(json).unwrap(); //... }

There are many ways to export or convert into this file format using tools described here: https://github.com/paireks/dotbim?tab=readme-ov-file#apps-supporting-bim

Documentation & Examples

https://docs.rs/meshmeshmesh/latest/meshmeshmesh/

Dependencies

meshmeshmesh is using:

License

meshmeshmesh is under the AGPL-3.0 license.

Author

Wojciech Radaczyński (https://radaczynski.pl/)