Skip to content

SFSolver docs describe String/Fiber Rope API, but current code exposes Stable Fluid / Smoke only #118

Description

@kstonekuan

The latest Genesis World docs appear to describe an SFSolver rope/cable API that is not present in the current codebase.

The page:

https://genesis-world.readthedocs.io/en/latest/api_reference/engine/solvers/sf_solver.html

describes SFSolver as "String/Fiber" dynamics for 1D structures like ropes, cables, and hair. It also shows usage with:

rope = scene.add_entity(
    gs.morphs.Mesh(file="rope.obj"),
    material=gs.materials.SF.Rope(
        stretch_stiffness=1.0,
        bend_stiffness=0.1,
    ),
)

However, the current main exposes SFSolver as a Stable Fluid solver, and gs.materials.SF only exports Smoke, not Rope. This came up while evaluating Genesis for cable/rope simulation. The documented String/Fiber solver would be the expected primitive for near-inextensible cables, but the current public code appears to only expose Stable Fluid under SFSolver.

To Reproduce

Inspect current main:

$ git clone https://github.com/Genesis-Embodied-AI/genesis-world.git
$ cd genesis-world
$ rg "class Rope|SF\\.Rope|String/Fiber|Stable Fluid" genesis examples tests README.md RELEASE.md
README.md
61:| [PBD: cloth](./examples/tutorials/pbd_cloth.py) | [Stable Fluid: smoke](./examples/smoke.py) | [IPC: robot cloth teleop](./examples/IPC_Solver/ipc_robot_cloth_teleop.py) |

RELEASE.md
745:This release focuses primarily on stability, covering everything from MJCF/URDF parsing to rendering and physics, backend by a new CI infrastructure running more than 200 unit tests on all supported platforms. The most requested Mujoco features that were previously missing have been implemented. Native support of batching has been extended to all solvers except Stable Fluid, motion planning, and rendering via [gs-madrona](https://github.com/Genesis-Embodied-AI/gs-madrona). Finally, support of soft body dynamics has been enhanced, with the introduction of constraints and coupling between soft and rigid body dynamics.
865:* Add a smoke simulator driven by Stable Fluid, along with a demo. (@PingchuanMa)

genesis/engine/solvers/sf_solver.py
11:    Stable Fluid solver for eulerian-based gaseous simulation.

There does not appear to be a gs.materials.SF.Rope class or a string/fiber implementation exposed in the current source.

The SFOptions docs also appear to match the Stable Fluid implementation rather than the String/Fiber page:

https://genesis-world.readthedocs.io/en/latest/api_reference/options/simulator_coupler_and_solver_options/sf_options.html

The options include fields such as res, solver_iters, decay, inlet_pos, inlet_vel, and inlet_s.

Expected behavior

One of the following should be true:

  1. If a String/Fiber rope solver is supported, the docs should point to the correct release/branch and include the actual available API for creating rope/cable entities.
  2. If the current public code only supports Stable Fluid under SFSolver, the SFSolver docs should be updated to describe Stable Fluid / smoke instead of SF.Rope.
  3. If the String/Fiber API is planned but unreleased, the docs should mark it as future/unreleased to avoid users trying a non-existent API.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions