Repository: Genesis-Embodied-AI/Genesis
File: tests/test_render.py (Python)

Code before:
            substeps=6,
        ),
        pbd_options=gs.options.PBDOptions(
            particle_size=1e-2,
        ),
        fem_options=gs.options.FEMOptions(
            use_implicit_solver=True,  # Implicit solver allows for larger timestep without failure on GPU backend
            n_pcg_iterations=40,  # Reduce number of iterations to speedup runtime
        ),
        renderer=renderer,
        show_viewer=show_viewer,
        show_FPS=False,
    )

    # Add ground plane
    scene.add_entity(
        morph=gs.morphs.Plane(),
        surface=gs.surfaces.Aluminium(
            ior=10.0,
        ),
    )

    # Add PBD cloth with checker texture
    scene.add_entity(
        morph=gs.morphs.Mesh(
            file="meshes/uv_plane.obj",
            scale=0.4,
            pos=(-0.2, 0.0, 0.4),
        ),
        material=gs.materials.PBD.Cloth(),
        surface=gs.surfaces.Default(
            diffuse_texture=gs.textures.ImageTexture(
                image_path="textures/checker.png",
            ),
            vis_mode="visual",
        ),
    )

    # Add FEM elastic object with checker texture
    scene.add_entity(
        morph=gs.morphs.Mesh(
            file="meshes/duck.obj",
            scale=0.1,
            pos=(0.2, 0.0, 0.2),
        ),
        material=gs.materials.FEM.Elastic(E=1e5, nu=0.4),
        surface=gs.surfaces.Default(
            diffuse_texture=gs.textures.ImageTexture(
                image_path="textures/checker.png",
            ),
            vis_mode="visual",

Review comment (suggestion):
Use `get_hf_dataset`, eg:
```python
    asset_path = get_hf_dataset(pattern="heavy_three_joint_link.xml")
    robot_1 = scene.add_entity(
        gs.morphs.MJCF(
            file=f"{asset_path}/heavy_three_joint_link.xml",
            pos=(-0.2, -0.26, 0.0),
            scale=0.3,
        ),
    )
```

Code after:
            substeps=6,
        ),
        pbd_options=gs.options.PBDOptions(
            particle_size=1e-2,
        ),
        fem_options=gs.options.FEMOptions(
            use_implicit_solver=True,  # Implicit solver allows for larger timestep without failure on GPU backend
            n_pcg_iterations=40,  # Reduce number of iterations to speedup runtime
        ),
        renderer=renderer,
        show_viewer=show_viewer,
        show_FPS=False,
    )

    # Add ground plane
    scene.add_entity(
        morph=gs.morphs.Plane(),
        surface=gs.surfaces.Aluminium(
            ior=10.0,
        ),
    )

    # Add PBD cloth with checker texture
    asset_path = get_hf_dataset(pattern="uv_plane.obj")
    scene.add_entity(
        morph=gs.morphs.Mesh(
            file=f"{asset_path}/uv_plane.obj",
            scale=0.4,
            pos=(-0.2, 0.0, 0.4),
        ),
        material=gs.materials.PBD.Cloth(),
        surface=gs.surfaces.Default(
            diffuse_texture=gs.textures.ImageTexture(
                image_path="textures/checker.png",
            ),
            vis_mode="visual",
        ),
    )

    # Add FEM elastic object with checker texture
    scene.add_entity(
        morph=gs.morphs.Mesh(
            file="meshes/duck.obj",
            scale=0.1,
            pos=(0.2, 0.0, 0.2),
        ),
        material=gs.materials.FEM.Elastic(E=1e5, nu=0.4),
        surface=gs.surfaces.Default(
            diffuse_texture=gs.textures.ImageTexture(
                image_path="textures/checker.png",
            ),