Free Geometry: Refining 3D Reconstruction from Longer Versions of Itself

Test-time self-evolution for feed-forward 3D reconstruction without 3D ground truth

Paper Code Model Weights License

Model Description

This repository provides a LoRA / PEFT adapter for Free-Geometry fine-tuning on top of a pretrained base model (VGGT and DepthAnything3).

This is not a full standalone model checkpoint. The repository only contains the adapter weights and configuration needed to apply the fine-tuned update to the original base model.

Use this adapter if you want the Free-Geo fine-tuned behavior while keeping the original base model separate.

What Is In This Repository?

This repository is expected to contain:

  • adapter_config.json
  • adapter_model.safetensors
  • README.md

These files define the PEFT adapter and tell PEFT how to attach the LoRA weights to the base model.

Base Model

This adapter was trained on top of:

Training Setup

This adapter corresponds to:

  • Backbone: DA3 or VGGT
  • Method: Free-Geo
  • Dataset: eth3d, 7scenes, hiroom, or scannetpp (all come from depth-anything/DA3-BENCH

Inference With PEFT

This repository contains PEFT/LoRA adapter weights. The adapters are not standalone models, so first load the DA3 base model, then attach one adapter from this repo.

Example using the DA3 + Free-Geo HiRoom adapter:

import torch
from peft import PeftModel
from depth_anything_3.api import DepthAnything3

base_model_id = "depth-anything/DA3-GIANT-1.1"
adapter_repo_id = "PeterDAI/Free-Geometry"
adapter_subfolder = "DA3+Free-Geo/hiroom"

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

model = DepthAnything3.from_pretrained(base_model_id).to(device)
model.model.backbone.pretrained = PeftModel.from_pretrained(
    model.model.backbone.pretrained,
    adapter_repo_id,
    subfolder=adapter_subfolder,
    is_trainable=False,
)
model.eval()

prediction = model.inference(
    ["image1.jpg", "image2.jpg"],
    export_dir="output/da3_free_geometry_hiroom",
    export_format="mini_npz",
)

print(prediction.depth.shape)

To use another adapter from this repo, keep adapter_repo_id the same and change only adapter_subfolder, for example:

adapter_subfolder = "DA3+Free-Geo/eth3d"

Repository Variants

Free Geometry is designed for test-time adaptation, so you can find different model variants for each datasets.

  • DA3-Free-Geo-eth3d
  • DA3-Free-Geo-7scenes
  • DA3-Free-Geo-hiroom
  • DA3-Free-Geo-scannetpp
  • VGGT-Free-Geo-eth3d
  • VGGT-Free-Geo-7scenes
  • VGGT-Free-Geo-hiroom
  • VGGT-Free-Geo-scannetpp

Citation

If you use this model, please cite the corresponding project or paper:

@misc{dai2026freegeometryrefining3d,
title={Free Geometry: Refining 3D Reconstruction from Longer Versions of Itself},
author={Yuhang Dai and Xingyi Yang},
year={2026},
eprint={2604.14048},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2604.14048},
}
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for PeterDAI/Free-Geometry

Adapter
(1)
this model

Dataset used to train PeterDAI/Free-Geometry

Paper for PeterDAI/Free-Geometry