Skip to content

Term Catalog

Every term registered in Eden (246 of them) with the parameters it accepts, generated from the registries themselves. This is the complete list; the guide's Terms & Registries page explains how to write and wire one up.

  • Bold parameters are required — omit one and configure() raises before the env is built.
  • A term's parameters are the keys of its params={...} dict (function terms) or its configure() fields (class terms). The fields every term of a kind carries are listed once, under that kind.
  • A Requires column appears in the tables that have one: an EnvOptions flag the term needs set, which no parameter of the term can supply. The env build raises without it.
  • eden terms prints the same catalog in a terminal, eden terms --kind reward one section of it, eden terms --grep height only the terms whose name, parameters or summary match, and eden terms --json emits it as JSON.

action terms

14 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every action term also accepts: dofs_name: str \| list[str] = [], entity_name: str = ''

eden.managers.terms.actions.binary_actions

Term Form Parameters Summary
binary_joint_controller class BinaryJointController close_action: float \| dict[str, float] = 0.0, open_action: float \| dict[str, float] = 1.0, scale: float = 1.0 A binary joint controller for a parallel-jaw gripper.
gripper_decision_controller class GripperDecisionController close_action: float \| dict[str, float] = 0.0, close_threshold: float \| None = None, continuous: bool = False, hold_steps: int = 0, input: GripperInput = 'sign', on_missing: Literal['hold', 'measured'] = 'hold', open_action: float \| dict[str, float] = 1.0, open_threshold: float \| None = None, scale: float = 1.0, snap_threshold: float \| None = None, sticky_repeats: int = 0, threshold: float = 0.5, zero_holds: bool = False Gripper controller that decides open/close from a policy scalar.

eden.managers.terms.actions.free_base_actions

Term Form Parameters Summary
free_base_pose_controller class FreeBasePoseController force_limit: float = 100.0, orientation_kd: float = 2.0, orientation_kp: float = 40.0, orientation_scale: float \| tuple[float, float, float] = 0.2, position_kd: float = 60.0, position_kp: float = 1000.0, position_scale: float \| tuple[float, float, float] = 0.05, torque_limit: float = 10.0 Drive a floating base to a pose near its default root pose (Genesis free-joint PD).

eden.managers.terms.actions.joint_actions

Term Form Parameters Summary
explicit_pd_controller class ExplicitPDController dict_keys_scope: Literal['term', 'entity'] = 'term', mimic_dofs: dict[str, tuple[str, float, float]] = {}, modifier: ActionModifierOptions \| None = None, offset: float \| dict[str, float] = 0.0, reference_source: ReferenceSource = ReferenceSource.DEFAULT, scale: float \| dict[str, float] \| None = None, scale_ratio: float \| None = None Explicit joint PD controller using manual torque computation.
explicit_velocity_controller class ExplicitVelocityController dict_keys_scope: Literal['term', 'entity'] = 'term', mimic_dofs: dict[str, tuple[str, float, float]] = {}, modifier: ActionModifierOptions \| None = None, offset: float \| dict[str, float] = 0.0, reference_source: ReferenceSource = ReferenceSource.ZERO, scale: float \| dict[str, float] \| None = None, scale_ratio: float \| None = None, velocity_gain: float = 0.25 Explicit joint velocity controller using manual torque computation.
implicit_pd_controller class ImplicitPDController dict_keys_scope: Literal['term', 'entity'] = 'term', mimic_dofs: dict[str, tuple[str, float, float]] = {}, modifier: ActionModifierOptions \| None = None, offset: float \| dict[str, float] = 0.0, reference_source: ReferenceSource = ReferenceSource.DEFAULT, scale: float \| dict[str, float] \| None = None, scale_ratio: float \| None = None Implicit joint PD controller using Genesis's built-in position control.
implicit_velocity_controller class ImplicitVelocityController dict_keys_scope: Literal['term', 'entity'] = 'term', mimic_dofs: dict[str, tuple[str, float, float]] = {}, modifier: ActionModifierOptions \| None = None, offset: float \| dict[str, float] = 0.0, reference_source: ReferenceSource = ReferenceSource.ZERO, scale: float \| dict[str, float] \| None = None, scale_ratio: float \| None = None Joint velocity control through Genesis's built-in velocity mode.
null_joint_action class NullJointAction — Virtually fix the DoFs to the default positions.
velocity_feedforward_pd_controller class VelocityFeedforwardPDController dict_keys_scope: Literal['term', 'entity'] = 'term', feed_forward_ratio: float = 1.0, mimic_dofs: dict[str, tuple[str, float, float]] = {}, modifier: ActionModifierOptions \| None = None, offset: float \| dict[str, float] = 0.0, reference_source: ReferenceSource = ReferenceSource.DEFAULT, scale: float \| dict[str, float] \| None = None, scale_ratio: float \| None = None, velocity_scale: float = 1.0 Explicit joint PD controller with velocity feedforward.

eden.managers.terms.actions.task_space_actions

Term Form Parameters Summary
differential_ik_controller class DifferentialIKController damping: float = 0.1, ee_link_name: str = '', ee_local_pos: tuple[float, float, float] = (0.0, 0.0, 0.0), max_dq: float \| None = None, orientation_scale: float \| list[float] = 0.5, orientation_weight: float = 1.0, position_scale: float \| list[float] = 0.05, position_weight: float = 1.0 Action term that maps task-space commands to joint targets via differential IK.
ik_pose_controller class IKPoseController ee_link_name: str = 'gripper_link', ee_link_offset_pos: tuple[float, float, float] = (0.0, 0.0, 0.0), ee_link_offset_quat: tuple[float, float, float, float] = (1.0, 0.0, 0.0, 0.0), joint_limit_margin: float = 0.0, max_ik_position_error: float \| None = None, max_ik_rotation_error: float \| None = None, max_joint_delta: float \| None = None Absolute task-space pose controller: solve IK for a base-frame target pose each step.
operational_space_controller class OperationalSpaceController action_clip: float \| tuple[float, ...] = 1.0, control_mode: Literal['position', 'pose'] = 'pose', damping_ratio: float \| tuple[float, ...] = 1.0, ee_link_name: str = '', ee_local_pos: tuple[float, float, float] = (0.0, 0.0, 0.0), ee_local_quat: tuple[float, float, float, float] = (1.0, 0.0, 0.0, 0.0), inertial_decoupling: Literal['none', 'full', 'position_orientation'] = 'none', kp: float \| tuple[float, ...] = 100.0, nullspace_damping_ratio: float = 1.0, nullspace_kp: float \| None = None, nullspace_reference: Literal['default', 'reset_pose'] = 'default', operational_inertia_damping: float = 1e-06, orientation_scale: float \| tuple[float, float, float] = 0.5, position_scale: float \| tuple[float, float, float] = 0.05 Operational-space control to a persistent relative position/pose target.

eden.managers.terms.actions.welding_actions

Term Form Parameters Summary
parallel_jaw_welding class ParallelJawWelding ee_link_name: str = '', grasp_force_threshold: float = 1.0, ignore_entities_name: list[str] = [], ignore_links_idx: list[int] = [], left_gripper_link_name: str = '', right_gripper_link_name: str = '' Weld the link a parallel-jaw gripper is squeezing to the end-effector link.
suction_cup_welding class SuctionCupWelding ee_link_name: str = '', ignore_entities_name: list[str] = [], ignore_links_idx: list[int] = [] Collision-aware welding of an object link to the suction-cup end-effector link.

observation terms

64 registered.

  • Function terms: ObsTerm.configure(func=observations.<term>, params={...}) — from eden import observations, from eden.terms import ObsTerm
  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every observation term also accepts: backfill: bool = True, clip: tuple[float, float] \| None = None, flatten_history_dim: bool = True, history_length: int = 0, modifiers: list[eden.options.managers.modifiers.ObservationModifierOptions] = [], noise: eden.options.managers.modifiers.NoiseOptions \| None = None, scale: float \| list[float] = 1.0

eden.managers.terms.observations.camera

Term Form Parameters Summary
depth_image function camera_name: str —
normal_image function camera_name: str —
pointcloud_image function camera_name: str, world_frame: bool = False —
rgb_image function camera_name: str, normalize: bool = False, channels_first: bool = False RGB image from a camera, optionally CNN-ready.
segmentation_image function camera_name: str —

eden.managers.terms.observations.common

Term Form Parameters Summary
episode_phase function centered: bool = False Return normalized episode time as a (num_envs, 1) tensor.
generated_commands function command_name: str —
last_action function action_name: str \| None = None —
metric_observation class MetricObservation metric_name: str = '' Expose a MetricTerm's cached value as a (num_envs, 1) observation.

eden.managers.terms.observations.contact

Term Form Parameters Summary
contact_force_norm class ContactForceNorm entity_name: str = 'robot', links_name: list[str] = [] Per-link contact-force magnitude (Euclidean, world frame).
grouped_contact_flags class GroupedContactFlags entity_name: str = 'robot', force_threshold: float \| None = None, links_name: list[str] = [], object_entity_name: str = 'object', object_links_name: list[str] = [] Per-(link, partner-link) boolean contact flags with a specific entity.
motion_contact_flags function entity_name: str, links_name: list[str] Demo per-(link, partner) contact flags at the current motion frame.
motion_future_contact_label function entity_name: str, frame_offsets: Sequence[int], links_name: list[str] \| None = None, flatten: bool = True Demo tri-state per-link contact labels (+1 contact / -1 no contact / 0 unlabelled) at future frames.

eden.managers.terms.observations.locomotion

Term Form Parameters Summary
base_height function entity_name: str = 'robot', terrain_entity_name: str \| None = None, relative: bool = False Height of the entity's base above the ground, shape (num_envs, 1).
cos_phase function command_name: str Cosine of the gait phase for each foot. Shape (num_envs, num_feet).
grid_scan_dots class GridScanDots clamp_offset_range: Vec2FType = (-5.0, 5.0), entity_name: str = 'robot', flatten_measured_points: bool = True, measured_points_x: list[float] = [-0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8], measured_points_y: list[float] = [-0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5], offset_from_base: bool = True, terrain_entity_name: str = 'terrain' Height scan of the terrain at the given xy coordinates.
projected_gravity class ProjectedGravity entity_name: str = 'robot' Gravity direction expressed in the entity's base frame.
scaled_commands class ScaledCommands command_name: str = '', command_scale: list[float] = [] Command vector multiplied by a per-component scale; prefer the built-in scale=[...] modifier.
sin_phase function command_name: str Sine of the gait phase for each foot. Shape (num_envs, num_feet).
velocity_tracking_error_integral class VelocityTrackingErrorIntegral command_name: str = 'velocity_command', entity_name: str = 'robot', max_abs: float = 1.0 Running integral of the base-velocity tracking error (N, 3).

eden.managers.terms.observations.manipulation

Term Form Parameters Summary
end_effector_pose class EndEffectorPose ee_link_name: str = '', entity_name: str = 'robot', frame: Literal['base', 'world'] = 'base', frame_correction_quat: tuple[float, float, float, float] = (1.0, 0.0, 0.0, 0.0), offset_pos: tuple[float, float, float] = (0.0, 0.0, 0.0), offset_quat: tuple[float, float, float, float] = (1.0, 0.0, 0.0, 0.0), rotation: RotationFormat = 'quat' End-effector pose [pos(3), rotation(k)] of a link, in the base or world frame.
end_effector_to_object_distance class EndEffectorToObjectDistance entity_link_name: str \| None = None, entity_name: str = 'obj', frame: Literal['world', 'robot'] = 'robot', left_ee_link_name: str = 'left_gripper', right_ee_link_name: str = 'right_gripper', robot_name: str = 'robot' End-effector-to-object vector (N, 3).
gripper_state class GripperState close_pos: float \| None = None, dofs_name: list[str] = [], entity_name: str = 'robot', normalize: GripperNormalize = 'raw', open_pos: float \| None = None Gripper DOF positions as raw values, openness or closedness.
object_to_oracle_distance class ObjectToOracleDistance command_name: str = 'command', entity_link_name: str \| None = None, entity_name: str = 'obj', frame: Literal['world', 'robot'] = 'robot', robot_name: str = 'robot' Object-to-oracle vector (N, 3).

eden.managers.terms.observations.privileged

Term Form Parameters Summary
added_mass class AddedMass entity_name: str = 'robot', links_name: list[str] = [] Per-env mass shift (kg) of the named links vs nominal — 0 without mass DR.
com_offset class ComOffset entity_name: str = 'robot', links_name: list[str] = [] Per-env COM shift (m) of the named links vs nominal — 0 without COM DR.
foot_friction class FootFriction entity_name: str = 'robot', links_name: list[str] = [] Mean per-env friction ratio over the named links — 1.0 without friction DR.
gain_scale class GainScale entity_name: str = 'robot' Per-DOF relative deviation of the realized PD gains from their defaults.
motor_strength_scale class MotorStrengthScale action_term_name: str = 'dofs_pos_controller' Per-DOF deviation of the realized actuator torque-scale from its nominal.

eden.managers.terms.observations.proprio

Term Form Parameters Summary
base_ang_vel function entity_name: str, frame: Literal['world', 'body'] = 'world' —
base_lin_vel function entity_name: str, frame: Literal['world', 'body'] = 'world' —
base_pos function entity_name: str, relative: bool = False Return the position of the entity's base link.
base_quat function entity_name: str, relative: bool = False Return the quaternion of the entity's base link.
base_rpy function entity_name: str, terms_idx: torch.Tensor \| None = None Return the roll, pitch, and yaw of the entity's base link.
dofs_control_force class DofsControlForce dofs_name: list[str] \| None = None, entity_name: str = 'robot', terms_idx: list[int] \| None = None Control force the actuators applied on each of an entity's DOFs over the last physics step
dofs_force class DofsForce dofs_name: list[str] \| None = None, entity_name: str = 'robot', terms_idx: list[int] \| None = None Generalized force the solver applied to each of an entity's DOFs (get_dofs_force).
dofs_pos class DofsPos dofs_name: list[str] \| None = None, entity_name: str = 'robot', offset_from_default: bool = False, terms_idx: list[int] \| None = None Joint positions (angles; positions for linear actuators) of an entity's DOFs.
dofs_vel class DofsVel dofs_name: list[str] \| None = None, entity_name: str = 'robot', terms_idx: list[int] \| None = None Joint velocities of an entity's DOFs.
links_ang function entity_name: str, ls_idx_local: torch.Tensor \| None = None —
links_pos function entity_name: str, ls_idx_local: torch.Tensor \| None = None —
links_quat function entity_name: str, ls_idx_local: torch.Tensor \| None = None —
links_vel function entity_name: str, ls_idx_local: torch.Tensor \| None = None —

eden.managers.terms.observations.sensors

Term Form Parameters Summary
sensor_read class SensorRead post_process_func: Callable \| None = None, read_ground_truth: bool = False, sensor_names: list[str] \| None = None Concatenate selected sensor readings into a single observation tensor.

eden.managers.terms.observations.tracking

Term Form Parameters Summary
entity_base_ori_b function entity_name: str, anchor_entity_name: str, anchor_link_name: str, representation: Literal['rot6d', 'tan_norm'] = 'rot6d' Live base orientation of entity_name in another entity's live anchor-link frame, 6-D. Shape (N, 6).
entity_base_pos_b function entity_name: str, anchor_entity_name: str, anchor_link_name: str Live base position of entity_name in another entity's live anchor-link frame. Shape (N, 3).
motion_base_pos_w function entity_name: str World-frame motion-ref base position. Shape (num_envs, 3).
motion_base_quat_w function entity_name: str World-frame motion-ref base quaternion (wxyz). Shape (num_envs, 4).
motion_dofs_pos function entity_name: str, dofs_name: list[str] \| None = None Motion-ref qpos. Shape (num_envs, D).
motion_dofs_vel function entity_name: str, dofs_name: list[str] \| None = None Motion-ref qvel. Symmetric to motion_dofs_pos.
motion_future_base_ori_b function entity_name: str, anchor_entity_name: str, anchor_link_name: str, frame_offsets: Sequence[int], representation: Literal['rot6d', 'tan_norm'] = 'rot6d', flatten: bool = True Future-frame motion-ref base orientation of entity_name in another entity's live anchor-link frame.
motion_future_base_pos_b function entity_name: str, anchor_entity_name: str, anchor_link_name: str, frame_offsets: Sequence[int], flatten: bool = True Future-frame motion-ref base position of entity_name in another entity's live anchor-link frame.
motion_future_base_pos_w function entity_name: str, frame_offsets: Sequence[int], flatten: bool = True World-frame motion-ref base position at multiple buffer frames.
motion_future_base_quat_w function entity_name: str, frame_offsets: Sequence[int], flatten: bool = True World-frame motion-ref base quaternion (wxyz) at multiple buffer frames.
motion_future_dofs_pos function entity_name: str, frame_offsets: Sequence[int], dofs_name: list[str] \| None = None, flatten: bool = True Return motion-ref qpos at multiple future buffer frames.
motion_future_dofs_vel function entity_name: str, frame_offsets: Sequence[int], dofs_name: list[str] \| None = None, flatten: bool = True Return motion-ref qvel at multiple future buffer frames.
motion_future_links_ori_b function entity_name: str, links_name: list[str], anchor_link_name: str, frame_offsets: Sequence[int], representation: Literal['rot6d', 'tan_norm'] = 'rot6d', flatten: bool = True Return future-frame motion-ref link orientations in the robot's current anchor frame.
motion_future_links_pos_b function entity_name: str, links_name: list[str], anchor_link_name: str, frame_offsets: Sequence[int], flatten: bool = True Return future-frame motion-ref links_name positions in the robot's current anchor frame.
motion_links_ori_b function entity_name: str, links_name: list[str], anchor_link_name: str, flatten: bool = True Return motion-ref links_name orientations in the robot's anchor_link_name frame.
motion_links_pos_b function entity_name: str, links_name: list[str], anchor_link_name: str, flatten: bool = True Return motion-ref links_name positions in the robot's anchor_link_name frame.
motion_links_pos_w function entity_name: str, links_name: list[str], flatten: bool = True Return world-frame motion-ref link positions.
motion_links_quat_w function entity_name: str, links_name: list[str], flatten: bool = True Return world-frame motion-ref link quaternions (wxyz).
motion_phase function entity_name: str Normalized clip playback phase in [0, 1]. Shape (num_envs, 1).
robot_body_ori_b function entity_name: str, anchor_link_name: str, tracked_link_names: list[str], flatten: bool = True Return robot body orientations relative to its own anchor, as 2-column rotation matrices.
robot_body_pos_b function entity_name: str, anchor_link_name: str, tracked_link_names: list[str], flatten: bool = True Return robot body positions relative to its own anchor link.

reward terms

46 registered.

  • Function terms: RewardTerm.configure(func=rewards.<term>, params={...}) — from eden import rewards, from eden.terms import RewardTerm
  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every reward term also accepts: range_s: list[tuple[float, float]] \| None = None, tags: list[str] = [], weight: float = 1.0

eden.managers.terms.rewards.common

Term Form Parameters Summary
action_l2 function action_term_name: str \| None = None Penalize the actions using L2 squared kernel.
action_rate_l2 function action_term_name: str \| None = None Penalize the rate of change of the actions using L2 squared kernel.
action_rate_l2_smooth class ActionRateL2Smooth action_term_name: str \| None = None Penalize the 1st and 2nd derivatives of the actions using an L2 squared kernel.
dofs_acc_l2 class DofsAccL2 entity_name: str = 'robot' Penalize joint accelerations approximated as velocity differences.
dofs_pos_limits function entity_name: str Penalize joint positions if they cross the soft limits.
dofs_torques function entity_name: str Penalize joint torques: sqrt(sum(tau^2)) + sum(|tau|).
dofs_vel_limits function entity_name: str, max_vel: float \| torch.Tensor Quadratic hinge penalty on joint velocities exceeding a symmetric limit.
metric_reward class MetricReward allow_cumulative: bool = False, metric_name: str = '' Use a MetricTerm's cached value as the reward.
self_collision_cost function entity_name: str Penalize self collisions.
similar_to_default function entity_name: str Penalize joint poses far away from the entity's default pose.
task_success class TaskSuccess — 1 on a step where every success metric holds.
undesired_contacts class UndesiredContacts entity_name: str = 'robot', links_name: list[str] = [], threshold: float = 1.0 Penalty count of links whose net contact-force magnitude exceeds threshold.

eden.managers.terms.rewards.contact

Term Form Parameters Summary
motion_contact_chamfer_reward class MotionContactChamferReward empty_distance: float = 100.0, frame: Literal['world', 'object', 'wrist'] = 'world', hand_entity_name: str = 'robot', hand_links_name: list[str] = [], kernel: Literal['exp', 'sigmoid'] = 'exp', lookahead_index: int = 0, object_entity_name: str = 'object', object_links_name: list[str] = [], sigmoid_a: float = 100.0, sigmoid_b: float = 5.0, std: float = 0.18257418583505536, wrist_link_name: str \| None = None, zero_contact_mode: Literal['zero', 'one'] = 'zero' Exp/sigmoid reward on the policy-vs-demo contact Chamfer distance.
motion_contact_distance_reward class MotionContactDistanceReward hand_entity_name: str = 'robot', hand_links_name: list[str] = [], object_entity_name: str = 'object', object_links_name: list[str] = [], std: float = 0.03 Exp-kernel reward on per-link contact-point distance in the object frame.
motion_contact_match_reward class MotionContactMatchReward hand_entity_name: str = 'robot', hand_links_name: list[str] = [], object_entity_name: str = 'object', object_links_name: list[str] = [] Fraction of links whose contact state matches the demo's contact-ON links.

eden.managers.terms.rewards.locomotion

Term Form Parameters Summary
base_height_l2 function entity_name: str, target_height: float, command_name: str \| None = None, zero_vel_penalty_scale: float = 1.0, zero_vel_threshold: float = 0.1, terrain_entity_name: str \| None = None, relative: bool = False L2 base-height penalty with optional zero-velocity amplification.
body_ang_vel_xy_penalty class BodyAngVelXYPenalty entity_name: str = 'robot', link_name: str = '' Penalize body angular velocity in xy (allow z rotation).
close_feet_penalty class CloseFeetPenalty entity_name: str = 'robot', feet_link_names: list[str] = [], threshold: float = 0.15 Penalize when feet are too close together in the xy plane.
close_feet_yaw_projected_penalty class CloseFeetYawProjectedPenalty entity_name: str = 'robot', feet_link_names: list[str] = [], threshold: float = 0.05 Penalize feet closer than a lateral distance in the base's yaw frame.
constant_base_height function entity_name: str, target_height: float, terrain_entity_name: str \| None = None, relative: bool = False Penalize base height away from target — base_height_l2 without velocity gating.
feet_air_time class FeetAirTime command_name: str = '', command_threshold: float = 0.1, contact_force_threshold: float = 2.0, entity_name: str = 'robot', feet_link_names: list[str] = [], target_s: float = 0.35 Legged-gym style feet air-time reward for aperiodic gaits.
feet_clearance class FeetClearance command_name: str = '', command_threshold: float = 0.1, entity_name: str = 'robot', feet_link_names: list[str] = [], target_height: float = 0.0 Penalize deviation from target clearance height, weighted by foot xy velocity.
feet_contact_balance_penalty class FeetContactBalancePenalty contact_force_threshold: float = 2.0, ema_alpha: float = 0.02, entity_name: str = 'robot', feet_link_names: list[str] = [] Penalize uneven foot usage (a limp) via the variance of per-foot contact duty.
feet_orientation_penalty class FeetOrientationPenalty entity_name: str = 'robot', feet_link_names: list[str] = [] Penalize feet orientation deviation from flat (projected gravity in foot frame).
feet_phase class FeetPhase entity_name: str = 'robot', feet_link_names: list[str] = [], gait_command_name: str = '', swing_height: float = 0.08, tracking_sigma: float = 0.25 Reward for tracking desired foot height based on gait phase.
feet_slip class FeetSlip command_name: str = '', command_threshold: float = 0.1, contact_height_threshold: float = 0.05, entity_name: str = 'robot', feet_link_names: list[str] = [] Penalize foot sliding (xy velocity while in contact with ground).
flat_orientation_l2 class FlatOrientationL2 entity_name: str = 'robot' Penalize non-flat base orientation (projected gravity deviation in xy).
is_terminated_penalty function — Return 1 for terminated environments.
lin_vel_z function entity_name: str Penalize z axis base linear velocity.
stumble_penalty class StumblePenalty entity_name: str = 'robot', feet_link_names: list[str] = [], horizontal_to_vertical_ratio: float = 4.0 Compute an indicator penalty for feet hitting vertical surfaces (e.g. stairs riser, walls).
track_ang_vel_with_xy_penalty function command_name: str, entity_name: str, std: float Track commanded angular velocity with additional xy angular velocity penalty.
track_lin_vel_with_z_penalty function command_name: str, entity_name: str, std: float Track commanded linear velocity with additional z-velocity penalty.
tracking_ang_vel class TrackingAngVel command_name: str = '', entity_name: str = 'robot', sigma: float = 0.25 Tracking of angular velocity commands (yaw).
tracking_lin_vel class TrackingLinVel command_name: str = '', entity_name: str = 'robot', sigma: float = 0.25 Tracking of linear velocity commands (xy axes).
upright class Upright entity_name: str = 'robot', link_name: str = '', std: float = 1.0 Reward for keeping a body link upright.
variable_posture class VariablePosture command_name: str = '', entity_name: str = 'robot', running_threshold: float = 1.5, std_running: dict[str, float] = {}, std_standing: dict[str, float] = {}, std_walking: dict[str, float] = {}, walking_threshold: float = 0.1 Speed-dependent posture reward.
weighted_pose_penalty class WeightedPosePenalty entity_name: str = 'robot', pose_weights: list[float] = [] Penalize deviation from default pose with per-joint weights.

eden.managers.terms.rewards.tracking

Term Form Parameters Summary
motion_base_orientation_tracking_exp function entity_name: str, std: float Exp-kernel reward on quat-error magnitude of the base vs motion ref (wxyz).
motion_base_position_tracking_exp function entity_name: str, std: float Exp-kernel reward on world-frame base position vs motion ref.
motion_dofs_pos_tracking_exp function entity_name: str, std: float, dofs_name: list[str] \| None = None, reduction: Literal['sum', 'per_dof_mean', 'mean'] = 'sum', frame_offsets: Sequence[int] = (0,) Exp-kernel reward on per-DOF qpos vs motion ref.
motion_global_body_angular_velocity_error_exp class MotionGlobalBodyAngularVelocityErrorExp entity_name: str = 'robot', frame_offsets: tuple[int, ...] = (0,), links_name: list[str] = [], std: float = 0.1 —
motion_global_body_linear_velocity_error_exp class MotionGlobalBodyLinearVelocityErrorExp entity_name: str = 'robot', frame_offsets: tuple[int, ...] = (0,), links_name: list[str] = [], std: float = 0.1 —
motion_link_orientation_tracking_exp function entity_name: str, links_name: list[str], std: float, exp_first: bool = True, frame_offsets: Sequence[int] = (0,) Exp-kernel reward on world-frame link orientations vs motion ref (wxyz).
motion_link_position_tracking_exp function entity_name: str, links_name: list[str], std: float, exp_first: bool = True, frame_offsets: Sequence[int] = (0,) Exp-kernel reward on world-frame link positions vs motion ref.
motion_relative_body_orientation_error_exp class MotionRelativeBodyOrientationErrorExp anchor_link_name: str = 'torso_link', entity_name: str = 'robot', frame_offsets: tuple[int, ...] = (0,), links_name: list[str] = [], std: float = 0.1 Yaw-warped multi-link orientation tracking (exp kernel, link mean).
motion_relative_body_position_error_exp class MotionRelativeBodyPositionErrorExp anchor_link_name: str = 'torso_link', entity_name: str = 'robot', frame_offsets: tuple[int, ...] = (0,), links_name: list[str] = [], std: float = 0.1 Yaw-warped multi-link position tracking (exp kernel, link mean).

termination terms

34 registered.

  • Function terms: DoneTerm.configure(func=terminations.<term>, params={...}) — from eden import terminations, from eden.terms import DoneTerm
  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every termination term also accepts: time_out: bool = False

eden.managers.terms.metrics.articulation

Term Form Parameters Summary
joint_angle_at_target function entity_name: str, joint_name: str, target_angle: float, threshold: float = 0.05 Check if a single DOF is within threshold of target_angle.

eden.managers.terms.metrics.containment

Term Form Parameters Summary
object_above_height function entity_name: str, height: float, relative: bool = False Check if an entity's root z-position is above height.
object_in_region function entity_name: str, region_min: list[float], region_max: list[float], relative: bool = False Check if an entity's root position is inside an axis-aligned box.

eden.managers.terms.metrics.grasp

Term Form Parameters Summary
object_lifted function entity_name: str, min_height: float Check if an entity has been lifted above min_height.

eden.managers.terms.metrics.proximity

Term Form Parameters Summary
entity_near_entity_xy function entity_a_name: str, entity_b_name: str, threshold: float = 0.05 Check if two entities are within threshold horizontal (XY) distance.
entity_near_target function entity_name: str, target_pos: Vec3FType \| torch.Tensor, threshold: float = 0.05 Check if an entity is within threshold of a fixed world position.
object_a_is_on_b function entity_a_name: str, entity_b_name: str, xy_threshold: float = 0.03, height_threshold: float = 0.04, height_diff: float = 0.0 Check if object_a is on object_b by comparing height and xy distance of object origins.

eden.managers.terms.terminations.common

Term Form Parameters Summary
cumulative_reward_below_threshold function reward_term: str, per_step_threshold: float, grace_steps: int = 0, check_interval: int = 1 Terminate envs whose running raw reward for reward_term falls below a threshold.
dofs_pos_limit_exceeded function entity_name: str, probability: float = 1.0 Terminate when any DOF position is outside the entity's soft position limits.
dofs_torque_limit_exceeded function entity_name: str, soft_ratio: float = 1.0, probability: float = 1.0 Terminate when any applied DOF torque exceeds soft_ratio * default_dofs_force_limits.
dofs_vel_limit_exceeded function entity_name: str, max_vel: float, probability: float = 1.0 Terminate when any DOF velocity exceeds max_vel in magnitude.
illegal_contact function entity_name: str, illegal_contact_entity_names: list[str] —
illegal_link_contact class IllegalLinkContact entity_name: str = 'robot', force_threshold: float = 1.0, links_name: list[str] = [] Terminate when any of the named links carries a net contact force above force_threshold.
metric_above class MetricAbove metric_name: str = '', threshold: float = 0.0 Terminate the envs in which the named metric's cached value is strictly above threshold.
on_failure function — —
on_metric_success class OnMetricSuccess metric_name: str = '' Terminate the envs in which the named metric term reports success this step.
on_success function — —
time_out function — —

eden.managers.terms.terminations.locomotion

Term Form Parameters Summary
base_orientation_pitch_greater_than function entity_name: str, threshold: float Terminate when the base pitch exceeds threshold degrees.
base_orientation_roll_greater_than function entity_name: str, threshold: float Terminate when the base roll exceeds threshold degrees.
root_height_below_minimum function entity_name: str, minimum_height: float, terrain_entity_name: str \| None = None, relative: bool = False Terminate when the entity's base sinks below minimum_height above the ground.

eden.managers.terms.terminations.manipulation

Term Form Parameters Summary
object_out_of_reach function entity_name: str, object_entity_name: str, object_link_name: str \| None = None, max_dist: float Terminate when the base is over max_dist from the object in xy.

eden.managers.terms.terminations.tracking

Term Form Parameters Summary
bad_anchor_ori function entity_name: str = 'robot', anchor_link_name: str = 'torso_link', threshold: float = 0.01 Terminate when the anchor's projected-gravity z diverges from the motion ref's.
bad_anchor_pos_z_only function entity_name: str = 'robot', anchor_link_name: str = 'torso_link', threshold: float = 0.01, threshold_adaptive: bool = False, down_threshold: float = 0.0, root_height_threshold: float = 0.5 Terminate when anchor link's |z| error vs motion ref exceeds threshold.
bad_base_ori function entity_name: str, threshold: float Terminate when a free base's projected-gravity z diverges from the motion ref's by more than threshold.
bad_motion_link_pos_z_only class BadMotionLinkPosZOnly anchor_link_name: str = 'torso_link', down_threshold: float = 0.0, entity_name: str = 'robot', links_name: list[str] = [], root_height_threshold: float = 0.5, threshold: float = 0.01, threshold_adaptive: bool = False Terminate when any tracked link's |z| error vs the motion ref exceeds threshold.
motion_base_orientation_tracking_error_above function entity_name: str, threshold: float Terminate when base quat-error magnitude (wxyz) exceeds threshold.
motion_base_pose_tracking_break class MotionBasePoseTrackingBreak entity_name: str = 'object', pos_threshold: float = 0.1, rot_threshold: float = 1.0 Base-pose deviation gate vs the current motion frame.
motion_base_position_tracking_error_above function entity_name: str, threshold: float Terminate when world-frame base-position L2 error exceeds threshold.
motion_dofs_pos_tracking_error_above function entity_name: str, threshold: float, dofs_name: list[str] \| None = None, reduction: Literal['mean', 'max'] = 'max' Terminate when per-DOF |q − q_ref| reduction exceeds threshold.
motion_ends function entity_name: str Terminate when the motion buffer's current lookahead frame is invalid.
motion_link_orientation_tracking_error_above function entity_name: str, links_name: list[str], threshold: float, reduction: Literal['mean', 'max'] = 'max' Terminate when link quat-error reduction exceeds threshold.
motion_link_position_tracking_error_above function entity_name: str, links_name: list[str], threshold: float, reduction: Literal['mean', 'max'] = 'max' Terminate when link-position L2 error reduction exceeds threshold.

eden.managers.terms.terminations.velocity_tracking

Term Form Parameters Summary
fell_over function entity_name: str, limit_angle: float Terminate when the robot leans too far from vertical.

command terms

7 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every command term also accepts: debug_vis: bool = False, resampling_time_range: tuple[float, float] = None

eden.managers.terms.commands.gait

Term Form Parameters Summary
gait_phase_command class GaitPhaseCommand gait_frequency: float = 1.25, num_feet: int = 2, phase_offset: float = 3.141592653589793, stand_phase_value: float = 3.141592653589793, stand_velocity_threshold: float = 0.01, velocity_command_name: str \| None = None Command generator that maintains a cyclic gait phase for each foot.

eden.managers.terms.commands.mimic

Term Form Parameters Summary
motion_command class MotionCommand adaptive_alpha: float = 0.001, adaptive_failure_rate_max_over_mean: float = 10.0, adaptive_kernel_size: int = 1, adaptive_lambda: float = 0.8, adaptive_uniform_ratio: float = 0.1, anchor_link_name: str = 'torso_link', base_joint_name: str \| None = None, base_link_name: str \| None = None, dofs_position_range: tuple[float, float] = (-0.1, 0.1), entity_name: str = '', ghost_entity_name: str = '', links_name: list[str] = ['pelvis', 'left_hip_roll_link', 'left_knee_link', 'left_ankle_roll_link', 'right_hip_roll_link', 'right_knee_link', 'right_ankle_roll_link', 'torso_link', 'left_shoulder_roll_link', 'left_elbow_link', 'left_wrist_yaw_link', 'right_shoulder_roll_link', 'right_elbow_link', 'right_wrist_yaw_link'], motion_file: str = 'motion.npz', motion_files: list[str] = [], pose_range: dict[str, tuple[float, float]] = {}, sampling_mode: Literal['adaptive', 'uniform', 'start'] = 'adaptive', velocity_range: dict[str, tuple[float, float]] = {} Motion command for mimicking one or more motion clips.

eden.managers.terms.commands.oracle

Term Form Parameters Summary
uniform_se3_command class UniformSE3Command pitch_range: tuple[float, float] = (-3.141592653589793, 3.141592653589793), roll_range: tuple[float, float] = (-3.141592653589793, 3.141592653589793), x_range: tuple[float, float] = (0.3, 0.5), y_range: tuple[float, float] = (-0.2, 0.2), yaw_range: tuple[float, float] = (-3.141592653589793, 3.141592653589793), z_range: tuple[float, float] = (0.2, 0.4) Command that samples SE(3) translation and rotation command.
uniform_t3_command class UniformT3Command marker_color: tuple[float, float, float, float] = (0.1, 0.9, 0.1, 0.85), marker_entity_name: str = '', marker_frame_entity: str = '', marker_radius: float = 0.03, x_range: tuple[float, float] = (0.3, 0.5), y_range: tuple[float, float] = (-0.2, 0.2), z_range: tuple[float, float] = (0.2, 0.4) Command that samples T(3) translation command.

eden.managers.terms.commands.velocity

Term Form Parameters Summary
constant_velocity_command class ConstantVelocityCommand ang_vel_z_range: tuple[float, float] = (-1.0, 1.0), command_value: tuple[float, float, float] = (0.0, 0.0, 0.0), entity_name: str = '', lin_vel_x_range: tuple[float, float] = (-1.0, 1.0), lin_vel_y_range: tuple[float, float] = (-1.0, 1.0) SE(2) velocity command held at a fixed value instead of resampled.
operator_velocity_command class OperatorVelocityCommand ang_vel_z_range: tuple[float, float] = (-1.0, 1.0), command_value: tuple[float, float, float] = (0.0, 0.0, 0.0), device_name: str = 'keyboard', device_options: dict = {}, entity_name: str = '', lin_vel_x_range: tuple[float, float] = (-1.0, 1.0), lin_vel_y_range: tuple[float, float] = (-1.0, 1.0) SE(2) velocity command driven live by a human, from a keyboard or a gamepad.
uniform_velocity_command class UniformVelocityCommand ang_vel_z_range: tuple[float, float] = (0.0, 0.0), entity_name: str = '', heading_command: bool = False, heading_control_stiffness: float = 1.0, heading_range: tuple[float, float] \| None = None, lin_vel_x_range: tuple[float, float] = (0.0, 0.0), lin_vel_y_range: tuple[float, float] = (0.0, 0.0), rel_heading_envs: float = 1.0, rel_standing_envs: float = 0.0 SE(2) velocity command sampled from a uniform distribution.

event terms

32 registered.

  • Function terms: EventTerm.configure(func=events.<term>, params={...}) — from eden import events, from eden.terms import EventTerm
  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every event term also accepts: interval_range_s: tuple[float, float] \| None = None, is_global_time: bool = False, min_step_count_between_reset: int = 0, mode: EventMode = EventMode.RESET, priority: int = 0

eden.managers.terms.events.domain_rand

Term Form Parameters Requires Summary
apply_external_force class ApplyExternalForce entity_name: str = 'robot', force_x_range: Vec2FType = (0.0, 0.0), force_y_range: Vec2FType = (0.0, 0.0), force_z_range: Vec2FType = (0.0, 0.0), links_name: list[str] = [], local: bool = False, prob: float = 1.0, ref: str = 'link_origin' — Apply a randomized external force on specified links.
apply_external_torque class ApplyExternalTorque entity_name: str = 'robot', links_name: list[str] = [], local: bool = False, prob: float = 1.0, ref: str = 'link_origin', torque_x_range: Vec2FType = (0.0, 0.0), torque_y_range: Vec2FType = (0.0, 0.0), torque_z_range: Vec2FType = (0.0, 0.0) — Apply a randomized external torque on specified links.
erfi50 class ERFI50 action_term_name: str = '', erfi_ratio: float = 0.5, lower_bound: float = -0.7777777777777778, upper_bound: float = 0.7777777777777778 — ERFI-50 noise: 50% Random Actuation Offset (RAO) + 50% Random Force Injection (RFI).
push_by_velocity class PushByVelocity base_joint_name: str \| None = None, entity_name: str = 'robot', velocity_range: dict[str, Vec2FType] = {} — Periodically add a random velocity to a free base.
push_set_planar_velocity class PushSetPlanarVelocity base_joint_name: str \| None = None, entity_name: str = 'robot', velocity_xy_range: Vec2FType = (-0.5, 0.5) — Periodically SET the base planar velocity to a random value.
randomize_com_shift class RandomizeComShift com_shift_x_range: Vec2FType = (-0.01, 0.01), com_shift_y_range: Vec2FType = (-0.01, 0.01), com_shift_z_range: Vec2FType = (-0.01, 0.01), entity_name: str = 'robot', links_name: list[str] = [] EnvOptions(batch_links_info=True) Offset the named links' centres of mass, per env.
randomize_constant_torque_kick class RandomizeConstantTorqueKick action_term_name: str = '', apply_as_ratio: bool = False, entity_name: str = 'robot', torque_kick_range: Vec2FType = (0.0, 0.01) — Randomize the torque magnitude of a ConstantTorqueKick action modifier.
randomize_deadband_epsilon class RandomizeDeadbandEpsilon action_term_name: str = '', apply_as_ratio: bool = False, deadband_epsilon_range: Vec2FType = (0.0, 0.01), entity_name: str = 'robot' — Randomize the position-error threshold of a Deadband action modifier.
randomize_dofs_pos_offset class RandomizeDofsPosOffset action_term_name: str \| list[str] \| None = None, dofs_pos_range: Vec2FType = (-0.01745, 0.01745), entity_name: str = '' — Per-env joint-position offset on joint position controllers (encoder bias).
randomize_friction_ratio class RandomizeFrictionRatio entity_name: str = 'robot', friction_range: Vec2FType = (0.3, 1.2), links_name: list[str] = [] — Randomize sliding friction on links_name to absolute values, not a scale.
randomize_gear_backlash class RandomizeGearBacklash action_term_name: str = '', apply_as_ratio: bool = False, backlash_range: Vec2FType = (0.0, 0.01), entity_name: str = 'robot' — Randomize the one-sided target offset of a GearBacklash action modifier.
randomize_kp_kd_gains class RandomizeKpKdGains action_term_name: str \| None = None, entity_name: str = 'robot', kd_range: Vec2FType = (0.9, 1.1), kp_range: Vec2FType = (0.9, 1.1) EnvOptions(batch_dofs_info=True) Scale an entity's joint PD gains by a random factor.
randomize_link_mass_scale class RandomizeLinkMassScale entity_name: str = 'robot', links_name: list[str] = [], mass_scale_range: Vec2FType = (0.9, 1.1) EnvOptions(batch_links_info=True) Multiplicative per-link mass randomization.
randomize_mass_shift class RandomizeMassShift entity_name: str = 'robot', links_name: list[str] = [], mass_shift_range: Vec2FType = (-1.0, 3.0) EnvOptions(batch_links_info=True) Add a per-env offset to the named links' masses.
randomize_motor_strength class RandomizeMotorStrength action_term_name: str = '', entity_name: str = 'robot', motor_strength_range: Vec2FType = (0.9, 1.1) — Randomize a MotorStrength action modifier's scalar (default factor 0.9 to 1.1).
randomize_startup_dofs_pos class RandomizeStartupDofsPos apply_as_ratio: bool = False, dofs_pos_range: Vec2FType = (-0.01745, 0.01745), entity_name: str = 'robot' — Randomize the absolute joint positions of an entity's DOFs (default mode: reset).
randomize_startup_dofs_pos_bias class RandomizeStartupDofsPosBias action_terms_name: list[str] = [], dofs_pos_range: Vec2FType = (-0.01745, 0.01745), entity_name: str = 'robot' — Bake a per-env joint-zero bias into entity.default_dofs_pos at startup.
randomize_torque_noise class RandomizeTorqueNoise action_term_name: str = '', rfi_scale: float = 0.5 — Residual Force Injection (RFI) — adds random torque noise to actuated joints.
set_random_dofs_pos class SetRandomDofsPos apply_as_ratio: bool = True, dofs_pos_range: Vec2FType = (0.0, 0.2), entity_name: str = 'robot' — Set the joint positions of an entity's DOFs to a random position (default mode: reset).

eden.managers.terms.events.motion

Term Form Parameters Summary
object_reference_state_initialization class ObjectReferenceStateInitialization depenetration_window_s: float = 0.1, entity_name: str = 'object', max_depenetration_velocity: float \| None = None, xy_range: float = 0.0 On reset, set a free rigid object from the motion reference.
reference_state_initialization class ReferenceStateInitialization base_joint_name: str \| None = None, depenetration_window_s: float = 0.1, dofs_position_range: tuple[float, float] = (-0.1, 0.1), entity_name: str = 'robot', max_depenetration_velocity: float \| None = None, overall_noise_scale: float = 1.0, pose_range: dict[str, tuple[float, float]] = {}, velocity_range: dict[str, tuple[float, float]] = {} On reset, initialise robot state from the motion reference (RSI).

eden.managers.terms.events.placement

Term Form Parameters Summary
place_constant_xy function entity_name: str, support_entity_name: str, pos_xy: tuple[float, float], frame: Literal['world', 'local'] = 'world', support_idx: int \| None = None —
place_from_layouts class PlaceFromLayouts layouts: list[dict[str, tuple[float, float, float]]] = [], support_entity_name: str = 'plane' Each reset env draws one of a fixed list of layouts and places every entity the layout names.
place_gaussian class PlaceGaussian entity_name: str = '', mu_x: float = 0.0, mu_y: float = 0.0, support_entity_name: str = '', var_x: float = 0.1, var_y: float = 0.1 Event term that places an entity on a support surface via Gaussian-weighted sampling.
place_range_xy function entity_name: str, support_entity_name: str, range_x: tuple[float, float], range_y: tuple[float, float], range_roll: tuple[float, float] = (0, 0), range_pitch: tuple[float, float] = (0, 0), range_yaw: tuple[float, float] = (0, 0), frame: Literal['world', 'local'] = 'world', support_idx: int \| None = None —
place_uniform function entity_name: str, support_entity_name: str, samples_per_area: int = 100 —

eden.managers.terms.events.resets

Term Form Parameters Summary
reset_base_state_uniform function entity_name: str, pos_x_range: Vec2FType = (-0.5, 0.5), pos_y_range: Vec2FType = (-0.5, 0.5), pos_z_range: Vec2FType = (0.0, 0.0), roll_range: Vec2FType = (0.0, 0.0), pitch_range: Vec2FType = (0.0, 0.0), yaw_range: Vec2FType = (-3.14, 3.14) Reset the base to its default pose, offset and rotated at random.
reset_dofs_by_offset function entity_name: str, dofs_pos_range: Vec2FType = (-0.1, 0.1), dofs_vel_range: Vec2FType \| None = None Reset DOFs to default + U(offset), clamped to soft limits.
reset_dofs_by_scale function entity_name: str, dofs_pos_scale_range: Vec2FType = (0.95, 1.05) Reset DOFs to default * U(scale) per env/DOF; velocities to 0.
reset_dofs_by_scale_and_offset function entity_name: str, dofs_scale_range: Vec2FType = (0.8, 1.2), dofs_offset_range: Vec2FType = (-0.1, 0.1) Reset DOFs to default * U(scale) + U(offset); velocities to 0.

eden.managers.terms.events.solver

Term Form Parameters Summary
set_contact_sol_params function sol_params: tuple[float, ...], entity_links: dict[str, list[str] \| None] Set constraint-solver (solref/solimp) parameters on selected entity geoms.

eden.managers.terms.events.state_buffer

Term Form Parameters Summary
reset_from_state_buffer class ResetFromStateBuffer category_weights: dict[str, float] \| None = None, path: str \| None = None, sampler: str \| None = None Restore each resetting env to one stored row of a reset-state buffer file.

curriculum terms

6 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names

eden.managers.terms.curricula.locomotion

Term Form Parameters Summary
average_episode_length_tracker class AverageEpisodeLengthTracker num_compute_average_epl: int = 1000 Track the running mean of episode length.

eden.managers.terms.curricula.motion

Term Form Parameters Summary
motion_base_pose_threshold_curriculum class MotionBasePoseThresholdCurriculum entity_name: str = 'object', pos_threshold_max: float = 0.1, pos_threshold_min: float = 0.05, rot_threshold_max: float = 1.0, rot_threshold_min: float = 0.5, success_ema_alpha: float = 0.05, success_rate_high: float = 0.999, success_rate_low: float = 0.9, termination_term_name: str = 'object_pose_break' Tighten a MotionBasePoseTrackingBreak gate as success rises.

eden.managers.terms.curricula.rewards

Term Form Parameters Summary
penalty_curriculum class PenaltyCurriculum degree: float = 0.00025, initial_scale: float = 0.1, level_down_threshold: float = 150.0, level_up_threshold: float = 750.0, max_scale: float = 1.0, min_scale: float = 0.0, num_episode_average: int = 1000, reward_term_names: list[str] = [], reward_term_tags: list[str] = [], tracker_name: str \| None = None Curriculum that gradually scales reward weights for a set of reward terms.
stage_reward_weight_curriculum class StageRewardWeightCurriculum reward_term_name: str = '', weight_stages: list[tuple[int, float]] = [] Curriculum that sets a reward term's weight at given training steps.

eden.managers.terms.curricula.success_guided

Term Form Parameters Summary
success_guided_sampling class SuccessGuidedSampling concentration: float = 5.0, floor: float = 1e-08, history: int = 100, success_term: str \| None = None, target: float = 0.66, temperature: float = 2.0 Draw each resetting env's reset configuration with probability peaked at a target success rate.

eden.managers.terms.curricula.velocity

Term Form Parameters Summary
velocity_command_curriculum class VelocityCommandCurriculum command_name: str = 'velocity_command', velocity_stages: list[dict] = [] Curriculum that progressively expands velocity command ranges.

metric terms

20 registered.

  • Function terms: MetricTerm.configure(func=metrics.<term>, params={...}) — from eden import metrics, from eden.terms import MetricTerm
  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every metric term also accepts: contributes_to_success: bool = True, direction: MetricDirection = MetricDirection.HIB, is_cumulative: bool = False, metric_mode: MetricMode = MetricMode.INTERVAL, success_threshold: float = 1.0

eden.managers.terms.metrics.articulation

Term Form Parameters Summary
joint_angle_at_target function entity_name: str, joint_name: str, target_angle: float, threshold: float = 0.05 Check if a single DOF is within threshold of target_angle.

eden.managers.terms.metrics.boolean

Term Form Parameters Summary
metric_term_and class MetricTermAND terms: list[MetricTermOptions] = [] Metric term that returns the element-wise minimum of its child terms.
metric_term_not class MetricTermNOT term: MetricTermOptions = None Metric term that inverts a single child term (1.0 - value).
metric_term_or class MetricTermOR terms: list[MetricTermOptions] = [] Metric term that returns the element-wise maximum of its child terms.

eden.managers.terms.metrics.containment

Term Form Parameters Summary
object_above_height function entity_name: str, height: float, relative: bool = False Check if an entity's root z-position is above height.
object_bottom_above_height function entity_name: str, height: float Lowest point of the entity above height.
object_in_region function entity_name: str, region_min: list[float], region_max: list[float], relative: bool = False Check if an entity's root position is inside an axis-aligned box.

eden.managers.terms.metrics.error

Term Form Parameters Summary
error_vel_xy function command_name: str = 'velocity' —
error_vel_yaw function command_name: str = 'velocity' —

eden.managers.terms.metrics.grasp

Term Form Parameters Summary
is_grasping class IsGrasping force_threshold: float = 1.0, left_gripper_link_name: str = 'left_gripper_pad', right_gripper_link_name: str = 'right_gripper_pad', robot_name: str = 'robot' Detect a parallel-jaw grasp via contact force alignment.
object_lifted function entity_name: str, min_height: float Check if an entity has been lifted above min_height.

eden.managers.terms.metrics.proximity

Term Form Parameters Summary
ee_near_entity class EeNearEntity ee_link_names: list[str] = [], entity_name: str = 'obj', robot_name: str = 'robot', threshold: float = 0.05 Check if the mean end-effector position is within threshold of a target entity.
entity_distance function entity_a_name: str, entity_b_name: str Distance between two entity root positions.
entity_distance_xy function entity_a_name: str, entity_b_name: str Horizontal (XY) distance between two entity root positions.
entity_near_entity_xy function entity_a_name: str, entity_b_name: str, threshold: float = 0.05 Check if two entities are within threshold horizontal (XY) distance.
entity_near_target function entity_name: str, target_pos: Vec3FType \| torch.Tensor, threshold: float = 0.05 Check if an entity is within threshold of a fixed world position.
object_a_is_on_b function entity_a_name: str, entity_b_name: str, xy_threshold: float = 0.03, height_threshold: float = 0.04, height_diff: float = 0.0 Check if object_a is on object_b by comparing height and xy distance of object origins.
object_a_within_b_xy function entity_a_name: str, entity_b_name: str, min_fraction: float = 0.8 min_fraction of entity_a's footprint lies over entity_b's.

eden.managers.terms.metrics.sequence

Term Form Parameters Summary
rubric_metric_term class RubricMetricTerm criteria: list[CriterionOptions] = [] Fraction of rubric criteria met, each after its dependencies.
sequential_metric_term class SequentialMetricTerm allow_skip: bool = False, phases: list[PhaseOptions] = [] Metric that tracks ordered sub-goals (phases).

recorder terms

7 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names

eden.managers.terms.recorders.actions

Term Form Parameters Summary
action_recorder class ActionRecorder — —

eden.managers.terms.recorders.observations

Term Form Parameters Summary
observation_recorder class ObservationRecorder groups: list[str] \| None = None Record observation groups at the start of each step, as obs/<group>.

eden.managers.terms.recorders.rl

Term Form Parameters Summary
rl_step_recorder class RLStepRecorder include_done: bool = True, include_reward: bool = True, include_terminated: bool = True, include_timeout: bool = True, include_timestamp: bool = True Record per-step RL buffers (reward, done, terminated, timeout, timestamp).

eden.managers.terms.recorders.sensors

Term Form Parameters Summary
sensor_recorder class SensorRecorder record_post_reset_snapshot: bool = True, use_ground_truth: bool = False Record sensor outputs during simulation.

eden.managers.terms.recorders.states

Term Form Parameters Summary
initial_state_recorder class InitialStateRecorder include_dofs_vel: bool = True, include_pos_quat: bool = True, include_qpos: bool = True Record per-episode initial entity states right after reset.
state_recorder class StateRecorder entity_name: str \| list[str] = 'robot', include_dofs_vel: bool = True, include_pos_quat: bool = True, include_qpos: bool = True Record the state of the environment at the beginning of each step.

eden.managers.terms.recorders.sysid

Term Form Parameters Summary
sys_id_recorder class SysIDRecorder entity_name: str = 'robot', include_base: bool = True, include_torque: bool = True Record the proprioceptive trace needed to rebuild a sysid Trajectory.

motion terms

1 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every motion term also accepts: adaptive_alpha: float = 0.001, adaptive_failure_rate_max_over_mean: float = 10.0, adaptive_kernel_size: int = 1, adaptive_lambda: float = 0.8, adaptive_motion_weights: bool = False, adaptive_sampling: bool = False, adaptive_uniform_ratio: float = 0.1, compute_per_motion_metrics: bool = False, dataset_options: DatasetOptions \| None = None, entities_map: dict[str, str] = {}, env_motion_groups: MotionGroupOptions \| None = None, env_starting_stub_sampling_strategy: Literal['independent', 'concat_motion_bins'] = 'independent', freeze_at_timestep_zero_prob: float = 0.0, log_motion_id_to_filename: bool = False, log_per_motion_metrics: bool = False, metric_anchor_link_name: str \| None = None, motion_bin_length_s: float \| None = None, motion_start_from_middle_range: tuple[float, float] \| list[float] = (0.0, 0.0), motion_weight_failure_amplify: float = 2.0, motion_weight_failure_rate_max_over_mean: float = 200.0, motion_weight_floor: float = 0.001, motion_weight_success_discount: float = 0.999, motion_weight_uniform_mix: float = 0.0, motion_weight_update_every_n_iters: int = 1, motion_weight_update_mode: Literal['compound', 'snapshot'] = 'snapshot', motion_weights: str \| list[float] \| None = None, start_at_timestep_zero_prob: float = 0.0, target_dofs_name: dict[str, str \| list[str]] = {}, target_links_name: dict[str, str \| list[str]] = {}

eden.managers.motion_manager

Term Form Parameters Summary
motion_term class MotionTerm — —

noise_model terms

3 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names
  • Every noise_model term also accepts: operation: NoiseOperation = NoiseOperation.ADD

eden.managers.modifiers.observations.noise

Term Form Parameters Summary
constant_noise class ConstantNoise bias: torch.Tensor \| float = 0.0 —
gaussian_noise class GaussianNoise mean: torch.Tensor \| float = 0.0, std: torch.Tensor \| float = 1.0 —
uniform_noise class UniformNoise n_max: torch.Tensor \| float = 1.0, n_min: torch.Tensor \| float = -1.0 —

observation_modifier terms

2 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names

eden.managers.modifiers.observations.temporal

Term Form Parameters Summary
exponential_moving_average class ExponentialMovingAverage alpha: float \| None = None, backfill: bool = True Exponential moving average, updated once per control step.
observation_delay class ObservationDelay backfill: bool = True, control_steps: int \| None = None Delivers the frame the term produced control_steps control steps earlier.

action_modifier terms

10 registered.

  • Class terms: <ClassName>.configure(<field>=...) — import it from the module its section names

eden.managers.modifiers.actions.actuators

Term Form Parameters Summary
action_delay class ActionDelay delay_range_s: tuple[float, float] \| None = None, delay_range_steps: tuple[int, int] \| None = None Delays the command the actuator acts on by a random number of physics steps, drawn per episode.
compose class Compose modifiers: tuple[ActionModifierOptions, ...] \| list[ActionModifierOptions] = () Chains multiple action modifiers in sequence.
constant_torque_kick class ConstantTorqueKick activation_epsilon: LaxFArrayType = 0.0, direction_source: str = 'pos_err', torque_kick: LaxFArrayType = 0.0 Adds a flat directional torque on top of computed control torque.
deadband class Deadband deadband_epsilon: LaxFArrayType = 0.0 Zeroes PD control torque inside a position-error deadband.
effort_clip class EffortClip braking_torque_limit: LaxFArrayType \| None = None, driving_torque_limit: LaxFArrayType \| None = None, full_torque_speed: LaxFArrayType \| None = None, no_load_speed: LaxFArrayType \| None = None Clips torques to motor torque-speed (T-N) curve limits.
envelope_clip class EnvelopeClip braking_torque_limit: LaxFArrayType \| None = None, driving_torque_limit: LaxFArrayType \| None = None, full_torque_speed: LaxFArrayType \| None = None, no_load_speed: LaxFArrayType \| None = None Clips target positions so PD torques stay within the motor torque-speed envelope.
friction_model class FrictionModel dynamic_friction: LaxFArrayType \| None = None, friction_activation_vel: LaxFArrayType \| None = None, friction_offset: LaxFArrayType = 0.0, static_friction: LaxFArrayType \| None = None Applies tanh-based static + viscous dynamic friction to torques.
gear_backlash class GearBacklash backlash: LaxFArrayType = 0.0, initial_side: LaxFArrayType = 0.0, reversal_threshold: LaxFArrayType = 0.0, takeup_rate: LaxFArrayType = 1.0 Adds direction-dependent gear slop to position targets before PD control.
motor_strength class MotorStrength motor_strength: LaxFArrayType = 1.0 Scales control torques by a motor strength multiplier.
torque_offset class TorqueOffset torque_offset: LaxFArrayType = 0.0 Adds a constant offset to the control torques.