camera-model

Project 3D world points to 2D image coordinates across multiple cameras.

3|Updated Dec 25, 2025
One-click install
npx skills add https://github.com/peabody124/reproducible_agent_environment --skill camera-model
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: camera-model
Source: https://github.com/peabody124/reproducible_agent_environment/tree/main/skills/camera-model
Command: npx skills add https://github.com/peabody124/reproducible_agent_environment --skill camera-model

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a unified framework for handling camera intrinsics, extrinsics, and coordinate transforms, enabling accurate projection of 3D points to 2D image coordinates across multiple cameras while consistently handling units (millimeters and meters).

Core Features & Use Cases

  • Core library for low-level camera operations in millimeters and a meter-safe adapter for high-level workflows.
  • Uniform camera_params dict to manage fx, fy, cx, cy, distortion, rotation, and translation for all cameras.
  • Supports OpenCV-style extrinsic conventions, rigorous unit handling, and common workflows such as projecting 3D joints to images, triangulation from multi-view keypoints, and distortion-aware projection.
  • Real-world scenario: calibrate a multi-camera rig, project 3D skeleton points to multiple views, and triangulate 3D positions from 2D observations.

Quick Start

Prepare a camera_params dictionary with mtx, rvec, tvec, and dist, then use the core functions (e.g., get_intrinsic, get_extrinsic, project_distortion) to project 3D points to 2D pixels. Use the meter-safe camera_adapter for seamless world-to-camera or camera-to-world transforms.

Frequently Asked Questions about camera-model

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I project 3D world points to 2D image coordinates across multiple cameras?

Project 3D world points to 2D image coordinates by preparing a camera_params dictionary with mtx, rvec, tvec, and dist, then using core functions like project_distortion to handle multi-camera projections with OpenCV-style conventions.

How does camera triangulation work from multi-view 2D keypoints?

Camera triangulation from multi-view keypoints uses a unified framework handling intrinsics, extrinsics, and coordinate transforms to accurately reconstruct 3D point positions from 2D observations across multiple cameras.

Why do my 3D projections have incorrect unit handling between millimeters and meters?

Incorrect unit handling during 3D projections occurs when millimeter and meter scales mix improperly; using a meter-safe camera_adapter ensures consistent world-to-camera and camera-to-world transforms across workflows.

Can I use OpenCV-style extrinsic conventions for multi-camera rig calibration?

Yes, OpenCV-style extrinsic conventions are supported through a uniform camera_params dict managing rotation and translation, enabling accurate calibration and projection across multi-camera rigs.

What is the best way to manage camera intrinsics, extrinsics, and distortion for projection?

Manage camera intrinsics, extrinsics, and distortion by structuring data into a uniform camera_params dictionary containing fx, fy, cx, cy, distortion, rotation, and translation for all cameras.

Does JAX support camera projection and triangulation workflows?

JAX is supported within camera projection and triangulation workflows, providing a core library for low-level camera operations in millimeters alongside a meter-safe adapter for high-level transforms.