5shekel 327cf9d902 chore(isaac): simplify playback branch selection
Remove experimental per-side branch toggles and continuity state from the urdf-loader playback solver. Keep a single lower-branch rule for all chains and update docs to reflect the stable ground-facing behavior.
2026-02-21 11:24:25 +02:00
2026-02-17 14:01:35 +02:00
2026-02-17 14:10:37 +02:00
2026-02-17 14:10:37 +02:00
2026-02-17 14:10:37 +02:00

Walker Linkage Web Simulator

2D + 3D browser simulator of the walker linkage from linkage.svg, implemented with HTML Canvas for the top pane and Three.js for the lower pane.

Features

  • One-side linkage solve from fixed bar lengths and crank angle.
  • Duplicated opposite side with 180° phase offset.
  • Color mapping aligned with the drawing:
    • pivots = yellow
    • crank = green
    • links = black
    • body = red
  • Play/pause, reset, speed slider, angle scrubber.
  • Live length controls in centimeters (cm):
    • body (AB) with A/B preserved as body endpoints
    • crank (OC)
    • leg (CG) with automatic coupling to CF
    • tendon (BE) with automatic coupling to AD
    • defaults normalized to a 45 cm leg baseline while preserving original mechanism ratios
    • mirrored automatically to far side (180° phase side)
  • Presets tab for built-in MuJoCo playback traces (10cm/20cm/30cm).
  • Foot trajectory traces for both sides.
  • Optional linkage annotation overlay (joint and link labels).
  • Optional real-time 3D viewport with orbit camera and camera reset.
  • Optional microphone-reactive camera motion (volume + frequency bands).
  • Audio debug views (switchable waterfall/spectrogram) for beat tuning.
  • Diagnostics panel with closure error and fallback counters.

File layout

Run

Any static server is enough.

No build step is required. Three.js is loaded via ESM URL imports.

Recommended (compressed static serving for large MuJoCo JSON presets):

caddy run

This uses the repo Caddyfile (zstd + gzip) on http://localhost:8676.

If you do not have Caddy installed, a basic uncompressed fallback is:

python3 -m http.server 8676

Then open:

http://localhost:8676/

MuJoCo rigid-body track

A Python + MuJoCo scaffold is available in sim/mujoco for rigid-body walking experiments.

Quick start:

cd sim/mujoco
uv sync
uv run walker-run --seconds 10

Use uv run walker-run --viewer --seconds 30 for interactive visualization. See sim/mujoco/README.md for details.

The MuJoCo torso base is now a full 3D freejoint (unconstrained), so side tilt and lateral motion are physically simulated.

To compare physics in the browser app with true MuJoCo playback in the 3D pane, export JSON via uv run walker-export-web --frame world --seconds 15 --out ../../artifacts/mujoco_trace.json from sim/mujoco, then load it in the "MuJoCo Import" panel.

Notes:

  • Default export format is v2 (walkersim-mujoco-playback-v2) with time-indexed 3D frames.
  • overlay2d is embedded in the same payload, so the 2D pane still shows foot traces.
  • For legacy 2D-only payloads, use --format v1.

Model notes

  • v1 is pure kinematic visualization.
  • No collision/ground dynamics and no body translation.
  • Side B is driven by theta + pi.
  • Lower branch of each circle-circle intersection is selected to maintain leg-down posture.
Description
No description provided
Readme 7.6 MiB
Languages
JavaScript 57.3%
Python 31.1%
CSS 5.1%
Shell 4.3%
HTML 2.2%