How it works
- 01
Export your calibrated grid point correspondences to JSON, including the held-out views.
- 02
Upload the file privately; inputs that do not meet the requirements are refused with no charge.
- 03
Receive the distortion maps, masks, parameters, residuals, and convention guide.
LensGrid package contents
Paired 32-bit floating point OpenEXR and NPY maps for undistort and redistort, validity masks, the fitted parameters, residuals on both the training and held-out views, and a short guide to the conventions used.
Supported scope
- Input is JSON point correspondences, not photographs.
- Held-out views are required.
- The Brown five-coefficient model only; results are valid only inside the region your measurements actually cover.
- No guarantee about optical truth, focus, or zoom, and no camera tracking.
Download synthetic result Download example input
LensGrid example snapshot, generated 2026-09-09: 13 files in the downloadable ZIP. Source: the linked synthetic input and its checked export. This demonstrates supported file processing; it is not customer or commercial evidence.
Your workspace
Start with a file. Try the synthetic example, or use your own supported input.
Step 01
Prepare your input
or upload your file
2 MiB maximum · image size, views, held-out view IDs, point correspondences
No input selected.
Input overview
Advanced: inspect or edit JSON
The preview uses the values shown here.
Submitting an input does not take a payment.
Step 02
Review your result
Result scope and limitations
Downloadable package$299
Checkout opens in a new tab. Keep this tab to access your result.
Checking checkout availability…
Delete this job’s input and downloadable result? This does not issue a refund. Required payment records may remain.
Private by default. Job access is kept in this tab. Unpaid jobs expire 24 hours after submission; paid downloads expire 7 days after payment. Delete the private job at any time. The package may contain source data; payment records can remain after deletion.
Before you begin
Can I send photos instead of points?
Not currently. Input is JSON point correspondences from a calibrated grid, not images.
Are the maps valid across the whole frame?
Only where your measurements cover. Outside the measured region the fit is not claimed to hold, which the validity masks show.
Why do you need held-out views?
Q: Were held-out views used to fit intrinsics or distortion? A: No. Held-out views were not used to fit intrinsics or distortion. Q: Are they fully independent? A: Not entirely — pose was fitted against the held-out points, so those views are not independent for pose evaluation.
Other workspaces
Each workspace takes one declared file format and returns one package. They do not share inputs and none of them reads another one’s result.