/tinymesh

TinyMesh is a light-weight mesh processing library in C/C++.

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

TinyMesh

Codacy Badge Windows CI MacOS CI Ubuntu CI License: MPL 2.0

TinyMesh is a light-weight mesh processing library in C/C++

Modules

Here is the list of modules and reference papers for that.

Install

The module is tested its compilation using the following compilers.

  • Windows - Visual Studio 2019
  • MacOS - Apple Clang 11.0 (MacOS 10.15)
  • Linux - LLVM Clang 10.0, GNU C Compiler 9.4.0

Library and examples (C++)

You can build a shared library and all the examples by CMake with the following commands.

git clone https://github.com/tatsy/tinymesh.git --depth 1
cd tinymesh
git submodule update --init --recursive
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON ..
cmake --build . --config Release --parallel 2

Python module

You can install the Python module using Pip.

pip install git+https://github.com/tatsy/tinymesh.git

You can also use poetry to install from source codes.

git clone https://github.com/tatsy/tinymesh
cd tinymesh
poetry install

Run examples

C++

./build/bin/example_simplify data/models/bunny.ply

Python

python examples/python/fill_and_fair.py data/models/bunny.ply

Gallery

Remeshing

Input Remesh Remesh (bottom part)

Simplification

Input Simplify (50000 faces) Simplify (10000 faces)

Denoising (L0)

Original Noisy Denoise

Notice

The functions provided by this repo are not perfect and their process will fail for problematic meshes, e.g., with non-manifold faces. In such cases, you can fix the problem by repairing the mesh using MeshFix.

License

Mozilla Public License v2 (c) Tatsuya Yatagawa 2020-2021