SINGAPO: Single Image Controlled Generation of Articulated Parts in Objects

Jiayi Liu, Denys Iliash, Angel X. Chang, M. Savva, Ali Mahdavi-Amiri
2/12/2026

No official code found. Best implementation: 3dlg-hcvc/singapo (98 stars, MIT, last commit 2026-02-17).

Abstract

We address the challenge of creating 3D assets for household articulated objects from a single image. Prior work on articulated object creation either requires multi-view multi-state input, or only allows coarse control over the generation process. These limitations hinder the scalability and practicality for articulated object modeling. In this work, we propose a method to generate articulated objects from a single image. Observing the object in resting state from an arbitrary view, our method generates an articulated object that is visually consistent with the input image. To capture the ambiguity in part shape and motion posed by a single view of the object, we design a diffusion model that learns the plausible variations of objects in terms of geometry and kinematics. To tackle the complexity of generating structured data with attributes in multiple domains, we design a pipeline that produces articulated objects from high-level structure to geometric details in a coarse-to-fine manner, where we use a part connectivity graph and part abstraction as proxies. Our experiments show that our method outperforms the state-of-the-art in articulated object creation by a large margin in terms of the generated object realism, resemblance to the input image, and reconstruction quality.

View on arXivView PDF

Code Implementations(1)

3dlg-hcvc/singapoCommunity65%
MIT

[ICLR 2025] SINGAPO: Single Image Controlled Generation of Articulated Parts in Objects

985PythonOct 15, 20248 months agoMIT

Similar Papers

Cite this paper

@article{liu2026singapo,
  title  = {SINGAPO: Single Image Controlled Generation of Articulated Parts in Objects},
  author = {Jiayi Liu and Denys Iliash and Angel X. Chang and M. Savva and Ali Mahdavi-Amiri},
  year   = {2026},
  eprint = {2410.16499},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2410.16499},
  journal = {ICLR 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2410.16499.svg)](https://codeofpaper.com/paper/2410.16499)

Discussion