Coder Social home page Coder Social logo

zishun / meshutility Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 1.0 490 KB

A collection of python utilities for mesh processing

Home Page: https://zishun.github.io/projects/MeshUtility/

License: GNU Lesser General Public License v2.1

Python 32.45% CMake 5.09% C++ 58.15% Jupyter Notebook 4.32%
mesh computer-graphics 3d-geometry geometry-processing mesh-processing isolines geodesic python shortest-path triangular-mesh

meshutility's Introduction

Build

MeshUtility

A collection of python utilities for mesh processing.

Install with

pip install meshutility==0.0.2

A simple tutorial is available here Open In Colab.

Functions & Modules

  • colormap_vertex_color: assign vertex color to visualize a scalar field defined on mesh.
  • cut_along_curve: cut a mesh along a vertex chain.
  • ff_graph: face-face graph of mesh.
  • get_scalar_field_on_resampled_points: given a scalar field defined on a triangular mesh, get field values on resampled points.
  • IsoCurve module: extract isocurves on a scalar field defined on a manifold triangular mesh.
  • pygeodesic module (C++): geodesic for triangular meshes.
    • exact geodesic by Danil Kirsanov.
    • fast marching, may use different speed on each face.
  • pyisocurve module (C++): almost the same as IsoCurve above.
  • pyremesh module (C++): incremental isotropic remeshing.
  • pyshapeop module (C++): a partial binding of ShapeOp.
  • read_obj_lines: read polyline from a Wavefront .obj file.
  • remove_unreferenced_vertices: remove unreferenced vertices.
  • sphere_cvt: iteratively approximate centroidal Voronoi tessellation (CVT) on the unit sphere (kind of uniform sampling).
  • split_connected_components: split connected components.
  • split_mesh, split_mesh_complete: split a mesh by inserting new vertices defined on mesh edges.
  • write_obj_lines: write polyline as a Wavefront .obj file that can be open with MeshLab.
  • vv_graph: vertex-vertex graph of mesh.

Build from Source

see build.md

meshutility's People

Contributors

zishun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

yinggwan

meshutility's Issues

geodesic inf

The MMP geodesic has several 1e100. I would use inf.
Maybe include the necessary files in this repo, not using them as a submodule.

A compatible license?

  • eigen: MPL2 and LGPL
  • OpenMesh: BSD-3-Clause
  • ShapeOp: MPL2
    • ShapeOp relies on LGPL-licensed LDLT in eigen.
  • geodesic: BSD-2-Clause
  • libigl: MPL2
  • pybind11: BSD-style

cut mesh

The cutting method here requires that no interior cutting path vertices are lying on the boundary. The one in libigl looks better.

import meshutility in root folder

When working in the root folder of this repo, the sub-folder meshutility/ is treated as a package and imported if we import meshutility. It will report No module named 'meshutility.utils' since the C++ libraries are not inside. Consider renaming the sub-folder meshutility/ so that python imports the installed version.

SetuptoolsDeprecationWarning

Currently, we build with python setup.py install and get the warnings:

running install
<...>/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
<...>/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(

Let's move to pip install ..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.