Uh oh!
There was an error while loading. Please reload this page.
feat(gym): add declarative expert program runtime - #497
Merged
Conversation
Make endpoint bindings, timed command frames, transports, routing, safe holds, and profile lowering controller-agnostic. Preserve joint trajectories as optional feedback artifacts and add staged, same-address invocation revision semantics for mobile and whole-body safety.
This was referenced Aug 11, 2026
yuecideng
marked this pull request as ready for review
August 11, 2026 16:46
Greptile SummaryThe PR adds a strict, versioned Expert Program frontend that compiles declarative programs into the existing semantic-skill runtime while preserving normal Gym stepping and dataset lifecycle.
Confidence Score: 5/5The PR appears safe to merge because no blocking failure remains in the eligible follow-up review scope. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| embodichain/lab/gym/envs/expert_program/decoder.py | Implements bounded, path-aware decoding with strict discriminator, field, numeric, and executable-value validation. |
| embodichain/lab/gym/envs/expert_program/compiler.py | Performs static preflight and lowers declarative sequential or parallel program structure into semantic runtime inputs. |
| embodichain/lab/gym/envs/expert_program/bridge.py | Adapts lazy Expert Program execution to demo segments, Gym actions, post-policies, validators, and completion metadata. |
| embodichain/lab/gym/envs/expert_program/simulation_environment.py | Connects simulation-backed scene, runtime, policy, and validation services to the Expert Program environment contract. |
| embodichain/lab/gym/envs/demo.py | Extends demonstration execution with richer segment lifecycle, runtime failure traces, and completion metadata. |
| embodichain/lab/sim/skills/runtime.py | Refines the canonical semantic runtime and row-local lifecycle used by Expert Program execution. |
| embodichain/lab/scripts/run_env.py | Adds launcher support for loading and applying an explicit Expert Program configuration. |
| embodichain/lab/gym/envs/settling.py | Adds reusable batched settling monitors and policies for segment post-processing. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[JSON or YAML Expert Program] --> B[Strict decoder and loader]
B --> C[ExpertProgramCfg]
C --> D[Preflight compiler]
D --> E[Lazy program segments]
E --> F[Semantic SkillRuntime]
F --> G[Atomic action runtime]
G --> H[AtomicDemoBridge]
H --> I[Normal env.step cadence]
I --> J[Settling and validators]
J --> K[Completion and dataset metadata]
Reviews (6): Last reviewed commit: "wip" | Re-trigger Greptile
Make endpoint bindings, timed command frames, transports, routing, safe holds, and profile lowering controller-agnostic. Preserve joint trajectories as optional feedback artifacts and add staged, same-address invocation revision semantics for mobile and whole-body safety.
…2c-runtime-endpoints # Conflicts: # docs/design/declarative_expert_program_plan.md # embodichain/lab/sim/atomic_actions/primitives/coordinated_pickment.py # embodichain/lab/sim/atomic_actions/primitives/coordinated_placement.py # embodichain/lab/sim/atomic_actions/primitives/hand_over.py # embodichain/lab/sim/atomic_actions/primitives/move_end_effector.py # embodichain/lab/sim/atomic_actions/primitives/move_held_object.py # embodichain/lab/sim/atomic_actions/primitives/move_joints.py # embodichain/lab/sim/atomic_actions/primitives/pick_up.py # embodichain/lab/sim/atomic_actions/primitives/place.py # embodichain/lab/sim/atomic_actions/primitives/press.py # embodichain/lab/sim/skills/profiles.py # scripts/tutorials/atomic_action/assemble.py # scripts/tutorials/atomic_action/coordinated_pickment.py # scripts/tutorials/atomic_action/coordinated_placement.py # scripts/tutorials/atomic_action/hand_over.py # scripts/tutorials/atomic_action/move_end_effector.py # scripts/tutorials/atomic_action/move_held_object.py # scripts/tutorials/atomic_action/move_joints.py # scripts/tutorials/atomic_action/place.py # scripts/tutorials/atomic_action/press.py
Remove fallback control periods from motion policies and the atomic action engine. Require planners and custom actions to provide validated timing, propagate explicit interpolation cadence through planning contexts, and update built-ins, tasks, benchmarks, tutorials, docs, and tests. BREAKING CHANGE: planner results with positions must include dt and duration, custom atomic actions must return TimedTrajectory, and fallback_control_dt is removed.
…pr2c-runtime-endpoints # Conflicts: # agent_context/topics/atomic-actions/atomic-actions.md # docs/source/overview/sim/atomic_actions/builtin_actions.md # docs/source/overview/sim/atomic_actions/index.md # docs/source/tutorial/atomic_actions.rst # embodichain/lab/sim/atomic_actions/execution.py # scripts/tutorials/atomic_action/dynamic_obstacle_recovery.py # tests/sim/atomic_actions/test_core.py # tests/sim/atomic_actions/test_engine.py # tests/sim/atomic_actions/test_runner.py
skywhite1024force-pushed
the
feat/declarative-expert-program-runtime
branch
from
August 21, 2026 09:35
f5ec186 to
d6be5c1Compareskywhite1024force-pushed
the
feat/declarative-expert-program-runtime
branch
from
August 21, 2026 11:31
d6be5c1 to
f5ec186Compare…rified-runtime # Conflicts: # agent_context/topics/atomic-actions/atomic-actions.md # docs/source/overview/sim/atomic_actions/index.md # docs/source/overview/sim/semantic_skills.md # docs/source/tutorial/atomic_actions.rst # docs/source/tutorial/semantic_skills.rst # embodichain/lab/sim/atomic_actions/core.py # embodichain/lab/sim/atomic_actions/execution.py # embodichain/lab/sim/atomic_actions/plans.py # embodichain/lab/sim/atomic_actions/primitives/pick_up.py # embodichain/lab/sim/skills/runtime.py # tests/sim/atomic_actions/test_actions.py # tests/sim/atomic_actions/test_engine_per_env.py # tests/sim/skills/test_runtime.py
yuecidengforce-pushed
the
feat/declarative-expert-program-runtime
branch
from
August 22, 2026 15:42
f5ec186 to
bf2f2c7Compare…hub.com/DexForce/EmbodiChain into feat/declarative-expert-program-runtime
Too many files changed for review (120 files, 100 file limit). Bypass the limit by tagging |
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Stack
feat/semantic-skill-runtimeAdd the strict, versioned Expert Program configuration, decoder, loader, preflight compiler, lazy segment runtime, Gym demo bridge, simulation factory, settling policies, validators, and completion metadata.
The environment retains its normal
env.step()cadence and dataset lifecycle. Expert Programs compile into the existing semantic/atomic runtime instead of creating a third workflow engine.Refs #471
Refs #474
Type of change
Screenshots
Not applicable.
Validation
tests/gym/envs/expert_program, demo, settling, registration, and run-env integration testsChecklist