Genesis-Embodied-AI/genesis-world · error · DeprecationError
This property has been removed.
Error message
This property has been removed.
What it means
RigidEntity.is_free was a property reporting whether the entity is freely floating (no fixed root joint). It has been removed from the Genesis API and now unconditionally raises DeprecationError. The replacement is the link-level equivalent, since a free-floating entity is characterized by its root link's root_joint.
Source
Thrown at genesis/engine/entities/rigid_entity/rigid_entity.py:4737
@property
def equality_start(self):
"""The index of the entity's first RigidEquality in the scene."""
return self._equality_start
@property
def equality_end(self):
"""The index of the entity's last RigidEquality in the scene *plus one*."""
return self._equality_start + self.n_equalities
@property
def equalities(self):
"""The list of equality constraints (`RigidEquality`) in the entity."""
return self._equalities
@property
def is_free(self) -> bool:
raise DeprecationError("This property has been removed.")
@property
def is_local_collision_mask(self):
"""Whether the contype and conaffinity bitmasks of this entity only applies to self-collision."""
return self._is_local_collision_mask
View on GitHub (pinned to 56e4aa5d82)
Solutions
- Use entity.links[entity.root_idx].is_free (root link's is_free) instead
- If only fixed-vs-free matters, check entity.is_fixed or the root link's root_joint type
- Search the codebase for '.is_free' on entities and migrate all call sites to link-level API
Example fix
// before
if entity.is_free:
...
// after
if entity.links[entity.root_idx].is_free:
... Defensive patterns
Strategy: validation
Validate before calling
assert not hasattr(RigidEntity, 'is_free') or False # after upgrade, grep instead # runtime check for old code paths: from genesis.utils.exceptions import DeprecationError
Type guard
def entity_is_free(entity) -> bool:
return entity.links[entity.root_idx].root_joint.type == gs.JOINT_TYPE.FREE
Try / catch
try:
val = entity.is_free
except DeprecationError:
val = entity.links[entity.root_idx].is_fixed is False
Prevention
- Pin the Genesis version your scripts were written against
- After upgrading, grep for '.is_free' on entities/geoms/links and migrate to link-level API
- Read the release notes for removed properties before upgrading
When it happens
Trigger: Calling entity.is_free on any RigidEntity instance, including indirectly from old user scripts, tutorials, or third-party code written for an earlier Genesis version.
Common situations: Upgrading Genesis to a version where the entity/link/geom API was refactored to be link-centric; running legacy demo scripts or copied forum/GitHub code that checks if an entity is floating via entity.is_free.
Related errors
- This property has been removed.
- This method has been removed. Please consider operating at l
- This method has been removed. Please consider operating at l
- This property has been removed.
- This method has been removed. Please use 'get_AABB()' instea
AI-assisted analysis of Genesis-Embodied-AI/genesis-world@56e4aa5d82 (2026-08-28).
Data as JSON: /api/errors/76e86d6f35aa8a56.
Report an issue: GitHub.