SAFFRON - procedural saffron harvesting cell (reach verified, grasp not yet)
Saffron is the most expensive crop on earth: a kilogram is ~150,000 crocus flowers, each hand-picked for exactly three red stigma threads.
Saffron is the most expensive crop on earth: a kilogram is ~150,000 crocus flowers, each hand-picked for exactly three red stigma threads. No crocus exists in the Isaac asset library, so we generated the world too: every flower is a seeded parameter vector (bloom, petal spread, thread length, splay, colour), with ripe flowers and unripe buds drawn from the same sampler so selectivity must be recovered from the scene, not read off a label. Sim-only on Antioch / Isaac Sim 6.0.1, SO-101.
Modules: World (procedural crocus USD) -> Perception (HSV separation of deep-red thread from purple petal across the hue wraparound, clustering, tip extraction, ripeness grading) -> Reasoning (grade flowers, never plan a bud as a target, retry-once-then-abandon) -> Action (reach calibrated by driving the arm and measuring where it lands, 320 stations, each rehearsed before a flower is planted on it).
VERIFIED: the arm reaches every planned thread, jaw closing 0.1-7.7 mm from target, 0 retries, no bud ever targeted.
NOT DONE, PLAINLY: the gripper does not grasp or carry a thread. Our gate fires on jaw-to-thread proximity under 22 mm and then releases the thread programmatically; threads carry no collider while held. The video shows accurate reaching, not picking. We are not claiming a working harvest.
The engineering is in the debugging, all found by instrumenting the sim: teleport kinematics detonating the articulation (tool radius 2.8e10 m, unrecoverable, so later readings are silently garbage); a stillness test firing before the servos moved, so calibration recorded the start pose; measuring from the jaw link, which swings ~100 degrees when the gripper opens (162 -> 68 mm); breakable joints that never held, 10 of 12 threads on the floor while the USD attribute still said "attached"; and a kinematic thread acting as an immovable obstacle on its own grasp target (0.2 mm rehearsal, 81 mm miss). Two fixes tried, measured and reverted: drive-gain overrides and neutral-pose transits (90 -> 203 mm).
Next: colliders on threads, tune break force against measured contact force, carry to the vial.
Team
- Ilia Prihodko
- Submission
- Demo-day form · revised 2 times
- Submitted
- August 17, 2026 at 3:47pm