CoolFace
Modelpublic

patoalejor/rldx1-origami-s5

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes5downloads
Model Card

RLDX-1 Origami — bimanual paper folding (xCath, s5 / step 24000)

Fine-tuned RLDX-1 vision-language diffusion action policy for bimanual paper folding ("fold the plane") on the North POC2.2 robot (dual Sharpa Wave hands). xCath submission for the Robotic Origami Challenge.

  • —Base model: `RLWRLD/RLDX-1-PT-IMG` · backbone: RLWRLD/RLDX-1-VLM (vtc-qwen3-vl)
  • —Serving code + Docker image: https://github.com/patoxcath/xcath-origami
  • —Model: 63-DoF (torso-fixed); served as 65-DoF over the challenge wire (see below).

Intended use

Load into the delivery policy server (OpenPI-websocket compatible) and drive from the challenge harness — the server maps 65↔63 DoF and applies deploy smoothing. Not a standalone transformers model; it runs inside the `xcath-origami` container.

bash
# 1) get the server image + this checkpoint
docker pull ghcr.io/patoxcath/rldx-origami-server:v1
huggingface-cli download patoalejor/rldx1-origami-s5 --local-dir ./origami_ft_s5_best

# 2) run
docker run --rm --gpus all -p 8000:8000 \
    -v "$PWD/origami_ft_s5_best:/ckpt:ro" ghcr.io/patoxcath/rldx-origami-server:v1

Repository contents

config.json, model-0000{1..4}-of-00004.safetensors, model.safetensors.index.json, experiment_cfg/ (run config + dataset statistics), processor/ (normalizer + modality config). Loads via transformers.AutoModel.from_pretrained(..., trust_remote_code=True) with the rldx package on the path (the base repo also provides RLWRLD/RLDX-1-VLM).

I/O contract (served)

  • —Input: head_left RGB image (single view), observation/state float32(65,) joint angles (radians), text prompt. Wrist images are accepted but ignored.
  • —Output: float32 (16, 65) — absolute joint-angle targets in radians, action_horizon = 16.
  • —65-DoF layout: [0:7] leftarm · `[7:29]` lefthand · [29:36] rightarm · `[36:58]` righthand · [58:65] motor (head/torso, motor_j0..j6). The model outputs 63 dims; the server reinjects the two constant torso joints motor_j0/j1 (0.562658 / -1.106863) at indices 58,59.

Training

Session s5: all 86 torso-fixed (63-DoF) origami seasons, single head_left camera, projector + diffusion head only, RTC-trained (rtc_training_max_delay=6), in-model low-pass off. Early-stopped; this is step 24000 (chosen for lowest hand MAE; checkpoints 18k–24k are within noise).

Evaluation (held-out season, open-loop)

metricvalue
val loss0.0167
action MAE0.0404 rad
RMSE0.0695

Deployed-config smoothness (served stream): hand jitter 1.85× GT at hand MAE 0.017 rad with a streaming causal 5 Hz low-pass — matching the smoothness target at no accuracy cost. Full analysis: see the GitHub repo (docs/RESULTS.md).

Limitations

  • —Single-view (head_left) — does not use the wrist cameras.
  • —Deploy smoothing (streaming 5 Hz low-pass) is applied server-side; online trained-RTC is available but off by default (it over-smooths and hurts accuracy — see repo).
  • —Assumes the client executes ~6 steps per returned chunk before re-planning.

License & attribution

Base model and integration code are Apache-2.0 (RLDX-1 © RLWRLD; OpenPI © Physical Intelligence). Fine-tuned weights © xCath, released for the Robotic Origami Challenge.