G1

RoboAction Composer

Motion studio

Runtime

Simulation

LOCAL

01 · Capture

Pose Recorder

Connecting

Adjust a simulated posture and inspect the state reported back by MuJoCo. Left and right always mean the robot's own sides.

Source
Pose group
Waist Robot-left arm Robot-right arm

Mirror arm edit

Sagittal
Pose name
Notes

Joint inspector

17 joints
Joint Target Actual Reset
Yaw waist
0.000
Roll waist
0.000
Pitch waist
0.000
Shoulder Pitch robot-left
0.000
Shoulder Roll robot-left
0.180
Shoulder Yaw robot-left
0.000
Elbow robot-left
1.400
Wrist Roll robot-left
0.000
Wrist Pitch robot-left
0.000
Wrist Yaw robot-left
0.000
Shoulder Pitch robot-right
0.000
Shoulder Roll robot-right
-0.180
Shoulder Yaw robot-right
0.000
Elbow robot-right
1.400
Wrist Roll robot-right
0.000
Wrist Pitch robot-right
0.000
Wrist Yaw robot-right
0.000

Values are radians. Target is your command; Actual is the latest MuJoCo state.

02 · Assemble

Pose Composer

Start with a complete base, then optionally replace the robot's left arm, right arm, or both.

Base pose · required
Robot-left arm override · optional
Robot-right arm override · optional

Save final pose

Final pose name
Notes
Select source poses, then preview or save the result.

03 · Sequence

Action Composer

Build a timed motion from complete poses. Every action starts and returns to base/concierge_init.

Saved action
Action name
Notes

Add intermediate frame

Base or composed
Complete pose
Travel time · seconds
Hold time · seconds

Keyframe sequence

  1. 01

    base/concierge_init

    Fixed start

    Origin
  2. 02

    base/concierge_init

    Fixed return

    Travel · s
Trajectory frequency · Hz
Download compiled NPZ

3D trajectory playback

Simulation and Viser only

Idle
Compiled trajectory
0.00 / 0.00 s
Waiting

No trajectory loaded

No trajectory loaded

Add at least one complete intermediate pose before saving or compiling.

04 · Playback

Action Player

Load a local motion file, normalize it to both G1 arms, and inspect it in the live Viser scene.

Arms

Action · 14

Waist

concierge_init

Lower body

Standing

Action format
Action file

Choose a compiled Action Recorder NPZ.

Display name
Source frequency · Hz

Used when Kimodo does not embed FPS.

Only load an ARDY PKL that you generated locally and trust.

No action loaded

—
File—
Source joints—
Playable joints—
Samples—
Frequency—
Duration—

    Viser playback

    Kinematic simulation only

    Idle
    0.00 / 0.00 s
    Waiting No action loaded

    Paused frame capture

    Pause, select one exact sample, then save either arm.

    Pause to select
    Trajectory sample
    Sample 0 / 0 0.000 s
    Pose name
    Notes
    Choose an action format and load a local file.

    05 · Voice

    Speech

    BytePlus ready

    Generate 16 kHz mono WAV assets and use their exact duration when timing an action.

    Clip name
    Output
    data/tts/<name>.wav
    Voice · Chinese + English
    Emotion
    Emotion strength 4 / 5
    Speech rate 0
    Volume 0
    Pitch 0
    Extra delivery instruction · optional
    Text to speak
    0 / 5000

    Saved speech clips

    Loading catalog

    Connecting 3D scene
    unitree_g1_29dof_rev_1_0_fake_hand MuJoCo source
    Robot-relative camera Mouse: orbit · pan · zoom