GubiLabsAcademy

MODULE 39 / CHARACTER & EXPRESSION

Put your gesture on BDX-R

Map semantic animation channels to the actual BDX-R description. Run a named-joint kinematic preview and learn exactly what it proves before moving on to dynamics or motors.

4–6 hours plus inspection8 lab steps2 knowledge checks In progress

By the end, you can…

  • Verify names, axis sign, units, zero and limits for each channel.
  • Preview the supplied clip on the actual BDX-R XML and assets.
  • Explain why kinematic retargeting is not dynamic feasibility.
BRING WITH YOU

Modules 10–12 and 37. The complete pinned BDX-R-Deploy clone and MuJoCo environment.

Use the full model, not a legs-only model, for these four head/neck channels.

ANIMATION STUDIO / NO ROBOT REQUIREDA small gesture. A clear intention.
Rest2D CHARACTER STUDYHead, timing & intention
0.00 / 6.0 s

DIRECT THE PERFORMANCE

Exports four semantic channels at 60 samples/sec in degrees. Desktop files need your calibrated joint map before simulation. Hold and linear modes demonstrate discontinuities.
head yaw deg 0.0°head pitch deg 0.0°head roll deg 0.0°neck pitch deg 0.0°
Original Gubi Labs teaching animation, inspired by animation principles. This schematic exaggerates the visual effect; it is not BDX-R geometry, a balance simulation, or a motor controller. The eyes move together to illustrate head yaw; the physical BDX-R has no independent eye joint. Export before leaving; studio edits are not saved automatically. Follow the timing lab
01

A label is not a coordinate convention

Our semantic head_yaw_deg describes an artistic direction. A model joint called Head_Yaw has its own axis. In the pinned XML, Head_Yaw points along negative Z and Head_Roll along negative X; the example mapping therefore includes explicit sign changes. A name match alone cannot determine the correct direction.

The mapping formula adds a calibrated neutral offset after converting degrees to radians and applying the sign. The example uses zero offsets for the XML study. A physical encoder zero is a different calibration and cannot be copied from this JSON.

Complete the mapping with the permitted joint-angle range as well. The name selects the joint, the sign and units define the direction and size of the request, the neutral defines its zero, and the limits bound the permitted request. Verify all five before previewing a new model.

q_model_rad = zero_rad + sign × channel_deg × π / 180
02

Retargeting has several levels

At the simplest level, retargeting converts an intended movement into another model’s coordinates. At a deeper level, different proportions, joint ranges, mass and contacts change what is achievable. Disney’s ReActor paper studies motion adaptation together with a physical tracking policy; it motivates treating those problems together.

Here we deliberately start with four hinge channels. The supplied program rejects missing joints, non-hinge joints, duplicate mappings, invalid values and samples outside the preview envelope or XML limits. Those checks are necessary but do not establish collision clearance or correct physical calibration.

03

Forward kinematics is a pose calculation

The preview writes qpos and calls mj_forward. It never calls mj_step, never runs a walking policy and never opens CAN. It lets you inspect how the model is arranged at each sample. The remaining joints stay at the XML default pose. A floating robot or a poor default foot stance is therefore not a successful balancing result.

Visual inspection can reveal obvious shell intersections and cable-routing concerns, but absent geometry cannot collide in a model. The physical robot has wire loops, fasteners and tolerances that may not be represented. Record those missing details for the build inspection.

04

Build a reusable mapping artifact

Keep the clip, JSON map, model commit and Python package versions together. Give each test a name. Change one sign or offset only after observing the single-channel result. Do not solve an uncertain orientation by flipping several axes until the full gesture looks roughly plausible.

A later dynamic experiment must retain the same observation order, control timing and policy contract used by the baseline. This small map is an authoring adapter, not a replacement for the deployment configuration.

WORDS YOU NOW KNOW

Retargeting
Adapting a motion to a different model or mechanism.
Forward kinematics
Computing body positions from joint positions.
Neutral offset
The reference joint angle from which an animation offset is measured.
qpos
MuJoCo’s configuration coordinates; not generally the same indexing as actuators.

YOUR CALL

Finished with this module?

0 of 8 lab steps checked. 0 of 2 questions answered. You decide when the module is complete. Revisiting or editing it will not change your decision.

You can reopen it later. Checking every box will not automatically complete it.

Go to the source

Primary references for this module. Use the version and hardware revision named in the lesson.

MuJoCo · Python bindings and passive viewermacOS passive viewers use mjpython. Forward kinematics and dynamics are different operations.BDX-R · Pinned deployment sourceInspect this exact revision and the policy metadata used in your earlier labs before designing an adapter.Disney · ReActor: Reinforcement Learning for Physics-Aware Motion Retargeting · 2026Advanced reading: adaptation and physical tracking must be considered together.