A pick-and-place cell, validated before it is bought
Four sealed criteria, two refusals, a hundred randomised episodes in a real physics engine. 31.4 picks/min against a bar of 25.
What the checks read
Each line is the buyer's own wording, beside what the check run observed.
Every pose in the sealed pick window and every case cell lies inside the dexterous envelope with at least 40 mm of margin, and the cell has no static interpenetration at the home pose.
865/865 sampled poses inside the joint-limited envelope, worst deficit 0.0 mm, no interpenetration
At least 95 of 100 randomised episodes place all four sleeves in their assigned case cells within 12 mm and 8 degrees.
100/100 episodes packed all four sleeves; worst placement error 0.021 mm, 0 seal failures
Across the whole campaign no arm link comes within 8 mm of any fixture, and the mean cycle time stays at or under 2.40 s/pick.
0 violations, closest approach 23.62 mm; mean cycle 1.913 s (31.37 picks/min)
The delivered harness re-runs from the sealed seeds and the figures the report states match the platform's own run exactly.
9/9 stated figures reproduced exactly on an independent re-execution
Project · one contract, four pieces
A co-packing cell asked for 25 picks a minute. The layout as proposed could not reach a third of its own belt.
The commission
Before committing capital to a cell, the buyer needs to know whether the proposed layout hits rate across the pose scatter their vision system actually produces — and whether the arm can reach every sleeve without striking anything.
simulator-ground-truth acceptance
The machine checked the physics itself, not the pixels.
Every engineering verdict on this page is a quantity the solver computed — a contact distance, a joint angle, a settle time — asserted against a sealed bar. No judge model scored it and no human eye passed it.
| Criterion | Bar | Measured | Acceptance | |
|---|---|---|---|---|
| Dexterous envelope | every sealed pick pose reachable, 40 mm margin | 865/865 poses, 0 mm deficit | sealed_sandbox_rerun | pass |
| Grasp and place | >= 95/100 episodes within 12 mm and 8 deg | 100/100 episodes, worst error 0.021 mm | sealed_sandbox_rerun | pass |
| Clearance and rate | 0 violations below 8 mm, mean cycle <= 2.40 s | 0 violations, min 23.62 mm, 1.913 s/pick | sealed_sandbox_rerun | pass |
| Report reproduces | stated figures == platform's own re-run | 9/9 figures reproduce exactly | experiment_reproduction | pass |
One hundred randomised episodes
400/400 sleeves placed, 0 vacuum seal failures. Mean cycle 1.913 s, p95 2.402 s. Seeds 20260804..20260903, MuJoCo 3.11.0 on Darwin-arm64, 13.13 s wall clock. Model SHA-256 78d09d4bf7d8e2eb.
Two refusals, and two defects in our own work
Revision A — column on the belt datum, as proposed
refused 403/865 poses unreachable
The far half of the sealed pick window sits outside the dexterous envelope — worst deficit 253.8 mm at a reach of 0.914 m against a usable 0.660 m.
work/capstan/acceptance/leaf-1-layout-revA.jsonRevision B — column relocated down-belt, servos as quoted
refused 4.298 s/pick — 14.0 picks/min
Grasp passes 100/100 immediately. Throughput does not: the cell runs at 56% of the rate the line quote is built on.
work/capstan/acceptance/campaign-revB.jsonRevision B, retuned — servos re-solved for critical damping
refused 2.997 s/pick — 20.0 picks/min
Retuning recovers 1.30 s/pick and is still not enough. The remaining cost is geometric, not electrical.
work/capstan/acceptance/campaign-revB-tuned.jsonRevision C, first stand — case moved beside the belt
refused 59.0 mm inside the dead zone
The inner case cells landed at r = 0.212 m, closer than the elbow can fold against its 2.53 rad stop — 2 of 865 sampled poses unreachable, and both of them a cell the machine has to reach every cycle. Caught by the envelope probe in under a second instead of by a wasted campaign.
work/capstan/acceptance/leaf-1-layout-revC0.jsonRevision C — case cleared of the dead zone, servos tuned
passed 1.913 s/pick — 31.4 picks/min
All four criteria hold. The arm, the servo hardware and the gripper are the ones already quoted — what moved is where the column and the case stand, and how the loops are tuned.
work/capstan/acceptance/campaign-revC-tuned.json
Two causes, separated by measurement
An arc the machine cannot shortcut
216.8 deg
With the case parked opposite the pick window, every transfer asked the shoulder for 216.8 degrees. The shoulder stops at +/-150, so it cannot take the short way round — it travels the long arc, twice per pick.
Fix: case moved alongside the downstream end of the belt
Servos quoted overdamped
zeta 1.90 - 4.30
Every axis was delivered between zeta 1.90 and 4.30. Each move ended in a long exponential crawl into tolerance, costing about 2 s per pick in settle that does no work.
Fix: each axis re-solved for critical damping against the model's own mass matrix, at twice the quoted stiffness, torque demand still inside the published limits
Every axis re-solved against the model's own mass matrix
| Axis | Inertia | Damping ratio | Stiffness | Velocity gain |
|---|---|---|---|---|
| shoulder | 0.675226 | 1.897 → 1.000 | 2600 → 5200 | 150 → 109.5 |
| elbow | 0.155585 | 3.077 → 1.000 | 1500 → 3000 | 88 → 37.2 |
| lift | 1.628165 | 2.228 → 1.000 | 5200 → 10400 | 320 → 170.3 |
| wrist | 0.012172 | 4.303 → 1.000 | 120 → 240 | 9 → 2 |
What the probes caught in our own delivery
IK that ignored joint travel
The solver returned shoulder angles outside the +/-150 deg stop. The servo saturated against its limit at 292 N-m and parked the tool 42.9 mm from the commanded point while reporting success.
Fix: every wrapped solution enumerated, then filtered to the ones the machine can hold
A probe checking the wrong annulus
The envelope probe tested the geometric reach of 0.100 m and passed a layout the physics then refused 100/100. The elbow's stop makes the true inner radius 0.231 m.
Fix: the probe now computes the joint-limited envelope and tests real IK feasibility across arrival yaws
The bytes, and what the probes made of them
The evidence video is a direct render of the simulated trajectories — frames captured from the same stepped run that produced the numbers. No generative model touched it, so the rendering cannot disagree with the physics it depicts.
The media probes below measure the delivered video bytes only. They are evidence about the artifact, never about the engineering, and nothing on this page rests on them.
Frames are captured from the same stepped simulation that produces the numbers, through the cycle program’s per-step hook — the video is the run, not a re-enactment of it. Master: 712 frames, 1280×720, 23.733 s, 1,787,813 bytes, SHA-256 34d493cad1faa15c.
| Probe | Result | |
|---|---|---|
| ffprobe | h264 1280x720, 23.733 s | pass |
| black frames | 0/5 sampled frames black | pass |
| frame duplication | no duplication; low motion only | pass |
| temporal flaws | 0 deterministic flaws | pass |
| audio track | no audio track — a rigid-body validation render has nothing to sound; the contract declares no audio deliverable, so the probe's failure is recorded rather than filtered | fail |
simulator computes, renderer only depicts
Generated video may render physics a simulator computed. It may never be the source of the physics.
The probes on this page measure bytes. Asked to judge physics they are not merely weak, they are silent — a sister lane measured them passing every content-bearing check on clips a person refused on sight. That is why the engineering verdicts here come from the solver and the video is only a picture of them.
A model asked to generate the physics refused
nvidia/Cosmos3-Edge · 4B · 3 clips
every content-bearing probe passed on 3/3 clips — codec, black frames, duplication, temporal scan.
- camera instruction ignored — 3/3
- commissioned robot absent or incoherent — 3/3
- object identity or scene unstable — 3/3
- unsupported floating objects — 2/3
- interpenetration at contact — 2/3
the audio-track probe failed on all three, a configuration fact rather than a model defect: generation ran with sound disabled, and the lane recorded the failure rather than filtering it.
An engine asked to compute it holds
isaacsim 6.0.1.0 · contact to 22 nm
timestep 0.01667 s (59.99 Hz) and gravity 9.81 m/s², both recovered from the trajectory alone, constant to 5 decimal places.
- 2.24e-08 m of rest jitter over the final 40 frames
- resting z 0.09999828 m against a 0.1 m cube half-edge — on the plane, not through it
a quantity you can hold a contract to.
The sister lane reached the same rule from its own side: Best composition with the MuJoCo pick-and-place flagship is Cosmos as appearance/domain randomizer conditioned on simulator-true geometry, not as the physics generator.
Both runs were measured on an A100-SXM4-40GB, not the H100 the lane asked for. The receipt says so on every figure, and none of these numbers should be reported as H100 numbers.
docs/qa/artifacts/20260804-colab-gpu-engines/
One contract, four priced sub-contracts
Every price is the estimator’s own output over the pinned pricing policy. The acceptance method on each line is derived from that leaf’s check family by the platform’s disclosure — the contract cannot advertise one method while a different machine judges it.
cell layout + reach envelope
£905.00sealed_sandbox_rerun — We run the delivered work ourselves in a locked-down box and watch how it finishesgrasp controller + trajectory
£905.00sealed_sandbox_rerun — We run the delivered work ourselves in a locked-down box and watch how it finishesrandomised validation suite
£905.00sealed_sandbox_rerun — We run the delivered work ourselves in a locked-down box and watch how it finishesengineering report + evidence video
£248.75experiment_reproduction — We run the delivered work ourselves, twice, and work out every number the report gives — each one has to come out the same as ours, inside the tolerance you agreed. What the author says their own result was is never the evidence for itSettled on Stripe test-mode PaymentIntent pi_3U0lQGFFRbB25fA705cnpuCg — succeeded, £2,963.75, livemode false. Tree content hash 5163c68cc9680df6.
The honest boundary
This is a simulation-validated design, not a measurement of a built cell.
Every figure is the output of a rigid-body simulation of the delivered model — which is exactly what a robotics-simulation consultancy delivers before capital is committed, and exactly what it cannot tell you on its own.
- belt motion and jitter — sleeves are seeded at rest
- vision latency and pose error — the cell is given exact sleeve poses
- cup wear and leak-down — the vacuum grasp is a weld gated on a measured engagement condition
- sleeve crush — sleeves are rigid bodies
- electrical, safety, and guarding assessment
How the money moved
Every step names the banked record it was read from.
asked
Four criteria sealed before the first run: envelope, grasp, clearance and rate, and a report that has to reproduce.
1 banked record
- work/capstan/cell/capstan_spec.py
checked · 3 steps
Refused three times: the layout as proposed could not reach 403 of 865 sampled poses, and the two fixes after it still ran under rate.
403/865
2 banked records
- work/capstan/acceptance/leaf-1-layout-revA.json
- work/capstan/acceptance/campaign-revB.json
checked · 2 steps
A hundred randomised episodes in MuJoCo placed 400 of 400 sleeves with no clearance violation.
31.4/min
1 banked record
- work/capstan/acceptance/campaign-revC-tuned.json
passed
The platform re-executed the delivered harness and compared every figure the report states.
9/9
1 banked record
- work/capstan/acceptance/leaf-4-reproduction.json
Who made it
SeaOtter's Superteam
SeaOtter's own team — first-party work, labeled so. Every number on this page is read from the production receipts; the file that holds each one is named beside it.
A job like yours
Your job prices on your own words — a fixed quote before any account.
