Genesis icon indicating copy to clipboard operation
Genesis copied to clipboard

[Feature]: Support rescaling rigid entity dynamically.

Open SamratSahoo opened this issue 2 months ago • 2 comments

What feature or enhancement are you proposing?

Enable the ability to scale the size of an entity dynamically after a scene has been built.

Motivation

In robot learning, scale randomization is a commonly used technique for domain randomization. During sim2real experiments, I found that the ability to randomly scale entities would significantly enhance robustness of learned policies. Currently, I have to pre-spawn all scaled versions of objects and swap them between episodes, which is inefficient, especially for parallel environments. I believe that scale randomization would be high ROI for Genesis.

Potential Benefit

  • [ ] Greatly increase the scope of domain randomization possible in Genesis.
  • [ ] Enable training of more robust policies without compromising training speed.
  • [ ] Reduce overhead and complexity associated with pre-spawning multiple scaled objects

What is the expected outcome of the implementation work?

  • [ ] Ability to scale an entity using a floating point factor.
  • [ ] Be able to set this scale after the scene has been built through some method (i.e., entity.set_scale(0.7))

Additional information

Without dynamic scaling, training either becomes slower (due to pre-spawning + having to reduce number of parallel environments to support memory constraints) or suffers from reduced domain randomization. If this feature is not planned for Genesis, I could attempt to implement it if given a roadmap outlining the required steps for implementation.

SamratSahoo avatar Oct 28 '25 22:10 SamratSahoo

I think this is somewhat related to https://github.com/Genesis-Embodied-AI/Genesis/pull/1589 It would be nice if we can have entity.set_scale(0.7, envs_idx=envs_idx)

Kashu7100 avatar Oct 28 '25 23:10 Kashu7100

This would be super helpful for me too.

Satvik1701 avatar Oct 28 '25 23:10 Satvik1701