Genesis-Embodied-AI/genesis-world · error · DeprecationError

This property has been removed.

Error message

This property has been removed.

What it means

RigidGeom.is_free raised through to report whether the owning rigid entity is free-floating, but the property has been removed and now raises DeprecationError unconditionally. Free/fixed status lives at the link level in the current API.

Source

Thrown at genesis/engine/entities/rigid_entity/rigid_geom.py:885

        return self.n_faces + self.face_start

    @property
    def edge_end(self):
        """
        Get the ending index of the geom's edges in the rigid solver.
        """
        return self.n_edges + self.edge_start

    @property
    def is_built(self):
        """
        Whether the rigid entity the geom belongs to is built.
        """
        return self.entity.is_built

    @property
    def is_free(self):
        raise DeprecationError("This property has been removed.")

    @property
    def is_fixed(self) -> bool:
        """
        Whether this geom is fixed in the world.
        """
        return self.link.is_fixed

    # ------------------------------------------------------------------------------------
    # -------------------------------------- repr ----------------------------------------
    # ------------------------------------------------------------------------------------

    def _repr_brief(self):
        return f"{self.__repr_name__()}: {self._uid}, idx: {self._idx} (from entity {self._entity.uid}, link {self._link.uid})"


class RigidVisGeom(RBC):
    """

View on GitHub (pinned to 56e4aa5d82)

Solutions

  1. Use geom.link.is_free (the owning link's mobility) instead
  2. Or check geom.is_fixed / geom.link.is_fixed if only the fixed distinction matters
  3. Grep for 'geom.is_free' and migrate all sites to the link-level API

Example fix

// before
if geom.is_free:
    ...
// after
if geom.link.is_free:
    ...
Defensive patterns

Strategy: validation

Type guard

def geom_is_free(geom) -> bool:
    return geom.link.is_fixed is False

Try / catch

try:
    val = geom.is_free
except DeprecationError:
    val = geom.link.is_fixed is False

Prevention

When it happens

Trigger: Accessing geom.is_free on any RigidGeom obtained from entity.geoms or link.geoms; legacy code branching on a geom's mobility.

Common situations: Porting collision- or geom-filtering code from an older Genesis release where geoms exposed the entity's is_free; copy-pasted utility functions iterating geoms and checking mobility.

Related errors


AI-assisted analysis of Genesis-Embodied-AI/genesis-world@56e4aa5d82 (2026-08-28). Data as JSON: /api/errors/03af8dd1d3632f67. Report an issue: GitHub.