Skip to content

Repository files navigation

MonoArt

English | Chinese

Progressive Structural Reasoning for Monocular Articulated 3D Reconstruction

🎉 Accepted to ECCV 2026

Haitian Li* · Haozhe Xie* · Junxiang Xu · Beichen Wen · Fangzhou Hong · Ziwei Liu

S-Lab, Nanyang Technological University
* Equal contribution    Corresponding author

ECCV 2026 arXiv paper Project page Model checkpoints

MonoArt overview

From a single image to a textured, segmented, and articulated 3D asset.

🔥 News

  • ECCV 2026: MonoArt has been accepted to the European Conference on Computer Vision! 🎉
  • Newer work: PhysX-Omni delivers stronger results and extends simulation-ready physical 3D generation to a unified setting covering rigid, deformable, and articulated objects. [Project page]

✨ Overview

MonoArt is the official implementation of MonoArt: Progressive Structural Reasoning for Monocular Articulated 3D Reconstruction. It turns a single object image into a textured, segmented, and articulated 3D asset.

🗓️ TODO

  • Publish the initial code and checkpoint release (organized and functional, but not yet fully polished).
  • October 2026: Fix the remaining minor bugs and publish the final release.

🛠️ Installation

MonoArt uses one Conda environment for all stages. TRELLIS still runs in a child process so its GPU allocations are released before the reasoning and motion stages begin.

conda env create -f environment/monoart.yml
conda activate monoart
bash scripts/install_dependencies.sh

The examples below use python -m monoart so that the active Python interpreter is explicit. After installation, the shorter monoart ... form is exactly equivalent: it is a Python console entry point installed into the active Conda environment, not a shell alias. Installation and use do not require sudo or change repository file permissions. PYTHONNOUSERSITE=1 only prevents packages from the user's global Python site directory from leaking into this environment.

More details and troubleshooting are in docs/installation.md.

📦 Checkpoints

Download the release asset and its manifest into checkpoints/:

curl -L -o checkpoints/monoart_stage1.pt \
  https://github.com/Quest4Science/MonoArt/releases/latest/download/monoart_stage1.pt
curl -L -o checkpoints/monoart_stage1.pt.json \
  https://github.com/Quest4Science/MonoArt/releases/latest/download/monoart_stage1.pt.json
python -m monoart verify-checkpoint checkpoints/monoart_stage1.pt
python -m monoart inspect-checkpoint checkpoints/monoart_stage1.pt

TRELLIS Weights

third_party/TRELLIS/ is the TRELLIS source checkout created by the installation script, not a model-weight directory. On the first inference run, MonoArt automatically downloads JeffreyXiang/TRELLIS-image-large from Hugging Face and stores it in the standard cache (~/.cache/huggingface/hub/ by default). Set HF_HOME=/path/to/huggingface-cache before running MonoArt to use another cache location. The first run requires network access unless this cache has already been populated.

🚀 Inference

Run every stage from the unified monoart environment:

PYTHONNOUSERSITE=1 python -m monoart run path/to/object.png \
  --checkpoint checkpoints/monoart_stage1.pt \
  --output outputs/demo \
  --trellis-root third_party/TRELLIS

The default result is a compact articulated asset: model.urdf, the complete whole.glb, and one URDF-ready meshes/link_*.glb per predicted link. No point clouds, feature arrays, JSON diagnostics, or animation frames are published by default. An interrupted run can continue from its hidden workspace with --resume; use --keep-intermediates only when stage-level debugging artifacts are needed.

✅ End-to-End Smoke Test

The repository includes the validated KitchenPot input and its compact reference asset. A quick CPU-only check of the expected file layout and geometry is:

PYTHONNOUSERSITE=1 python -m monoart validate-asset examples/100028/expected

From the repository root, run the complete image-to-URDF pipeline with:

PYTHONNOUSERSITE=1 python -m monoart run examples/100028/input.png \
  --sample-id 100028 \
  --checkpoint checkpoints/monoart_stage1.pt \
  --output outputs/100028 \
  --trellis-root third_party/TRELLIS \
  --seed 42

Stage-specific commands, file contracts, and output layout are documented in docs/inference.md.

Checkpoint publication and download commands are documented in docs/releasing.md.

🎓 Training and Evaluation

Portable configurations are provided for the released 200-query architecture:

torchrun --standalone --nproc-per-node=4 \
  -m monoart.motion.scripts.train --config configs/train_motion.yaml

torchrun --standalone --nproc-per-node=4 \
  -m monoart.motion.scripts.train --config configs/train_kinematic.yaml

Dataset preparation and training details are recorded in docs/training.md and docs/datasets.md.

🗂️ Repository Layout

configs/             inference and training configurations
docs/                installation, data, inference, training, and release notes
environment/         reproducible Conda specifications
examples/            versioned end-to-end smoke-test inputs and reference metadata
scripts/             checkpoint and release utilities
src/monoart/         importable implementation
tests/               fast contract and numerical tests
third_party/         external dependencies created during installation

📝 Citation

@inproceedings{li2026monoart,
  title   = {MonoArt: Progressive Structural Reasoning for Monocular Articulated 3D Reconstruction},
  author  = {Li, Haitian and Xie, Haozhe and Xu, Junxiang and Wen, Beichen and Hong, Fangzhou and Liu, Ziwei},
  booktitle = {European Conference on Computer Vision (ECCV)},
  year    = {2026}
}

⚖️ Licensing

Distributed under the S-Lab License. See LICENSE for more information.

About

The official implementation of “MonoArt: Progressive Structural Reasoning for Monocular Articulated 3D Reconstruction”

Topics

Resources

Stars

70 stars

Watchers

4 watching

Forks

Contributors

Languages