- Generates simplified 2-manifold meshes with convex decomposition in seconds.
- High success rate on messy, in-the-wild mesh data, including datasets like Objaverse.
- Supports parallel processing of multiple meshes on CPUs.
- Easy to customize the processing tasks.
- The code is currently only tested on Linux Ubuntu.
- ACVD for mesh simplification.
- CoACD for convex decomposition.
- OpenVDB for generating a 2-manifold mesh.
- Clone the third-parties.
git submodule update --init --recursive
- Create and install the python environment using Conda.
conda create -n meshproc python=3.10
conda activate meshproc
pip install trimesh
pip install hydra-core
pip install lxml
# For offline partial point cloud rendering
pip install warp-lang
pip install opencv-python
pip install pyglet
- Build the third-party packages according to the guidance in ACVD and CoACD. OpenVDB will be installed automatically in CoACD. For ACVD, here is a guidance for installing the VTK dependence:
sudo apt-get update
sudo apt install -y build-essential cmake git unzip qt5-default libqt5opengl5-dev libqt5x11extras5-dev libeigen3-dev libboost-all-dev libglew-dev libglvnd-dev
git clone https://gitlab.kitware.com/vtk/vtk.git
cd vtk
git checkout v9.2.0
mkdir build
cd build
cmake ..
make -j12
sudo make install
export VTK_DIR=/usr/local/include/vtk-9.2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
-
The meshes should be organized similarly as in
example_data
. -
The downloading guidance for objaverse-1.0 is in
src/dataset/objaverse_v1/README.md
.
- Processing meshes for
example_data
. The processed results will be saved inexample_data/output
and the logs will be saved tooutputs
.
python src/script/process.py data=example task=main
# python src/script/process.py data=example task=simplified
- Get statistic.
python src/script/statistic.py data=example task=main
- Rendering partial point cloud.
python src/script/multi_gpu_render.py