Send the hound to hide the phones — before the caretaker takes them forever.
Tonight, a Unitree Go2 is your familiar.
Save the night.
One robot. Seven souls. A finite number of seconds.
One source of truth. Rerun click and web click both feed
the same BBoxSelectionModule.
Exclusivity. Picking a face cancels nav; clicking
a point cancels follow — one gesture, one outcome.
searching rescues brief occlusions — the lock returns the moment the person reappears.
L2 + B hardware damp — above the stacktele_cmd_vel wins on any keypressnav_cmd_vel resumes after 1 s silencestop_movementThe human is always able to interrupt the autonomous loop — by design, by layer.
jamjam/jamjamjamjam addsdimos/apps/ namespace.
Parchment web UI on :7782 — click a face, click a
point, drive with WASD. ~1.7k lines of HTML+JS, fully offline.
Detection3DPC.from_2d over the
voxel map — robot↔target distance now lives in world frame,
and the follower's gone 10× more robust.
scripts/run-blueprint.sh · SIM=mujoco
/ REPLAY=1 / ROBOT_IP=… · auto-rotated
logs · mjpython on macOS for MuJoCo's GL context.
A scroll unfurls. Characters ignite in candle-gold, then settle into ink. One quill cursor. One soundtrack.
The obvious approach — shoot LiDAR rays into the bbox — looked solid until sparse point clouds left holes at the person's edges. The follower stuttered, sometimes lunged.
We pivoted: take the bbox center, push it back through the
TF tree into world frame, then ask the voxel
map (Detection3DPC.from_2d) where the target
actually sits in 3D.
Robot ↔ target distance in world coordinates. Edge-case point clouds no longer derail the follow. An order of magnitude more robust.
tele_cmd_vel, the bbox follower, and the planner
all want to write cmd_vel. Letting any two of them
fire simultaneously is how robots run into things.
Our rule lives in two places, by design:
select publishes
stop_movement=True before adopting the new face.navigate clears the bbox selection
before the planner takes the wheel.MovementManager suppresses
nav_cmd_vel for 1 s after any teleop keypress.
One gesture, one outcome. The autonomous loop never fights the human.
git clone -b jamjam_ui \
https://github.com/jamjamDimos/dimos.git
cd dimos
# MuJoCo simulation — no hardware needed
SIM=mujoco scripts/run-blueprint.sh
open http://localhost:7782/
qwen3:4b already pre-downloaded — per-character lines.Mischief managed.