Genesis-Embodied-AI/genesis-world · error · DeprecationError
This method has been removed. Please use 'get_AABB()' instea
Error message
This method has been removed. Please use 'get_AABB()' instead.
What it means
get_aabb() (lowercase) was removed from RigidEntity; the replacement is get_AABB(). Calling the old name raises DeprecationError immediately. The new method computes the axis-aligned bounding box on the fly from all vertex positions and supports envs_idx selection.
Source
Thrown at genesis/engine/entities/rigid_entity/rigid_entity.py:3450
# FIXME: Remove this branch after implementing 'get_verts'.
if self._enable_heterogeneous and self._solver.n_envs > 0:
envs_idx = self._scene._sanitize_envs_idx(envs_idx)
n_envs = len(envs_idx)
aabb_min = torch.full((n_envs, 3), float("inf"), dtype=gs.tc_float, device=gs.device)
aabb_max = torch.full((n_envs, 3), float("-inf"), dtype=gs.tc_float, device=gs.device)
for geom in self.geoms:
geom_aabb = geom.get_AABB()
active_mask = geom.active_envs_mask[envs_idx] if geom.active_envs_mask is not None else ()
aabb_min[active_mask] = torch.minimum(aabb_min[active_mask], geom_aabb[envs_idx[active_mask], 0])
aabb_max[active_mask] = torch.maximum(aabb_max[active_mask], geom_aabb[envs_idx[active_mask], 1])
return torch.stack((aabb_min, aabb_max), dim=-2)
# Compute the AABB on-the-fly based on the positions of all the vertices
verts = self.get_verts()[envs_idx if envs_idx is not None else ()]
return torch.stack((verts.min(dim=-2).values, verts.max(dim=-2).values), dim=-2)
def get_aabb(self):
raise DeprecationError("This method has been removed. Please use 'get_AABB()' instead.")
@gs.assert_built
def get_links_pos(
self,
links_idx_local=None,
envs_idx=None,
*,
ref: link_ref_frame = link_ref_frame.link_origin,
relative=True,
):
"""
Returns the position of a given reference point for all the entity's links.
Parameters
----------
links_idx_local : None | array_like
The indices of the links. Defaults to None.
envs_idx : None | array_like, optionalView on GitHub (pinned to 56e4aa5d82)
Solutions
- Replace `get_aabb()` with `get_AABB(envs_idx=...)`.
- Grep the codebase for `.get_aabb(` and update all call sites.
Example fix
# before aabb = entity.get_aabb() # after aabb = entity.get_AABB()
Defensive patterns
Strategy: validation
Validate before calling
if hasattr(entity, "get_AABB"):
aabb = entity.get_AABB()
else: # legacy fallback
aabb = entity.get_aabb() Type guard
def get_aabb_safe(entity):
getter = getattr(entity, "get_AABB", None) or getattr(entity, "get_aabb", None)
if getter is None:
raise AttributeError("no AABB getter")
return getter() Try / catch
try:
aabb = entity.get_AABB()
except AttributeError:
aabb = entity.get_aabb() # older Genesis versions Prevention
- Pin the Genesis version in requirements to freeze API names.
- After upgrading, grep for removed snake_case aliases (get_aabb, set_dofs_invweight, set_links_invweight).
When it happens
Trigger: Calling `entity.get_aabb()` on a RigidEntity, typically via code written against an older Genesis version or copied from old examples/tests.
Common situations: Upgrading Genesis to a version that renamed the API; stale tutorials/StackOverflow snippets; downstream codebases that cached the old lowercase name.
Related errors
- This method has been removed because dof invweights are supp
- This method has been removed because links invweights are su
- Python module 'uipc' is required by IPCCoupler but is not in
- `morph` in hybrid entity should be either URDF or Mesh
- Cannot handle soft material {material_soft}
AI-assisted analysis of Genesis-Embodied-AI/genesis-world@56e4aa5d82 (2026-08-28).
Data as JSON: /api/errors/0b7969208ccee97d.
Report an issue: GitHub.