# Free Geometry Eval

> 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.

- Skill: `qhjqhj00/free-geometry-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/free-geometry-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/free-geometry-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/free-geometry-eval

---


# 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

