patoalejor/rldx1-origami-s5
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.
# 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:v1Repository 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_leftRGB image (single view),observation/statefloat32(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 jointsmotor_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)
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.
