Conversation
|
Hi maintainers, could you please review this cricket task integration for acceptance and merge it if it meets the contribution requirements? The public fork now includes the proposed task configs and README video highlights, linked from Gym-Cricket. Batting video | Bowling video. The videos illustrate Gym-Cricket's SKRL PPO/A2C checkpoints; this PR adds the separate UniLab PPO task configs. Fork-only README highlights are not added to this PR's diff. CI and Docs still require maintainer action. Happy to address any remaining changes needed for acceptance. Thank you! |
|
Hi @kishanpb, thank you very much for the PR and for the excellent preparation around it—the external package, configs, tests, reproduction notes, and demo videos are all really appreciated. After reviewing it against our current roadmap, we don’t plan to land additional task-specific configs in the core UniLab repository for now. We are moving toward keeping UniLab as the shared environment/training/backend surface, while concrete task families are owned in downstream task repositories. Recent examples include: We are also planning a dedicated task-collection repository for new tasks; the name is not finalized yet, but the direction is something like Gym-Cricket already fits the external task-package model very well. Once the task-collection repository is ready, this Thanks again for the contribution and for following the UniLab extension contracts so carefully. Given the roadmap change, |
|
Thank you, @TATP-233, for the thoughtful review and for explaining the roadmap. Keeping concrete task families downstream makes sense. I have renamed my public integration fork to Cricket-Gym-Unilab. It contains the cricket task configurations and README video highlights, with the environment package maintained in Gym-Cricket. Would you consider adding Cricket-Gym-Unilab under the Ecosystem section of the UniLab README as a community-maintained cricket integration? That would help users discover it without adding task-specific configs to core or implying upstream endorsement. I look forward to the future |
|
Sure,thank you! |
Summary
cricket_motor(CricketMotorSwing) andcricket_bowling(CricketDeliveryStride), plus two regenerated support-matrix rows: 3 files, 52 insertions, no upstream Python changes.unilab.tasksentry point. No default dependency, registry lifecycle, RL implementation, backend capability, or CI workflow changes.policyobservation groups, disabled playback, and the adapter's internal reward source. The backend NaN guard is disabled because simulator state belongs to the external Gymnasium adapter; task tests still check finite observations, rewards, and PPO weights.CricketMotorSwingCricketDeliveryStrideBoth tasks support physical right/left variants via
env.handedness. The generated matrix intentionally shows-without the optional package installed; this PR does not claim built-in backend support. External setup and reproduction are documented in the package; UniLab's existing CLI workflow is unchanged.Linked Work
main, selected before implementation; tested basedb1a6e5b3dbe4dd096b16a517837f2d46dba8164(1.2.0).4975ea852ffa20e691a97986bd43048c8fc5a02c.Validation
make test-allpassed on the final local head before this PR was created.On macOS CPU,
make test-allpassed lint/type checks, 1,589 tests (27 skipped, 1 expected failure; 848 slow tests deselected), and benchmark entrypoint smoke checks (34/35 module-mode, 35/36 script-mode; one optional MLX skip in each). Focused support-matrix tests passed 13/13 on the same tree. External adapter tests passed 8/8. The clean Python 3.11 package suite passed 75 tests, with two optional UniLab modules skipped; both retained-policy videos regenerated successfully in that environment.Commands run during setup and validation from the UniLab checkout (the local public-package checkout is named
gym_cricket_public):After the public-source install, the following CLI invocation was run for each task (
cricket_motor,cricket_bowling) and hand (right,left), with a separate temporary log directory per run:All four actual CLI runs exited successfully. These are bounded runtime checks, not convergence or benchmark results. Temporary smoke checkpoints/logs were removed. The adapter tests additionally verify changed finite bowling PPO weights over two iterations per hand.
Installation states are intentionally separate: UniLab's built-in registry-closure tests expect only built-in tasks and fail if an external plugin auto-registers extra tasks. Initial missing-asset/optional-dependency failures were resolved with the official asset helper and Motrix package, without modifying upstream tests or source. Demo replay pins MuJoCo 3.8.0; the UniLab 1.2.0 adapter/CLI checks used its MuJoCo 3.11.0 environment. No cross-version identical-trajectory claim is made.
Remote CI route: base
main; current-head CI and Docs workflows are awaiting maintainer approval (action_required) for head4975ea852ffa20e691a97986bd43048c8fc5a02c, as checked on 2026-09-12. They have not passed or failed the code checks yet. Maintainer review and applicable current-head CI remain required before merge.Impact
Artifacts
The videos/results use SKRL JAX PPO/A2C, not UniLab-trained checkpoints. They include highlights, misses, and full-pool scorecards. Batting is reference-assisted; bowling is a target drill without a batter, and the left-arm evaluation reflects the same trained checkpoint rather than training independently. These are one-seed exploratory evaluations, not an algorithm ranking, learned whole-body locomotion, biomechanical certification, or full-match cricket. Delivery-foot checks do not cover every no-ball rule. No native UniLab A2C result is claimed.
Checklist