Evaluates test-time self-supervised adaptation for feed-forward 3D reconstruction models. It probes the model's ability to refine camera pose estimation and 3D geometry reconstruction on unseen scenes by enforcing cross-view feature consistency without ground-truth labels. Use when the user wants to benchmark on ETH3D, ScanNet++, 7-Scenes, HiROOM, or asks about evaluating this task. Reports AUC@3, F1-score.
Installs into .claude/skills of the current project.
Are you the author of Free Geometry Eval?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-free-geometry-eval)
---
name: free-geometry-eval
description: Evaluates test-time self-supervised adaptation for feed-forward 3D reconstruction models. It probes the model's ability to refine camera pose estimation and 3D geometry reconstruction on unseen scenes by enforcing cross-view feature consistency without ground-truth labels. Use when the user wants to benchmark on ETH3D, ScanNet++, 7-Scenes, HiROOM, or asks about evaluating this task. Reports AUC@3, F1-score.
metadata:
skill_kind: dataset_eval
source_arxiv: 2604.14048
bibtex_key: [REDACTED]
confidence: high
---
# free-geometry-eval
> Free Geometry: Refining 3D Reconstruction from Longer Versions of Itself — Dai et al. (2026) (arXiv:2604.14048, 2026)
## What this evaluates
Evaluates test-time self-supervised adaptation for feed-forward 3D reconstruction models. It probes the model's ability to refine camera pose estimation and 3D geometry reconstruction on unseen scenes by enforcing cross-view feature consistency without ground-truth labels.
## Datasets
- **ETH3D** — total ?; splits: test (-1)
- **ScanNet++** — total ?; splits: test (-1)
- **7-Scenes** — total ?; splits: test (-1)
- **HiROOM** — total ?; splits: test (-1)
## Metrics
- `AUC@3` **(primary)** — range: [0, 1]
- Area under the cumulative error curve for rotation (degrees) and translation (cm) errors, computed up to a 3-degree/3-cm threshold. Higher is better.
- `F1-score` **(primary)** — range: [0, 1]
- F-score computed at standard distance thresholds between the predicted point cloud (aligned to ground truth via evo) and the ground truth point cloud. Higher is better.
## Input / output format
**Input**: N randomly sampled RGB views (typically 4, 8, 16, or 32) from a test scene sequence.
**Output**: Predicted camera poses and depth maps for each view; a reconstructed point cloud aligned to ground truth.
## Scoring recipe
```python
def compute_auc3(errors_deg, errors_cm, threshold=3.0):
cum_errors = np.sort(np.concatenate([errors_deg, errors_cm]))
auc = np.trapz(np.arange(len(cum_errors)+1)/len(cum_errors), cum_errors)
return min(auc / threshold, 1.0)
def compute_f1(pred_cloud, gt_cloud):
aligned = evo.align(pred_cloud, gt_cloud)
dists = cdist(aligned, gt_cloud)
tp = np.sum(dists.min(axis=1) < threshold)
fp = len(aligned) - tp
fn = len(gt_cloud) - tp
return 2*tp / (2*tp + fp + fn)
# Average over 3 fixed seeds (43, 44, 45) per scene
```
## Common pitfalls
- View sampling is random but fixed to 3 seeds (43, 44, 45) per scene; results are averaged over these seeds, not per-scene then averaged, which can bias variance.
- Point cloud alignment to ground truth using evo is mandatory before F1 computation; skipping alignment invalidates the metric.
- Test-time optimization uses only 5 epochs with dataset-specific learning rates, making direct comparison with standard zero-shot baselines sensitive to adaptation budget.
## Evidence (verbatim from paper)
> We report AUC at multiple thresholds (AUC@3, AUC@30) measuring the area under the cumulative error curve for rotation and translation errors. ... The resulting point cloud is aligned with ground truth by applying evo to assess the F-score at standard distance thresholds. Higher values indicate better performance for all metrics. All results are averaged over 3 random seeds.
## Citation
```bibtex
@misc{dai2026freegeometry,
title={Free Geometry: Refining 3D Reconstruction from Longer Versions of Itself},
author={Dai et al. (2026)},
year={2026},
note={arXiv:2604.14048}
}
```
- arXiv: 2604.14048