Skip to main content
Glama
kleinicke

3D Visualizer

align_3d_clouds

Align 3D point clouds by registering a moving cloud to a fixed target using auto, ICP, or landmark correspondences. Supports batch alignment strategies and status polling for completed jobs.

Instructions

Start a registration job, then poll action=status until job.state is completed/failed; submitted is not aligned. Reuses the viewer's Rust solvers. auto: level/up-axis yaw sweep then ICP; icp: refine an already close pair; correspondences: fit >=3 non-collinear paired world XYZ landmarks. source_index moves, target_index stays fixed. align_all/refine_all hold target fixed; strategies anchor (each to anchor), nested (grow aligned union), complex (grow with extra hypotheses). For auto/icp, against_all_others matches the moving cloud to the union of all other clouds. No scale/nonrigid estimation. up_axis describes the DATA, not the camera (default y); use z for Z-up scans. Clear temporary selections first. Undo restores transforms from the last accepted agent job. Inspection/capture remain available; geometry refresh waits for alignment. Partial align-all failures are reported per object.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes
detailNosummary
up_axisNoy
scene_idYes
strategyNoanchor
source_indexNo
target_indexNo
source_pointsNo
target_pointsNo
against_all_othersNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate not read-only, not destructive, but the description adds key behavioral details: job is asynchronous and must be polled, submitted is not aligned, up_axis describes data not camera, partial failures are reported per object. It doesn't mention authorization requirements, but the description covers essential behaviors beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but organized, with a concise opening on polling and then enumerating actions. It front-loads the core workflow (start, poll) and then details each option. Some redundancy ('hold target fixed' repeated), but overall efficient for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 params, 6 actions, async behavior), the description is thorough: covers all actions, strategies, parameter semantics, edge cases (up_axis, selection clearing), and error reporting. Output schema exists, so return values are presumably covered there. No critical gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain each parameter's meaning and it does: source_index moves, target_index stays fixed, up_axis meaning, against_all_others behavior, strategy differences thorugh examples. It adds substantial semantic context for all 10 parameters, especially strategies and alignment modes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts a registration job and polls for status, with distinct modes (auto, icp, correspondences) and batch strategies. However, it does not explicitly differentiate from siblings like compare_3d_clouds or transform_3d_object, though it is specific to alignment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use each action (e.g., icp for close pairs, correspondences for landmark fitting), and notes when alternatives like align_all vs refine_all apply. Also mentions to clear temporary selections first, which is practical usage context. It clearly implies when not to use (e.g., no scale/nonrigid estimation).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.