Skip to main content

Walls

Introduction

The Wall schema defines a visual surface within a smart home room onto which interactive elements, such as devices and doors, are placed. Each wall is represented by an image asset and serves as a primary canvas for constructing the user-facing interface of the environment.

In the game interface, each room is composed of four walls, which the participant can navigate using left/right arrow keys. This wall-based navigation allows users to explore different perspectives of a room and interact with devices positioned on each wall independently.

Walls are central to the spatial organization of the smart home simulation and are responsible for:

  • Hosting device and door placements

  • Displaying background visuals per wall

  • Defining navigation flow within a room

  • Determining the initial view when a room is entered (via the default property)

JSON Schema

Loading ....
JSON Schema Code

Wall Schema

{
"title": "Wall",
"description": "Property of a wall",
"type": "object",
"properties": {
"default": {
"type": "boolean",
"description": "Whether the wall should be displayed as default upon starting the game",
"default": false
},
"image": {
"type": "string",
"description": "Path to the image asset corresponding to the wall"
},
"devices": {
"type": "array",
"description": "Array of devices placed on this wall",
"items": {
"$ref": "device/deviceSchema.json"
}
},
"doors": {
"type": "array",
"description": "Array of doors for navigation between rooms",
"items": {
"$ref": "doorSchema.json"
}
}
},
"required": [
"image"
]
}

Top-Level Properties

PropertyTypeDescription
defaultbooleanIndicates whether this wall should be displayed as the default view when entering the room
imagestringPath to the image asset used as the background graphic for the wall
devicesarrayArray of devices to be placed on this wall. Each device is defined using the Device Schema
doorsarrayArray of doors to be rendered on this wall.

Wall Images

Each wall in a room configuration requires an image that serves as the background visual context for that wall. These images define the rendered scene in the game environment and provide spatial and semantic cues to participants.

Image Specifications

  • Supported formats: .png, .jpg, .webp
  • Exact resolution: 1024 × 576 pixels
  • Aspect ratio: 16:9 (standard for the game’s visual display)
Strict Size Requirement

All wall images must be exactly 1024 × 576 pixels. Using images with incorrect dimensions can result in rendering artifacts, stretching, or misalignment within the game scene. Ensure that images are properly scaled and cropped before inclusion.

{
"image": "assets/images/kitchen/north_wall.jpg",
"default": false
}

In this example, the wall is associated with the north_wall.jpg image and is not the default wall for initial display.

Default Wall Configuration

The default boolean property determines whether a wall is shown as the initial view when a participant enters a room. It defines the starting perspective of the user in the interactive environment.

Usage Example

[
{
"image": "assets/images/kitchen/first_wall.jpg",
"default": false
},
{
"image": "assets/images/kitchen/second_wall.jpg",
"default": true
},
{
"image": "assets/images/kitchen/third_wall.jpg",
"default": false
},
{
"image": "assets/images/kitchen/fourth_wall.jpg",
"default": false
}
]

In this example, the wall defined with second_wall.jpg is marked as the default and will be the first view rendered when the room is entered.

Behavior and Constraints

  • Explicit assignment: The default property is optional. If omitted, it is treated as false.
  • Uniqueness per room: Only one wall per room should be marked with default: true.
  • Fallback logic: If no wall is explicitly marked as default, the first wall listed in the array will be shown by default.
Default Wall Selection

Choose the default wall to ensure a smooth and intuitive participant experience:

  • Prioritize walls containing important devices, task-relevant elements, or key visual cues.
  • Align the default view with the logical point of entry into the room or the most frequently used area.
  • Ensure the chosen wall provides clear spatial orientation and a coherent introduction to the room context.

Wall Navigation Order

The order in which walls appear in the configuration array defines how users navigate through them using the left and right arrow keys. This navigation simulates a 360° rotation within the room and loops seamlessly across all four walls. Navigation Behavior Given a room defined with four walls:

[
{
"image": "assets/images/kitchen/first_wall.jpg",
"devices": []
},
{
"image": "assets/images/kitchen/second_wall.jpg",
"devices": []
},
{
"image": "assets/images/kitchen/third_wall.jpg",
"devices": []
},
{
"image": "assets/images/kitchen/fourth_wall.jpg",
"devices": []
}
]
  • Right Arrow Key Navigates in forward sequence: first_wall → second_wall → third_wall → fourth_wall → first_wall (loops)
  • Left Arrow Key Navigates in reverse sequence: first_wall → fourth_wall → third_wall → second_wall → first_wall (loops)
Wall Ordering

Walls should be ordered in the array according to their physical placement in the room — typically in a clockwise or counter-clockwise sequence.

Correct ordering ensures that the virtual navigation experience aligns with the real-world spatial layout, supporting participant orientation and spatial memory.

Wall Numbering Convention

Each wall within a room is indexed according to its position in the room’s walls array. This indexing is used to specify door destinations and navigation references.

LabelIndexDescription
wall10First wall in the room’s walls array
wall21Second wall in the room’s walls array
wall32Third wall in the room’s walls array
wall43Fourth wall in the room’s walls array

This convention enables a structured and predictable reference system across rooms.

Device Configuration on Walls

Walls act as interactive canvases where multiple smart devices can be placed. These devices form the core of user interaction and gameplay within the smart home environment. Each device includes metadata, image references, positional coordinates, and interaction logic—allowing users to view and manipulate their state in real time.

Device Placement Example

Here is an example of a Wall object containing two distinct devices: a "Deep Fryer" and a "Mixer". Each device has its own image, position on the wall, and a set of interactions.

{
"image": "assets/images/shared_room/wall1.webp",
"default": true,
"devices": [
{
"name": "Deep Fryer",
"id": "deep_fryer",
"image": "assets/images/shared_room/devices/deep_fryer.webp",
"position": {
"x": 657,
"y": 285,
"scale": 1,
"origin": 1
},
"interactions": [
{
"InteractionType": "Boolean_Action",
"name": "Power",
"inputData": {
"valueType": ["PrimitiveType", "Boolean"],
"unitOfMeasure": null,
"type": {
"True": "On",
"False": "off"
}
},
"currentState": {
"visible": null,
"value": false
}
}
],
"visualState": [
{
"default": true,
"image": "assets/images/shared_room/devices/wall1_deepfryer.webp"
}
]
},
{
"name": "Mixer",
"id": "mixer",
"image": "assets/images/shared_room/devices/wall1_mixer.png",
"position": {
"x": 367,
"y": 280,
"scale": 0.25,
"origin": 1
},
"interactions": [
{
"InteractionType": "Boolean_Action",
"name": "Power",
"inputData": {
"valueType": ["PrimitiveType", "Boolean"],
"unitOfMeasure": null,
"type": {
"True": "On",
"False": "Off"
}
},
"currentState": {
"visible": null,
"value": false
}
}
],
"visualState": [
{
"default": true,
"image": "assets/images/shared_room/devices/wall1_mixer.png"
}
]
}
]
}

Door Configuration on Walls

Doors are non-interactive objects whose sole purpose is to enable navigation between different rooms and walls in the smart home environment. They are defined within the doors array of a Wall object.

Basic Door Structure Example

The following example shows a Wall that contains a single door. Clicking on this door would navigate the player to the first wall (wall1) of the room identified as "bob_room".

{
"image": "assets/images/shared_room/wall3.webp",
"doors": [
{
"image": "assets/images/shared_room/doors/wall3_door.webp",
"position": {
"x": 425,
"y": 100,
"scale": 0.5
},
"destination": {
"room": "bob_room",
"wall": "wall1"
}
}
]
}

Door Properties

PropertyTypeRequiredDescription
imagestringYesThe file path to the visual asset for the door.
positionobjectYesAn object defining the door's placement and size on the wall. Contains x, y, and scale.
destinationobjectYesAn object specifying the target location. Contains the destination room ID and wall ID.

Best Practices

  • Ensure that destination room names match those defined in your global room configuration.
  • Always use a valid wall label (wall1 to wall4) corresponding to a real wall in the destination room.
  • Position doors so they do not visually overlap with interactive devices on the wall.
  • Keep door images visually distinct from devices for clarity during gameplay.
Door Behavior

When a player clicks or taps on a door, the game automatically navigates to the specified room and wall. This enables room-to-room transitions within a single scene.

Door Destination Validation

When defining door transitions: • Ensure the referenced target room exists in your configuration. • Confirm that the specified wall number corresponds to a valid index in the target room’s walls array. • Design navigation paths that are logical and intuitive for participants.

Examples

This section presents full examples of wall objects, showcasing minimal and complex configurations used in the smart home simulation environment.

Example 1: Simple Static Wall

A minimal wall definition that includes only a background image. This wall contains no interactive devices or doors.

{
"image": "assets/images/shared_room/wall2.webp",
"default": false
}

Example 2: Wall with Door for Room Navigation

This example illustrates how to define a wall that includes a single door used to navigate to another room in the game environment.

{
"image": "assets/images/shared_room/wall4.webp",
"doors": [
{
"image": "assets/images/shared_room/doors/wall4_door.webp",
"position": {
"x": 425,
"y": 100,
"scale": 0.5
},
"destination": {
"room": "alice_room",
"wall": "wall1"
}
}
]
}

Example 3: Wall with Multiple Devices

This configuration includes two smart devices placed on a single wall. Each device is defined with its image, position, and a default visual state.

{
"image": "assets/images/shared_room/wall1.webp",
"default": true,
"devices": [
{
"name": "Deep Fryer",
"id": "deep_fryer",
"image": "assets/images/shared_room/devices/wall1_deepfryer.webp",
"position": {
"x": 657,
"y": 285,
"scale": 1,
"origin": 1
},
"interactions": [],
"visualState": [
{
"default": true,
"image": "assets/images/shared_room/devices/wall1_deepfryer.webp"
}
]
},
{
"name": "Cooker Hood",
"id": "cooker_hood",
"image": "assets/images/shared_room/devices/wall1_cookerhood.webp",
"position": {
"x": 659,
"y": 222,
"scale": 1,
"origin": 1
},
"interactions": [],
"visualState": [
{
"default": true,
"image": "assets/images/shared_room/devices/wall1_cookerhood.webp"
}
]
}
]
}

Example 4: Wall with Devices and Door

A fully configured wall that includes both a smart device and a navigable door.

{
"image": "assets/images/alice_room/wall1.webp",
"default": false,
"devices": [
{
"name": "Lamp",
"id": "lamp",
"image": "assets/images/alice_room/devices/wall1_lamp.webp",
"position": {
"x": 525,
"y": 320,
"scale": 1,
"origin": 1
},
"interactions": [],
"visualState": [
{
"default": true,
"image": "assets/images/alice_room/devices/wall1_lamp.webp"
}
]
}
],
"doors": [
{
"image": "assets/images/alice_room/doors/wall1_door.webp",
"position": {
"x": 0,
"y": 45,
"scale": 0.5
},
"destination": {
"room": "shared_room",
"wall": "wall1"
}
}
]
}