---
title: "GeoCalib"
description: "GeoCalib from ETH Zurich (CVG): camera-calibration and gravity-estimation; Verified."
modelId: "geocalib-prior"
pageSource: authored
---

GeoCalib estimates camera calibration and the gravity direction from a single image by combining geometric optimization with deep learning. In this catalog it is a verified camera-calibration prior consumed by higher-level pipelines (notably VIPE) through the shared geometry-prior contract.

<ModelPaperFigures modelId="geocalib-prior" locale="en" />

The recorded paper is [arXiv 2409.06704](https://arxiv.org/abs/2409.06704).

Project page: [cvg.ethz.ch/research/geocalib](https://www.cvg.ethz.ch/research/geocalib/). Code: [cvg/GeoCalib](https://github.com/cvg/GeoCalib).

Paper: [arXiv 2409.06704](https://arxiv.org/abs/2409.06704). Project: [cvg.ethz.ch/research/geocalib](https://www.cvg.ethz.ch/research/geocalib/). Code: [cvg/GeoCalib](https://github.com/cvg/GeoCalib) (**Apache-2.0**). Official release tarball: `geocalib-pinhole.tar` from the v1.0 GitHub release. Publisher: ETH Zurich (CVG). Aliases: `geocalib`, `cvg-geocalib`. Runner: **verified**. Per-run evidence stays outside the catalog.

<ModelCommandBuilder modelId="geocalib-prior" locale="en" />

## What it is for

`geocalib-prior` is the recorded reconstruction line. Start here to emit geometry from the documented views.

A neural network predicts geometric cues which a differentiable optimization layer turns into focal length and gravity estimates (per the upstream ECCV 2024 release). Registered at base_models/three_dimensions/general_3d/geocalib; apache-2.0. It is published by ETH Zurich (CVG).

Catalog tasks include camera-calibration, gravity-estimation, and geometry-prior. Catalog aliases include `geocalib` and `cvg-geocalib`.

## Runtime contract

Optional `input_path`, `camera_model`, `execute`, `max_points`, and `focal_length`; artifacts `geocalib-prior.json`.

CLI task profiles: `default`. WorldFoundry binds `GeoCalibPriorPipeline`.

Family status: **Verified**.

It is integrated as an independent geometry prior under worldfoundry/base_models and exposed through the shared geometry-prior pipeline/operator contract. Higher-level pipelines (e.g. ViPE) import it from this canonical owner instead of keeping private copies. Runner parity is verified through the shared contract.

Integrated as an independent camera-calibration prior at worldfoundry/base_models/three_dimensions/general_3d/geocalib.

## Running in WorldFoundry

The catalog launch is `worldfoundry-eval run geocalib-prior --pipeline.task-profile default`. The command builder above switches `--pipeline.task-profile` among recorded tasks and still emits `worldfoundry-eval run`.

It runs in the unified environment `worldfoundry-unified-cu128` (Python 3.11, CUDA 12.8).

No public checkpoint id is recorded on this card; follow the usage notes for staging. Prepare the environment and check local assets with `bash scripts/inference/prepare_model_infer.sh geocalib-prior`. Add `--download` to fetch missing public checkpoints.

Status: **Verified**.

<ModelRelatedRecipes modelId="geocalib-prior" locale="en" />
