File size: 3,281 Bytes
fd2b2f7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | ---
license: cc-by-nc-4.0
pipeline_tag: image-to-3d
base_model: depth-anything/DA3-GIANT-1.1
tags:
- arrow
- 3d-reconstruction
- point-tracking
---
<div align="center">
<h1>ARROW</h1>
<h3>Arbitrary Reconstruction and Tracking of 4D Observations in the Wild</h3>
<p>
<a href="https://arxiv.org/abs/2610.01314"><img src="https://img.shields.io/badge/arXiv-2610.01314-b31b1b?style=flat&logo=arxiv" alt="arXiv: 2610.01314" /></a>
<a href="https://vision.rwth-aachen.de/arrow"><img src="https://img.shields.io/badge/Project-Page-e77732?style=flat" alt="Project page" /></a>
<a href="https://github.com/ifradlin/arrow"><img src="https://img.shields.io/badge/GitHub-Code-181717?style=flat&logo=github" alt="GitHub code" /></a>
</p>
<p align="center">
<a href="https://ifradlin.github.io">Ilya Fradlin</a>
<a href="https://github.com/Schmiddo">Christian Schmidt</a>
<a href="https://github.com/jenspiek">Jens Piekenbrinck</a><br />
<a href="https://karimknaebel.com">Karim Knaebel</a>
<a href="https://gonzalomartingarcia.com/">Gonzalo Martin Garcia</a>
<a href="https://scholar.google.com/citations?user=ZcULDB0AAAAJ">Bastian Leibe</a>
</p>
<p><a href="https://www.rwth-aachen.de/">RWTH Aachen University</a></p>
</div>
## Overview
**ARROW** is a feed-forward model that unifies **3D reconstruction and 3D point tracking from arbitrary image sets**. Its point-query decoder supports observations from different viewpoints and capture times, enabling reconstruction and tracking from moving-camera videos, multiple video streams, and unordered photo collections.
## Usage
The snippet below briefly illustrates point queries and task helpers. For a quick start and more details, see [GitHub](https://github.com/ifradlin/arrow).
```python
import torch
from arrow import ARROW, Queries
from arrow.queries import pixel_grid
from arrow.tasks.reconstruction import reconstruction_queries
from arrow.tasks.tracking import tracking_queries
model = ARROW.from_pretrained("ifradlin/arrow", device="cuda")
images = torch.rand(1, 3, 3, 378, 504, device="cuda") # RGB in [0, 1]
H, W = images.shape[-2:]
with torch.inference_mode():
# Option 1: point queries.
queries = Queries(pixel_grid(H, W, stride=4),
source_frame=0, target_frame=1, reference_frame=0)
predictions = model(images, queries)
# Option 2: task helpers, sharing one encoding.
encoded = model.encode(images)
reconstruction = model.decode(encoded, reconstruction_queries(images))
tracks = model.decode(encoded, tracking_queries(images, stride=16))
```
Weights are released under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) for non-commercial use.
## Citation
If you find our repository useful, please consider giving it a star ⭐ and citing our paper in your work:
```bibtex
@article{fradlin2026arrow,
title = {{ARROW}: Arbitrary Reconstruction and Tracking of 4D Observations in the Wild},
author = {Fradlin, Ilya and Schmidt, Christian and Piekenbrinck, Jens and Knaebel, Karim and Martin Garcia, Gonzalo and Leibe, Bastian},
year = 2026,
journal = {arXiv preprint arXiv:2610.01314},
}
```
|