Update README.md
Browse files
README.md
CHANGED
|
@@ -8,118 +8,202 @@ tags:
|
|
| 8 |
- spatial intelligence
|
| 9 |
- 3D vision
|
| 10 |
- depth estimation
|
|
|
|
|
|
|
| 11 |
pipeline_tag: image-to-3d
|
| 12 |
license: other
|
| 13 |
---
|
| 14 |
|
| 15 |
-
|
|
|
|
|
|
|
| 16 |
|
| 17 |
-
|
| 18 |
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
-
|
|
|
|
|
|
|
| 22 |
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
## Model Details
|
| 28 |
|
| 29 |
-
| | |
|
| 30 |
|---|---|
|
| 31 |
-
|
|
| 32 |
-
|
|
| 33 |
-
|
|
| 34 |
-
|
|
| 35 |
-
|
|
| 36 |
|
| 37 |
## Model Zoo
|
| 38 |
|
| 39 |
-
| Checkpoint | LLM | Vision Encoder | Diffusion |
|
| 40 |
|---|---|---|---|---|
|
| 41 |
-
| `Puffin-World-Base.pth` | Qwen2.5-7B | C-RADIOv3-H | SD3.5-medium |
|
| 42 |
-
| `Puffin-World-Pro.pth` | Qwen2.5-1.5B | C-RADIOv4-H | SD3.5-large |
|
| 43 |
-
| `Puffin-World-Caption.pth` | Qwen3.5-0.8B | C-RADIOv3-H | — | Understanding-only
|
| 44 |
|
| 45 |
-
|
| 46 |
|
| 47 |
-
| Checkpoint |
|
| 48 |
|---|---|
|
| 49 |
| `Puffin-World-Base.pth` | `configs/pipelines/final_stage_4_world_all_asym_attn_qwen2_5_7b_radiov3H_sd3p5M.py` |
|
| 50 |
| `Puffin-World-Pro.pth` | `configs/pipelines/final_stage_4_world_all_asym_attn_qwen2_5_1_5b_radiov4H_sd3p5L.py` |
|
| 51 |
| `Puffin-World-Caption.pth` | `configs/pipelines/vlm_qwen3_5_0_8b_radiov3H_stage_2.py` |
|
| 52 |
|
| 53 |
-
##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
|
| 55 |
-
|
| 56 |
-
- **Physical-world perception**: gravity-aware single-image camera estimation (roll, pitch, vFoV, distortion) with perspective-field visualization.
|
| 57 |
-
- **Free-viewpoint spatial simulation**: camera-controlled single-view generation and free-view world exploration (I2T → T2I → chunked multi-view I2I).
|
| 58 |
-
- **Closed-loop interaction**: self-calibration — the model estimates its own camera anomaly and generates the corrective action sequence.
|
| 59 |
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
-
|
| 63 |
|
| 64 |
-
```
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
├── Puffin-World-Base.pth
|
| 68 |
-
├── Puffin-World-Pro.pth
|
| 69 |
-
├── Puffin-World-Caption.pth
|
| 70 |
```
|
| 71 |
|
|
|
|
|
|
|
| 72 |
```bash
|
| 73 |
-
|
| 74 |
-
|
| 75 |
```
|
| 76 |
|
| 77 |
-
|
|
|
|
|
|
|
| 78 |
|
| 79 |
-
```
|
| 80 |
export PYTHONPATH=./:$PYTHONPATH
|
| 81 |
python scripts/demo/world_modeling.py \
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
|
|
|
|
|
|
| 85 |
```
|
| 86 |
|
| 87 |
-
|
| 88 |
|
| 89 |
-
```
|
| 90 |
python scripts/demo/physics_perception.py demo.jpg \
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
```
|
| 95 |
|
| 96 |
-
|
| 97 |
|
| 98 |
-
```
|
| 99 |
python scripts/demo/spatial_simulation.py \
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
|
|
|
|
|
|
| 104 |
```
|
| 105 |
|
| 106 |
-
|
| 107 |
|
| 108 |
-
```
|
| 109 |
python scripts/demo/freeview_world_exp.py \
|
| 110 |
-
|
| 111 |
-
|
|
|
|
|
|
|
| 112 |
|
| 113 |
python scripts/demo/self_calibration.py <image> \
|
| 114 |
-
|
| 115 |
-
|
| 116 |
```
|
| 117 |
|
| 118 |
-
For the 7B model,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
| 120 |
-
##
|
| 121 |
|
| 122 |
-
If
|
| 123 |
|
| 124 |
```bibtex
|
| 125 |
@article{liao2026puffinworld,
|
|
@@ -130,13 +214,13 @@ If you find Puffin-World useful for your research or applications, please cite o
|
|
| 130 |
}
|
| 131 |
|
| 132 |
@article{liao2025puffin,
|
| 133 |
-
title={Thinking with Camera: A Unified Multimodal Model for Camera-Centric Understanding and Generation},
|
| 134 |
-
author={Liao, Kang and Wu, Size and Wu, Zhonghua and Jin, Linyi and Wang, Chao and Wang, Yikai and Wang, Fei and Li, Wei and Loy, Chen Change},
|
| 135 |
-
journal={arXiv preprint arXiv:2510.08673},
|
| 136 |
-
year={2025}
|
| 137 |
}
|
| 138 |
```
|
| 139 |
|
| 140 |
-
##
|
| 141 |
|
| 142 |
-
This project is
|
|
|
|
| 8 |
- spatial intelligence
|
| 9 |
- 3D vision
|
| 10 |
- depth estimation
|
| 11 |
+
- multi-view generation
|
| 12 |
+
- camera calibration
|
| 13 |
pipeline_tag: image-to-3d
|
| 14 |
license: other
|
| 15 |
---
|
| 16 |
|
| 17 |
+
<p align="center">
|
| 18 |
+
<img src="https://raw.githubusercontent.com/KangLiao929/Puffin/main/Puffin-World/assets/Puffin-World-logo_transparent.png" width="240" alt="Puffin-World logo">
|
| 19 |
+
</p>
|
| 20 |
|
| 21 |
+
<h1 align="center">Puffin-World: Scaling a Unified Multimodal Model with Native 3D World States</h1>
|
| 22 |
|
| 23 |
+
<p align="center">
|
| 24 |
+
<a href="https://kangliao929.github.io/projects/puffin-world/">Project Page</a> ·
|
| 25 |
+
<a href="https://huggingface.co/blog/KangLiao/puffin-world">HF Article</a> ·
|
| 26 |
+
<a href="https://github.com/KangLiao929/Puffin">Code</a> ·
|
| 27 |
+
<a href="https://kangliao929.github.io/projects/puffin-16m/">Puffin-16M</a> ·
|
| 28 |
+
<a href="https://huggingface.co/collections/KangLiao/puffin-world">HF Collection</a> ·
|
| 29 |
+
<a href="https://kangliao929.github.io/projects/puffin-world/supplementary.html">Supplementary Results</a>
|
| 30 |
+
</p>
|
| 31 |
|
| 32 |
+
<p align="center">
|
| 33 |
+
<img src="https://kangliao929.github.io/projects/puffin-world/assets/figure1-overview.webp" width="100%" alt="Overview of Puffin-World">
|
| 34 |
+
</p>
|
| 35 |
|
| 36 |
+
## Overview
|
| 37 |
+
|
| 38 |
+
Puffin-World is a unified multimodal world model that perceives, simulates, generates, and reconstructs the 3D world within one framework. Instead of representing a world only as a sequence of RGB frames, it explicitly models three complementary native 3D world states:
|
| 39 |
+
|
| 40 |
+
- Physics: gravity fields and latitude maps that anchor observations and generated trajectories to the real world.
|
| 41 |
+
- Geometry: dense depth that exposes the underlying 3D structure and supports direct reconstruction.
|
| 42 |
+
- Appearance: high-fidelity images and sequences that remain spatially coherent as the camera moves.
|
| 43 |
+
|
| 44 |
+
A single integrated framework of a geometry-aligned vision encoder, an LLM, a diffusion model, and a lightweight connector supports physical-world perception, free-viewpoint spatial simulation, 3D world modeling, and closed-loop interaction without task-specific external perception or reconstruction modules.
|
| 45 |
+
|
| 46 |
+
At its core is camera-centric multi-view world modeling: given one initial view and a camera trajectory, Puffin-World jointly generates the remaining RGB and depth views and consolidates them into a gauge-aligned 3D point-cloud reconstruction.
|
| 47 |
+
|
| 48 |
+
## Highlights
|
| 49 |
+
|
| 50 |
+
- Native 3D world states: physics, geometry, and appearance are modeled together rather than leaving physical orientation and scene structure implicit.
|
| 51 |
+
- Omni-Camera: a 9-channel dense camera condition combines a gravity-aware absolute perspective field with ray-based relative geometry, supporting camera-to-world grounding, rotation, translation, and compound motion.
|
| 52 |
+
- Physics propagation: the gravity direction perceived from the reference view is propagated through the target camera trajectory to keep generated views in one coherent physical frame.
|
| 53 |
+
- Unified understanding and generation: autoregressive camera understanding and diffusion-based generation share the same multimodal framework.
|
| 54 |
+
- Scaled world modeling: Puffin-World is trained with Puffin-16M, comprising 15M vision-language-camera triplets and 1M diverse camera trajectories curated from 28 public datasets.
|
| 55 |
+
|
| 56 |
+
## Results at a Glance
|
| 57 |
+
|
| 58 |
+
| Capability | Result |
|
| 59 |
+
|---|---|
|
| 60 |
+
| Camera-to-world understanding | Best median errors in 12/12 comparisons and best AUC in 33/36 metrics, including ties, across Stanford2D3D, MegaDepth, TartanAir, and LaMAR |
|
| 61 |
+
| Physical-world perception | 0.26° lowest roll error on LaMAR and 1.62° lowest vFoV error on Stanford2D3D |
|
| 62 |
+
| Camera-controllable generation | 0.84° up-vector, 1.26° latitude, and 0.79° gravity median errors, with the lowest FID on Puffin-Cam-Bench |
|
| 63 |
+
| 3D world modeling | Rank 1 in both PSNR (17.22) and LPIPS (0.318) on RealEstate10K |
|
| 64 |
+
| Challenging trajectories | Lowest median roll and pitch errors on Puffin-Traj-Bench: 0.80° and 1.10° |
|
| 65 |
+
|
| 66 |
+
See the [project page](https://kangliao929.github.io/projects/puffin-world/) and [supplementary results](https://kangliao929.github.io/projects/puffin-world/supplementary.html) for complete quantitative and qualitative evaluations.
|
| 67 |
|
| 68 |
## Model Details
|
| 69 |
|
| 70 |
+
| Field | Description |
|
| 71 |
|---|---|
|
| 72 |
+
| Developed by | Kang Liao, Yihang Luo, Xiao-Ming Wu, Linyi Jin, Size Wu, Chunyu Lin, Yao Zhao, Fei Wang, Wei Li, Chen Change Loy |
|
| 73 |
+
| Affiliations | S-Lab, Nanyang Technological University; University of Michigan; Beijing Jiaotong University; ACE Robotics |
|
| 74 |
+
| First released | Preprint, 2026 |
|
| 75 |
+
| Model type | Unified multimodal world model with autoregressive understanding and diffusion-based multi-view RGB-D generation |
|
| 76 |
+
| Modalities | Image → Text + Camera; Text + Camera → Image; Image + Trajectory → Multi-view RGB-D + 3D point cloud |
|
| 77 |
|
| 78 |
## Model Zoo
|
| 79 |
|
| 80 |
+
| Checkpoint | LLM | Vision Encoder | Diffusion | Purpose |
|
| 81 |
|---|---|---|---|---|
|
| 82 |
+
| `Puffin-World-Base.pth` | Qwen2.5-7B | C-RADIOv3-H | SD3.5-medium | Comprehensive understanding and RGB-D world modeling |
|
| 83 |
+
| `Puffin-World-Pro.pth` | Qwen2.5-1.5B | C-RADIOv4-H | SD3.5-large | High-quality generation and RGB-D world modeling |
|
| 84 |
+
| `Puffin-World-Caption.pth` | Qwen3.5-0.8B | C-RADIOv3-H | — | Understanding-only camera-aware captioning expert |
|
| 85 |
|
| 86 |
+
Matching pipeline configurations:
|
| 87 |
|
| 88 |
+
| Checkpoint | Configuration |
|
| 89 |
|---|---|
|
| 90 |
| `Puffin-World-Base.pth` | `configs/pipelines/final_stage_4_world_all_asym_attn_qwen2_5_7b_radiov3H_sd3p5M.py` |
|
| 91 |
| `Puffin-World-Pro.pth` | `configs/pipelines/final_stage_4_world_all_asym_attn_qwen2_5_1_5b_radiov4H_sd3p5L.py` |
|
| 92 |
| `Puffin-World-Caption.pth` | `configs/pipelines/vlm_qwen3_5_0_8b_radiov3H_stage_2.py` |
|
| 93 |
|
| 94 |
+
## Intended Use
|
| 95 |
+
|
| 96 |
+
- Camera-to-world understanding from a single image, including roll, pitch, vertical field-of-view, distortion, and dense perspective fields.
|
| 97 |
+
- Camera-controllable text-to-image generation across explicit camera intrinsics and orientations.
|
| 98 |
+
- Image-conditioned or text-conditioned 3D world generation along long, extreme, or compound camera trajectories.
|
| 99 |
+
- Joint multi-view RGB-D generation and direct 3D point-cloud reconstruction.
|
| 100 |
+
- Closed-loop mimic world exploration and self-calibrated world exploration.
|
| 101 |
+
|
| 102 |
+
## Installation
|
| 103 |
|
| 104 |
+
The reference implementation uses Python 3.10, PyTorch 2.7.0, and CUDA 12.6.
|
|
|
|
|
|
|
|
|
|
| 105 |
|
| 106 |
+
```bash
|
| 107 |
+
git clone https://github.com/KangLiao929/Puffin
|
| 108 |
+
cd Puffin/Puffin-World
|
| 109 |
+
|
| 110 |
+
conda create -n puffin-world python=3.10 -y
|
| 111 |
+
conda activate puffin-world
|
| 112 |
+
|
| 113 |
+
pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 \
|
| 114 |
+
--index-url https://download.pytorch.org/whl/cu126
|
| 115 |
+
pip install -r requirements.txt
|
| 116 |
+
pip install flash-attn==2.8.3 --no-build-isolation
|
| 117 |
+
```
|
| 118 |
|
| 119 |
+
Sanity check:
|
| 120 |
|
| 121 |
+
```bash
|
| 122 |
+
export PYTHONPATH=./:$PYTHONPATH
|
| 123 |
+
python -c "import torch, transformers, deepspeed, xtuner, flash_attn, trimesh; print('ok')"
|
|
|
|
|
|
|
|
|
|
| 124 |
```
|
| 125 |
|
| 126 |
+
Download all released checkpoints:
|
| 127 |
+
|
| 128 |
```bash
|
| 129 |
+
pip install -U huggingface_hub
|
| 130 |
+
hf download KangLiao/Puffin-World --local-dir checkpoints
|
| 131 |
```
|
| 132 |
|
| 133 |
+
## Quick Start
|
| 134 |
+
|
| 135 |
+
Multi-view world modeling from an initial view and camera trajectory:
|
| 136 |
|
| 137 |
+
```bash
|
| 138 |
export PYTHONPATH=./:$PYTHONPATH
|
| 139 |
python scripts/demo/world_modeling.py \
|
| 140 |
+
--model Puffin-World \
|
| 141 |
+
--checkpoint checkpoints/Puffin-World-Pro.pth \
|
| 142 |
+
--dataset re10k \
|
| 143 |
+
--sample_index 0 \
|
| 144 |
+
--output output/demo_world
|
| 145 |
```
|
| 146 |
|
| 147 |
+
Physical-world perception from a single image:
|
| 148 |
|
| 149 |
+
```bash
|
| 150 |
python scripts/demo/physics_perception.py demo.jpg \
|
| 151 |
+
--model Puffin-World-Pro \
|
| 152 |
+
--checkpoint checkpoints/Puffin-World-Pro.pth \
|
| 153 |
+
--output output/demo_camera
|
| 154 |
```
|
| 155 |
|
| 156 |
+
Camera-controlled spatial simulation:
|
| 157 |
|
| 158 |
+
```bash
|
| 159 |
python scripts/demo/spatial_simulation.py \
|
| 160 |
+
"A cozy living room with wooden furniture and warm sunlight." \
|
| 161 |
+
--model Puffin-World-Pro \
|
| 162 |
+
--checkpoint checkpoints/Puffin-World-Pro.pth \
|
| 163 |
+
--camera "0.05, -0.12, 1.2" \
|
| 164 |
+
--num 4 \
|
| 165 |
+
--vis_pf
|
| 166 |
```
|
| 167 |
|
| 168 |
+
Free-view world exploration and self-calibration:
|
| 169 |
|
| 170 |
+
```bash
|
| 171 |
python scripts/demo/freeview_world_exp.py \
|
| 172 |
+
--checkpoint checkpoints/Puffin-World-Pro.pth \
|
| 173 |
+
--input <image> \
|
| 174 |
+
--scene_dir <re10k-style-scene-dir> \
|
| 175 |
+
--chunk 3
|
| 176 |
|
| 177 |
python scripts/demo/self_calibration.py <image> \
|
| 178 |
+
--checkpoint checkpoints/Puffin-World-Pro.pth \
|
| 179 |
+
--output output/demo_self_calib
|
| 180 |
```
|
| 181 |
|
| 182 |
+
For the 7B model, use `--model Puffin-World-7B` for world modeling or `--model Puffin-World-Base` for perception and simulation.
|
| 183 |
+
|
| 184 |
+
Detailed instructions:
|
| 185 |
+
|
| 186 |
+
- [Training](https://github.com/KangLiao929/Puffin/blob/main/Puffin-World/documents/TRAINING.md)
|
| 187 |
+
- [World-model evaluation and reconstruction](https://github.com/KangLiao929/Puffin/blob/main/Puffin-World/documents/EVALUATION_World.md)
|
| 188 |
+
- [Camera-centric understanding and generation evaluation](https://github.com/KangLiao929/Puffin/blob/main/Puffin-World/documents/EVALUATION.md)
|
| 189 |
+
- [Dataset construction and annotation](https://github.com/KangLiao929/Puffin/blob/main/Puffin-World/documents/DATASET_PIPELINE.md)
|
| 190 |
+
|
| 191 |
+
## Training Data
|
| 192 |
+
|
| 193 |
+
[Puffin-16M](https://kangliao929.github.io/projects/puffin-16m/) contains:
|
| 194 |
+
|
| 195 |
+
- Puffin-Cam-15M: 15 million vision-language-camera triplets rendered from approximately 900,000 source panoramas across seven aspect ratios, diverse camera orientations, and vertical fields of view.
|
| 196 |
+
- Puffin-Traj-1M: one million continuous trajectories covering look-up/look-down motion, clockwise and counterclockwise rotation, full 360° exploration, and compound motion.
|
| 197 |
+
|
| 198 |
+
The downloadable dataset and held-out Puffin-Cam-15M-Bench and Puffin-Traj-1M-Bench splits are available in the [Puffin-16M repository](https://huggingface.co/datasets/KangLiao/Puffin-16M).
|
| 199 |
+
|
| 200 |
+
## Limitations
|
| 201 |
+
|
| 202 |
+
Puffin-World currently focuses on static scenes and models physics primarily through gravity and latitude. Dynamic environments, longer temporal horizons, richer object interactions, and broader physical states remain important directions for future work. Generated content may also inherit biases or failure modes from its training data and underlying pretrained components.
|
| 203 |
|
| 204 |
+
## Citation
|
| 205 |
|
| 206 |
+
If Puffin-World, Puffin-16M, or the Puffin model series supports your research, please consider citing our work:
|
| 207 |
|
| 208 |
```bibtex
|
| 209 |
@article{liao2026puffinworld,
|
|
|
|
| 214 |
}
|
| 215 |
|
| 216 |
@article{liao2025puffin,
|
| 217 |
+
title = {Thinking with Camera: A Unified Multimodal Model for Camera-Centric Understanding and Generation},
|
| 218 |
+
author = {Liao, Kang and Wu, Size and Wu, Zhonghua and Jin, Linyi and Wang, Chao and Wang, Yikai and Wang, Fei and Li, Wei and Loy, Chen Change},
|
| 219 |
+
journal = {arXiv preprint arXiv:2510.08673},
|
| 220 |
+
year = {2025}
|
| 221 |
}
|
| 222 |
```
|
| 223 |
|
| 224 |
+
## License
|
| 225 |
|
| 226 |
+
This project is released under the [NTU S-Lab License 1.0](https://github.com/KangLiao929/Puffin/blob/main/LICENSE).
|