OmniRay: Camera-Agnostic Monocular 3D Reconstruction with Composite Ray Fields

Namitha Guruprasad1,  Abhay Yadav1,  Cheng Peng2,  Rama Chellappa1,†,  Anand Bhattad1,†

1Johns Hopkins University, USA,  2University of Virginia, USA
†Equal advising

Code and models: TBD

OmniRay reconstructs 3D geometry from a single image across pinhole, fisheye, and panoramic cameras
Fig. 1 — OmniRay reconstructs 3D geometry from a single image across diverse camera geometries without requiring camera intrinsics or camera-type input. Each column shows an input image and its predicted camera-frame pointcloud, recovered up to scale.

Abstract

Monocular models recover 3D geometry from a single image in one pass, but most assume a pinhole camera and produce distorted geometry on the wide-angle imagery produced by fisheye and panoramic lenses. Camera-aware models remove this assumption by predicting a per-pixel ray field. However, they represent different camera geometries using a single fixed basis to capture both the overall camera projection and its finer variations. We argue that camera geometry has a hierarchy of complexity and that the ray representation should follow it. We present OmniRay, a feed-forward model whose ray module is composed of three components: a monotone radial base that captures radially symmetric structure, a spherical-harmonic residual for smooth deviations from it, and a free-form residual for remaining local variation. These components are composed as successive rotations on the sphere, allowing the representation to accommodate diverse camera geometries. Given a single image, OmniRay predicts a ray direction and an up-to-scale radial distance for every pixel, from which a 3D pointcloud is recovered without needing camera information at inference time.

Extensive experiments across different camera configurations demonstrate that OmniRay establishes a new state-of-the-art in camera-agnostic monocular 3D reconstruction.

Overview

Given a single image from an arbitrary central camera — with no intrinsics, distortion parameters, or camera-type label — OmniRay predicts for every pixel u a unit ray direction d(u) and a radial distance ρ(u) > 0. A DINOv2 ViT-L/14 encoder produces features that drive two branches: the Ray Module composes d from a monotone radial base, a spherical-harmonic residual, and a free-form residual, each applied as a rotation on the sphere so every component refines the ray produced by the one before it; the Distance Module predicts ρ. Their combination gives the 3D point in the camera frame, P(u) = ρ(u) d(u), recovered up to a single global scale.

OmniRay architecture: DINOv2 encoder feeding a Ray Module and a Distance Module
Fig. 2 — OmniRay Overview. Given a single image, a DINOv2 ViT-L/14 encoder produces global and dense features that drive two branches. The Ray Module progressively builds a camera-agnostic ray field from a monotone radial base, a spherical-harmonic residual, and a free-form residual. The Distance Module predicts a positive radial distance for each pixel. Combining the final ray d and distance ρ yields the local pointmap P = ρ d, recovering 3D geometry up to scale without camera intrinsics or a camera-type label.

Why Compose Ray Representations?

Why combine the radial construction with residual corrections
Fig. 3 — Why combine the radial construction with the residual corrections? (a) The radial representation gives the same incidence angle to pixels that lie at the same radius in the base coordinates. (b) In the centered 2:1 equirectangular projection, point B is closer to the center of the image than point A, yet has a lower incidence angle. A monotonic radial function cannot accommodate such ordering under fixed coordinate transformation and orientation. (c) The spherical-harmonic and free-form residuals improve upon the base direction via iterative correction on the unit sphere.

Results

Qualitative reconstructions on unseen datasets PanoCity and CO3Dv2
Fig. 4 — Qualitative reconstructions on unseen datasets. We compare OmniRay with Depth Anything 3 and UniK3D on PanoCity and CO3Dv2 across five camera configurations. Small visualizations show viewing-ray fields; larger renderings show the corresponding pointclouds, with ground truth in the rightmost column. OmniRay better preserves scene structure in the panoramic and catadioptric examples without camera intrinsics or camera-type input.

On seen camera types, OmniRay achieves a mean ray error of 0.14° and relative Chamfer distance of 0.0179, compared with 6.34° and 0.0760 for UniK3D and 33.03° and 0.1999 for Depth Anything 3. On the Nayar catadioptric camera — held out entirely from training — all baselines exceed 75° while OmniRay achieves 1.12° and 0.0131 CD; on the held-out GoPro fisheye, OmniRay achieves 5.53° versus 6.34° for UniK3D. On the unseen PanoCity dataset, OmniRay achieves 1.35° ray error versus 21.22° and 50.53° for UniK3D and DA3. On CO3Dv2, OmniRay's 2.97° ray error remains within a degree of both baselines.

Fig. 4 compares ray fields and camera-frame pointclouds on unseen PanoCity and CO3Dv2 images, with each ray field colored by its angular error. On the panorama, OmniRay keeps the road continuous while UniK3D breaks it across the image and DA3 fails to recover the ground structure. On the fisheye and GoPro rows, OmniRay keeps the road, pavement and lane markings straight where UniK3D bends them and DA3 also distorts the surrounding buildings. On the held-out catadioptric camera both baselines produce degraded reconstructions. On the CO3Dv2 pinhole example, OmniRay remains comparable to the baselines, demonstrating that the additional flexibility for wide-angle cameras does not come at the expense of pinhole imagery. On in-the-wild images, OmniRay also recovers coherent 3D structure, as shown in Fig. 6.

Representation #Params Angular error (°)↓
Fisheye Equirectangular Catadioptric
Pinhole65.73148.08050.434
Double sphere80.02122.93241.876
Radial (K=16)240.00222.8020.104
Radial (K=32)400.00222.8010.023
SH (L=7)1950.2760.6410.295
Radial₁₆ + SH₇ residual (ours)2160.0750.2170.174
Free field76.8k0.0050.0130.015
Table 1 — Oracle representation fitting. Mean angular error in degrees after fitting each representation directly to ground-truth rays; lower is better. #Params denotes parameters per camera. Best results among compact representations are bold. The free field is shown separately as a high-capacity reference.
Method Seen cameras Held-out cameras Held-out domains
Aggregate Catadioptric† GoPro† PanoCity† CO3Dv2†
Ang. (°)↓CD↓ Ang. (°)↓CD↓ Ang. (°)↓CD↓ Ang. (°)↓CD↓ Ang. (°)↓CD↓
GeoCalib30.997–119.662–14.126–47.132–3.713–
AnyCalib28.655–107.129–10.031–42.335–2.711–
DA333.0280.1999121.5661.041216.6370.109750.5330.36772.0410.0288
UniK3D6.3360.076075.7020.59486.3420.045421.2200.21202.6760.0277
OmniRay w/o AUG1.3850.059230.8670.34407.9650.06416.3520.09842.8250.0330
OmniRay + RG0.3560.02051.1180.01135.1800.03751.5920.02772.9350.0411
OmniRay0.1400.01791.1200.01315.5330.03921.3500.02402.9670.0380

Table 2 — Main benchmark. Results on seen cameras, held-out cameras, and held-out domains. Ang. denotes mean ray error in degrees; CD denotes median relative Chamfer distance, normalized by each scene's mean point norm. Metrics are macro-averaged over test images, and all methods use per-image median scale alignment. Lower is better; best results are bold. † denotes exclusion from our training data; a dash indicates that the method does not predict scene geometry. Full per-camera and per-dataset results and additional metrics are provided in Tables 4–6 below.

Camera Method Ray Radial Dist. Pointcloud Quality
Ang. (°)↓ AbsRel↓δ₁↑ CD↓Acc↓Comp↓F@10cm↑
pinholeGeoCalib2.196––––––
AnyCalib1.043––––––
DA36.6040.15080.8620.07010.08620.05400.300
UniK3D3.6190.13710.8710.10580.18020.03150.356
OmniRay0.1550.07690.9250.02420.03550.01300.533
fisheyeGeoCalib30.001––––––
AnyCalib22.134––––––
DA328.7270.32250.5620.18880.11110.26650.066
UniK3D7.0550.21550.7680.05430.05690.05170.198
OmniRay0.1540.09060.9240.01590.01970.01210.531
panoramicGeoCalib60.795––––––
AnyCalib62.788––––––
DA363.7520.33520.5470.34080.19560.48590.009
UniK3D8.3360.21540.7740.06780.07230.06330.174
OmniRay0.1100.05930.9490.01370.01630.01110.585
catadioptric†GeoCalib119.662––––––
AnyCalib107.129––––––
DA3121.5660.16170.7711.04120.72321.35920.000
UniK3D75.7020.25230.6560.59480.50470.68490.004
OmniRay1.1200.03960.9690.01310.01300.01310.633
GoPro†GeoCalib14.126––––––
AnyCalib10.031––––––
DA316.6370.16570.8400.10970.08110.13830.079
UniK3D6.3420.16650.8570.04540.04490.04580.235
OmniRay5.5330.08420.9320.03920.03540.04290.215
Table 4 — Per-camera results, all metrics. Macro-averaged over test images. † geometry withheld from training. Baselines are median-scale-aligned per image. Acc, Comp and CD are medians of the relative distance, divided by each scene's mean point norm. δ₁ is δ < 1.25. A dash means the method predicts no scene geometry.
Scenes Method Ray Radial Dist. Pointcloud Quality
Ang. (°)↓ AbsRel↓δ₁↑ CD↓Acc↓Comp↓F@10cm↑
2D3DSGeoCalib40.713––––––
AnyCalib37.520––––––
DA343.7750.21240.7470.36140.17440.54830.224
UniK3D19.4320.12720.8640.14870.09810.19940.411
OmniRay1.6190.05680.9580.02360.02260.02460.767
360LocGeoCalib48.223––––––
AnyCalib42.021––––––
DA348.0640.28720.6290.32120.21210.43030.048
UniK3D19.9790.27090.6760.16010.14550.17470.154
OmniRay1.2740.07130.9470.01600.01600.01600.590
PanoCity†GeoCalib47.132––––––
AnyCalib42.335––––––
DA350.5330.18190.7740.36770.33180.40370.001
UniK3D21.2200.19400.8150.21200.27190.15220.015
OmniRay1.3500.08230.9140.02400.03330.01470.141
CO3Dv2†GeoCalib3.713––––––
AnyCalib2.711––––––
DA32.0410.05730.9500.02880.01990.03770.282
UniK3D2.6760.04780.9630.02770.02330.03220.293
OmniRay2.9670.08890.9140.03800.02910.04690.173
Table 5 — Per-dataset results, all metrics. Macro-averaged over test images. † unseen in training. Conventions as in Table 4. CO3Dv2 contains perspective and fisheye imagery only, so its zero-shot axis is the domain rather than the camera, and its object-masked COLMAP ground truth covers roughly 12% of pixels.
Split Method Ray Radial Dist. Pointcloud Quality
Ang. (°)↓ AbsRel↓δ₁↑ CD↓Acc↓Comp↓F@10cm↑
allGeoCalib45.356––––––
AnyCalib40.625––––––
DA347.4570.22720.7160.35010.23940.46080.091
UniK3D20.2110.19740.7850.17360.17180.17540.193
OmniRay1.4140.07010.9400.02120.02400.01840.499
seenGeoCalib30.997––––––
AnyCalib28.655––––––
DA333.0280.26950.6570.19990.13100.26880.125
UniK3D6.3360.18930.8040.07600.10310.04880.242
OmniRay0.1400.07560.9330.01790.02380.01200.550
held-out†GeoCalib66.894––––––
AnyCalib58.580––––––
DA369.1020.16370.8060.57540.40210.74880.040
UniK3D41.0220.20940.7560.32010.27480.36540.120
OmniRay3.3260.06190.9510.02610.02420.02800.424
Table 6 — Aggregate results over the 4500-sample benchmark. Conventions as in Table 4. Seen cameras are perspective, fisheye and panoramic; the held-out geometries are the catadioptric mirror and the GoPro fisheye.
Ray representation Training Seen cameras Held-out config†
Panorama Fisheye Pinhole Catadioptric GoPro
Radial base–21.8251.7610.7886.0395.377
Spherical base–5.0881.5400.79013.3275.962
Free-form field–0.7831.5080.62111.3355.191
Radial + SH residualJoint0.7961.7840.5811.8796.566
Radial + SH residualStaged0.6101.5450.6751.6803.393
Radial + free-formJoint1.0181.3940.4033.0383.667
Radial + free-formStaged1.1111.6050.3861.7974.248
SH + free-formJoint1.1141.7471.2502.5683.739
SH + free-formStaged1.0262.5670.5532.3165.142
Radial + SH + free-formJoint0.7281.9630.6882.5253.636
Radial + SH + free-formJoint, γ₀=γ₁=00.4511.8640.7051.8383.604
Radial + SH + free-formStaged, VGGT init0.4861.6300.3302.5765.096
Radial + SH + free-formStaged0.3991.3220.4181.5383.462

Table 3 — Ray representation ablation. Mean angular ray error in degrees (lower is better) at native resolution. Seen camera families are evaluated on held-out configurations; † denotes configurations excluded from training. Only the ray module is trained and evaluated. Best results are bold.

Ablation: random-lens augmentation and progressive residual composition
Fig. 5 — Ablation. (a) Held-out catadioptric camera: predicted ray field and pointcloud for UniK3D, OmniRay trained without random-lens augmentation, and the full model, against the ground truth. (b) Panoramic image: the radial base alone covers only part of the sphere (orange) and leaves the reconstruction torn, while the spherical-harmonic and free-form residuals complete the field (blue) and close the geometry.

The w/o AUG row of Table 2 isolates the random-lens sampling. Without it the seen cameras remain strong at 1.39°, but the held-out catadioptric and GoPro errors rise to 30.87° and 7.97°; restoring it recovers 1.12° and 5.53° and improves the seen cameras to 0.14°. Fig. 5a shows the same effect on a catadioptric example, where the unaugmented model exhibits larger ray-field and geometric errors. These results indicate that random-lens sampling is important for extending the composite representation beyond the camera configurations encountered during training. Adding ray guidance to each DPT scale (+ RG) leaves the metrics unchanged to within run-to-run variation; the injection is zero-initialized and could use the prompt if it helped, so we omit it.

Table 3 isolates and analyses different ray representations. The radial base performs well on fisheye and pinhole cameras (1.761° and 0.788°) but struggles on panoramas (21.825°), where a monotone radial profile is insufficient. The spherical base reduces panoramic error to 5.088°, while the free-form field performs best among single representations on panoramas, fisheye, and pinhole, but reaches 11.335° on the held-out catadioptric configuration. These results motivate combining a structured radial base with more flexible residuals.

Adding an SH residual to the radial base improves panoramic and held-out accuracy; staged training achieves 0.610° and 1.680°, respectively, and the best GoPro result (3.393°). Adding the free-form residual further improves the panorama (0.399°), fisheye (1.322°), and catadioptric results (1.538°) in the full staged model, which also outperforms both jointly trained three-term variants across all five configurations. On pinhole cameras, the full model remains competitive at 0.418°, ranking fourth behind the VGGT-initialized variant (0.330°) and the two radial-plus-free-form variants. While the additional spherical residual offers little benefit for this narrow-field geometry, it supports greater flexibility across wide-field cameras. Overall, these results support the staged radial → SH → free-form composition as a balance between geometric structure and representational flexibility.

In-the-wild reconstructions on internet photographs
Fig. 6 — In-the-wild reconstructions. Qualitative reconstructions on photographs collected from the internet, shown in order as a panorama, a fisheye image, and a pinhole image. Although these camera families are represented during training, the images come from different camera instances with unknown intrinsics and lens parameters. OmniRay requires no camera metadata at inference.
Random-lens augmentation sampling examples
Fig. 7 — Random-lens augmentation. Images rendered from a single panorama under cameras drawn from the training sampling distribution. A camera is a viewing direction, a monotone radial profile and an imaged sensor region, so one family spans narrow perspective crops, wide-angle and fisheye views, off-center and anisotropic sensors, and annular domains. The projection varies continuously from sample to sample, so no fixed map from image position to ray direction fits more than one of them. Draws falling close to either held-out geometry are rejected and never enter training.
Qualitative reconstructions on the seen 2D3DS dataset
Fig. 8 — Qualitative reconstructions on seen dataset: 2D3DS
Qualitative reconstructions on the seen 360Loc dataset
Fig. 9 — Qualitative reconstructions on seen dataset: 360Loc

Conclusion

We began with two questions: how the pixel-to-ray mapping can remain both compact and expressive, and whether a single representation is necessary for every camera geometry? OmniRay answers both by composing the ray field rather than mapping every camera into one basis. A monotone radial base carries the structure conventional lenses already possess, a spherical-harmonic residual supplies the smooth deviations a radial profile cannot express, and a free-form residual accounts for the remaining local variation, each applied as a rotation on the sphere so that the representation adapts to the camera without camera-type input or model selection. A shared distance module scales the predicted rays into a point cloud in a single forward pass, and sampling lenses continuously during training keeps the composition accurate on geometries it has never seen.

The oracle analysis establishes the ceilings that motivate this design, and the trained model follows them: a mean ray error of 0.14° on the camera families seen in training, and 1.12° on a catadioptric geometry withheld from it, where every baseline exceeds 75°. The reconstruction is recovered only up to a single global scale, so all point clouds are compared after a per-image alignment. Since the representation is defined per image and per pixel, extending OmniRay to N-view reconstruction is a natural next step.

Acknowledgements

This research is based upon work supported by the Office of the Director of National Intelligence (ODNI), Intelligence Advanced Research Projects Activity (IARPA), via IARPA R&D Contract No. 140D0423C0076. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the ODNI, IARPA, or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation thereon.