MeshAnythingV2  by buaacyw

Research paper implementation for artist-created mesh generation

created 1 year ago
884 stars

Top 41.6% on sourcepulse

GitHubView on GitHub
Project Summary

MeshAnythingV2 addresses the challenge of generating high-quality, artist-like 3D meshes from various inputs, including text, images, and existing meshes. It is designed for researchers and developers in computer graphics and AI who aim to create or manipulate 3D assets with an artistic touch, offering a novel approach to mesh tokenization for improved generation quality.

How It Works

The core innovation lies in "Adjacent Mesh Tokenization," a method that represents 3D meshes as sequences of tokens, enabling generative models to learn and produce mesh structures more effectively. This approach is advantageous as it allows for a more structured and controllable generation process compared to direct mesh manipulation or voxel-based methods, facilitating the creation of meshes that mimic artistic styles.

Quick Start & Requirements

  • Install: Clone the repository, create a conda environment (conda create -n MeshAnythingV2 python==3.10.13), activate it, and install dependencies (pip install -r requirements.txt, pip install flash-attn --no-build-isolation, pip install -U gradio). PyTorch with CUDA 11.8 is required.
  • Prerequisites: Ubuntu 22, CUDA 11.8, A800 GPU (recommended).
  • Usage: For text/image to mesh, use Rodin to generate a dense mesh first, then process with python main.py --input_dir rodin_result --out_dir mesh_output --input_type mesh --mc. For mesh input, use python main.py --input_path examples/wand.obj --out_dir mesh_output --input_type mesh.
  • Demo: A local Gradio demo is available via python app.py.
  • More Examples: https://huggingface.co/spaces/Yiwen-ntu/MeshAnything/tree/main/examples

Highlighted Details

  • Inference takes ~8GB VRAM and 45s on an A6000 GPU.
  • Supports mesh and point cloud (with normals) as input.
  • Preprocessing with Marching Cubes (--mc) is recommended for better alignment.
  • Supports custom Marching Cubes resolution (--mc_level).

Maintenance & Community

The project is associated with multiple academic institutions, including Nanyang Technological University and Tsinghua University. Links to community resources like Discord or Slack are not explicitly provided in the README.

Licensing & Compatibility

The repository does not explicitly state a license. The code is presented as the "Official impl." for the paper "MeshAnything V2: Artist-Created Mesh Generation With Adjacent Mesh Tokenization," suggesting it is intended for research purposes. Commercial use compatibility is not specified.

Limitations & Caveats

The model is trained on meshes with fewer than 1600 faces and cannot generate meshes exceeding this limit. Input meshes should be sharp enough for representation within this face count. The README suggests using outputs from 3D reconstruction, scanning, SDS-based methods, or Rodin for optimal results. The up-vector of input meshes should be +Y.

Health Check
Last commit

3 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
78 stars in the last 90 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), Patrick von Platen Patrick von Platen(Core Contributor to Hugging Face Transformers and Diffusers), and
7 more.

stable-dreamfusion by ashawkey

0.1%
9k
Text-to-3D model using NeRF and diffusion
created 2 years ago
updated 1 year ago
Feedback? Help us improve.