SurGe: Improved Surface Geometry in Point Maps

SurGe is a feedforward 3D reconstruction method that predicts point maps and estimates global 3D geometry. It addresses inaccuracies in local surface geometry through a point gradient matching loss and a Neighborhood Attention Decoder (NAD) that progressively upsamples features and uses Neighborhood Attention for local feature mixing.

[Paper] [Project Page] [GitHub] [Demo]

Usage

SurGe expects image tensors in BCHW format with unnormalized RGB values in [0, 1]. Do not apply ImageNet normalization or similar preprocessing.

import torch
from surge import SurGe

# Load model
model = SurGe.from_pretrained("karimknaebel/surge-large").eval().cuda()

# Prepare input
image = torch.rand(1, 3, 518, 518, device="cuda")

# Inference
result = model.infer(image, num_tokens="max")
points = result["points"]          # (B, H, W, 3)
depth = result["depth"]            # (B, H, W)
intrinsics = result["intrinsics"]  # (B, 3, 3)

num_tokens controls the encoder token budget. Use "min", "max", or an integer value.

Citation

If you use SurGe in your research, please cite:

@article{knaebel2026surge,
    title   = {{SurGe}: Improved Surface Geometry in Point Maps},
    author  = {Knaebel, Karim and Martin Garcia, Gonzalo and Schmidt, Christian and Fradlin, Ilya and Nunes, Lucas and de Geus, Daan and Leibe, Bastian},
    year    = {2026},
    journal = {arXiv preprint arXiv:2605.31577},
}
Downloads last month
366
Safetensors
Model size
0.4B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for karimknaebel/surge-large

Finetuned
(37)
this model

Space using karimknaebel/surge-large 1

Collection including karimknaebel/surge-large

Paper for karimknaebel/surge-large