Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Haosulab ManiSkill RoboCasaStructuralFixtures

From Leeroopedia
Knowledge Sources
Domains Robotics, Simulation, Scene_Building
Last Updated 2026-02-15 08:00 GMT

Overview

Concrete tool providing structural fixture classes (Box, Wall, Floor) for constructing the physical boundaries and surfaces of RoboCasa kitchen environments.

Description

This module defines the structural building blocks used to create the walls, floors, and simple box shapes in RoboCasa kitchen scenes.

Box -- A simple textured box with configurable size, position, and material. Uses SAPIEN actor builder to create a static actor with box visual and collision shapes. Supports wood textures by default. Provides build() method for constructing the actor and set_pos()/set_euler() for pose control.

Wall -- A wall fixture that supports placement on different sides of the kitchen (back, front, left, right, floor). Key features:

  • Automatic rotation based on wall_side parameter using predefined quaternions
  • Position adjustments for wall thickness and backing
  • Backing mode for creating depth behind the wall
  • Extended backing for forming perfect corner boxes
  • Uses add_plane_repeated_visual for tiled texture rendering with configurable texture repeat
  • Collision shapes use box geometry regardless of visual style

Floor -- Extends Wall with wall_side="floor". Uses a horizontal plane collision (with a 45-degree rotation quaternion) and supports tiled floor textures. Only adds plane collision in scene index 0 to avoid duplicate ground planes.

All classes track their is_articulation property as False since they are purely static structures.

Usage

Used by the RoboCasa scene builder to create the physical room structure (walls and floor) around the kitchen fixtures.

Code Reference

Source Location

Signature

class Box:
    def __init__(self, scene: ManiSkillScene, pos, size, name="box",
                 texture="textures/wood/dark_wood_parquet.png",
                 mat_attrib={"shininess": "0.1"}, tex_attrib={"type": "cube"},
                 rng=None, *args, **kwargs): ...
    def build(self, scene_idxs: list[int]): ...
    def set_pos(self, pos): ...
    def set_euler(self, euler): ...
    @property
    def is_articulation(self) -> bool: ...

class Wall:
    def __init__(self, scene: ManiSkillScene, name="wall",
                 texture="textures/bricks/white_bricks.png",
                 pos=None, quat=None, size=None, wall_side="back",
                 backing=False, backing_extended=[False, False],
                 default_wall_th=0.02, default_backing_th=0.1,
                 rng=None, *args, **kwargs): ...
    def build(self, scene_idxs: list[int]): ...
    def get_quat(self) -> list: ...
    @property
    def is_articulation(self) -> bool: ...

class Floor(Wall):
    def __init__(self, scene: ManiSkillScene, size, name="wall",
                 texture="textures/bricks/red_bricks.png", *args, **kwargs): ...
    def build(self, scene_idxs: list[int]): ...

Import

from mani_skill.utils.scene_builder.robocasa.fixtures.others import Box, Wall, Floor

I/O Contract

Class Key Parameters Description
Box pos, size, texture Static textured box with collision
Wall pos, size, wall_side, backing, texture Side wall with automatic rotation and thickness handling
Floor size, texture Horizontal floor plane with tiled texture

Wall side orientations and their quaternions:

Side Quaternion
back [-0.707, 0.707, 0, 0]
front [0, 0, 0.707, -0.707]
left [0.5, 0.5, -0.5, -0.5]
right [-0.5, 0.5, -0.5, 0.5]
floor [0.707, 0, 0, 0.707]

Usage Examples

# Create a back wall
wall = Wall(
    scene=scene,
    name="back_wall",
    pos=[0, 2.0, 1.0],
    size=[3.0, 0.02, 1.0],
    wall_side="back",
    texture="textures/bricks/white_bricks.png",
)
wall.build(scene_idxs=[0])

# Create a floor
floor = Floor(
    scene=scene,
    size=[3.0, 3.0, 0.01],
    pos=[0, 0, 0],
    texture="textures/bricks/red_bricks.png",
)
floor.build(scene_idxs=[0])

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment