#Tools
The Tools tab hosts compute-heavy actions that operate on the full joint space.
#Reachability sampling
Generates a workspace point cloud by sampling random joint configurations and recording the world position of a chosen "tip" link.
#Controls
| Control | Effect |
|---|---|
| Tip link | The link whose world position is sampled. Defaults to the leaf link of the longest kinematic chain. |
| Samples | Number of poses to sample (typical range: 1k – 100k). |
| Respect limits | If on, samples obey <limit> bounds. If off, uses [-π, π] (revolute/continuous) and [-1, 1] (prismatic). |
| Sample | Run the sampler. |
| Clear | Remove the point cloud from the scene. |
#Behavior
- The sampling runs in chunks via
requestIdleCallbackso the UI stays responsive. The current pose is restored after sampling. - Points are rendered as a
THREE.Pointswith a tiny disc material. - Mimic joints follow their master automatically.
#Use cases
- Compare reach envelopes between robot variants.
- Visualize the impact of changing a joint limit.
- Find where a fixture must be placed for the robot to reach it.
#Never-colliding pair detection
Monte-Carlo samples joint configurations to find link pairs that never
collide in any sampled pose. Output is the candidate set of
<disable_collisions> entries to drop into an SRDF.
#Controls
| Control | Effect |
|---|---|
| Samples | Number of poses to evaluate. More samples = stronger evidence of "never collides". |
| Run | Start sampling. Disabled until collision geometry is loaded. |
| Write SRDF | Merge the detected pairs into the workspace SRDF (or a new one). |
#Output
- A list of link pairs that did not collide in any sampled pose, presented compactly (first 200 with an overflow counter).
- A summary line:
N never-colliding pairs found from M samples. - A Write SRDF button that triggers a download (web) or an in-place
write (VS Code) with merged
<disable_collisions>entries.
#How it samples
The sampler uses the loaded collision meshes (preferring primitives; STL
where needed) and checks pairwise BVH overlap (via three-mesh-bvh).
Pairs that are directly connected by a joint are excluded — they share a
collision boundary by construction.
#Limitations
- "Never collides in N samples" is statistical evidence, not proof. Increase samples for higher confidence.
- Only meshes / primitives declared as
<collision>are tested. Self- collision capsules without collision geometry are skipped.