End of support notice: On September 10, 2025, AWS
will discontinue support for AWS RoboMaker. After September 10, 2025, you will
no longer be able to access the AWS RoboMaker console or AWS RoboMaker resources.
For more information on transitioning to AWS Batch to help run containerized
simulations, visit this blog
post.
Common tasks
This section contains common tasks for creating simulation world templates. Many of the
tasks specify desired connections or desired shapes. Simulation WorldForge makes a best effort to generate
worlds according to simulation world template parameters. Generated worlds might not always
include all desired properties.
Specifying a list of rooms for a
floor
The room type influences the floor plan by contributing to which rooms are adjacent. The
room type is also used to determine the types of material for its flooring and walls and the
types of furniture to randomly place by default. You may override the default flooring and
walls material types and furniture types by room type or room name.
You
can select from the following room types: Bedroom, Bathroom, Living Room, Dining Room,
Kitchen, Hallway, Closet.
The following examples specifies a three-room house. The sizes and shapes of the rooms are
determined by default.
- Using the console
-
-
In the Simulation world template edit screen, under
Floor plan, choose Rooms.
-
In the Rooms pane, choose Add room.
-
Add details for the room. You can specify a room Name,
Room type, Desired area and
Desired aspect ratio.
-
Choose Save to save the new room. Repeat until you have the
rooms you desire. If you add too many, you can delete them from the
Rooms pane.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Rooms": [
{
"Type": "Bedroom",
"Name": "My Master Bedroom",
},
{
"Type": "Bathroom",
"Name": "My Ensuite",
},
{
"Type": "Kitchen",
"Name": "My Kitchen",
}
]
Requesting a long hallway
You can use the DesiredShape
property to request the preferred shape of a
room. Type
has no effect on the shape. In the following example, the
Hallway
aspect ratio is low. When it is combined with a large enough
Area
, it indicates a desire for a long, narrow hallway. Simulation WorldForge attempts to
generate rooms similar to the desired shape.
- Using the console
-
-
On the Simulation world template edit screen, under
Floor plan, choose Rooms.
-
In the Rooms pane, choose Add room.
-
Specify a room Name, then choose
Hallway for Room type.
-
Specify a Desired area of 20
and a
Desired aspect ratio of 4:1
.
-
Choose Save to save the hallway.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Rooms": [
{
"Type": "Hallway",
"Name": "My Hallway",
"DesiredShape": {
"Area": 20.0,
"AspectRatio": {
"x": 4, "y": 1
}
}
}
]
The valid room area range is 10 meters to 300 meters. The valid room aspect ratio range is
1:4 to 4:1.
Requesting a doorway between
rooms
If you have two rooms, and the rooms share at least one wall, you can request a
DesiredConnections
between the two rooms. Simulation WorldForge tries to place the rooms
adjacent and, depending on the ConnectionType
, either place a
Doorway
in a random location along an adjacent wall or create an
Opening
by removing an adjacent wall entirely.
The following example requests an open connection for the living room and kitchen. It also
requests a separate doorway connection for the bedroom and bathroom:
- Using the console
-
-
On the Simulation world template edit screen, under
Floor plan, choose Connections.
-
In the Connections pane, choose Add
connection.
-
In the Desired connections pane, select
Opening for Connection type and then
select a room for Location 1 and Location
2, such as "My Living Room" and "My Kitchen".
-
Choose Save to save desired connections.
-
Repeat to add a Door as a desired connection between two
other locations, such as "My Bedroom" and "My Bathroom".
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"DesiredConnections": [
{
"Location": [ "My Living Room", "My Kitchen" ],
"ConnectionType": "Opening"
},
{
"Location": [ "My Bedroom", "My Bathroom" ],
"ConnectionType": "Doorway"
}
]
The valid number of connections per room is 4 and a maximum of one opening connection for
each pair of rooms.
Applying a configuration to all
rooms
You can use the Target.All
keyword to apply a configuration to all
rooms.
The following example changes the door state for all doors.
- Using the console
-
The following procedure gives you the ability to apply a configuration for all the
doors in your world. You can also apply a single configuration to all floors, material
sets, walls, and furniture.
-
On the Simulation world template edit screen, under
Interiors, choose Doors.
-
In the Doors pane, choose Add custom
doors.
-
For Set name, specify a name for your set of custom
doors.
-
For Rooms affected, specify All
rooms.
-
For Door state, choose the open state of the door.
-
Choose Save to save the doors configuration.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
. The following example targets all doors within
a doorway set.
"Interior": {
"Doorways": {
"DoorwaySets": [
{
"Name": "your-doorway-set",
"TargetSet": "Target.All",
"Door": {
"InitialState": {
"OpenPosition": {
"Percent": "percentage-that-you-specify"
}
}
}
}
]
}
}
Requesting doors in doorways
You can only configure doorways to have doors using world templates that are Version 2
and above.
You can use a template to specify doors in doorways in your AWS RoboMaker Simulation WorldForge world.
You can specify the following types of doors:
You can configure the percentage in which these doors are open. For example, these are
some open states that you can specify:
You can also choose to have AWS RoboMaker assign a randomized open percentage to each door.
You can use the following procedure to add doors to your doorways.
- Using the console
-
-
On the Simulation world template edit screen, under
Interiors, choose Doors.
-
In the Doors pane, choose Add custom
doors.
-
For Set name, name your custom door set.
-
For Rooms affected under Location,
choose the rooms that you want to have doors.
-
For Door type under Customizations,
choose the type of door that you're adding.
-
Under Door state, choose whether the door is open, closed,
partially open, or in a randomized state.
-
Choose Save to save the configuration.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Interior": {
"Doorways": {
"DoorwaySets": [
{
"Name": "your-doorway-set",
"TargetSet": "the-doorways-that-you-want-to-target",
"Door": {
"InitialState": {
"OpenPosition": {
"Percent": "the-open-percentage-that-you-specify-for-the-doors-that-you're-targeting"
}
}
}
]
}
}
Requesting no doors in
doorways
You can only explicitly specify no doors in doorways using world templates that are
Version 2 and above.
You can use a template to explicitly specify that the doorways in your AWS RoboMaker Simulation WorldForge world
have no doors in the doorways.
The following example requests that there are no doors in the doorways between
rooms.
- Using the console
-
-
On the Simulation world template edit screen, under
Interiors, choose Doors.
-
In the Doors pane, choose Add custom
doors.
-
For the Rooms affected pane under
Location, choose All rooms.
-
For Door type under Customizations,
choose No door in doorway.
-
Choose Save.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Interior": {
"Doorways": {
"DoorwaySets": [
{
"Name": "doorway-set-name
",
"TargetSet": "Target.All",
"Door": null
}
]
}
If you want a longer or wider floor plan layout that affects all of the rooms, you can
request a DesiredAspectRatio
for the Footprint
. Simulation WorldForge uses this
preference to influence the overall shape and positions of the rooms so the floor plan better
fits the requested footprint aspect ratio. The desired aspect ratio is optional and defaults
to a square.
The following example overrides the default square ratio (1:1) to a prefer a wider layout
where all of the rooms are more likely to be stretched and placed to create a non-square
footprint:
- Using the console
-
-
On the Simulation world template edit screen, under
Floor plan, choose World dimensions.
-
In the World dimensions pane, under Desired
aspect ratio, specify a Width of 1
and a Length of 4
.
-
Choose Save to save the new room.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Footprint": {
"DesiredAspectRatio": {
"x": 1, "y": 4
}
}
The valid range for DesiredAspectRatio
is a range from 1:4 to 4:1.
Requesting a custom ceiling
height
The floor plan ceiling height determines the height of the walls for all the rooms. The
default ceiling height is 2.4 meters. In this example, we override the default to 3.2 meters:
- Using the console
-
-
On the Simulation world template edit screen, under
Floor plan, choose World dimensions.
-
In the World dimensions pane, specify a Ceiling
height of 3.2
.
-
Choose Save to save the new room.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Ceiling": {
"Height": 3.2
}
Specifying the same material types
for floors in different rooms
Use either room types or room names and list multiple rooms for the interior flooring
section. In the following example, all of the bedrooms, living rooms and dining rooms have a
random floorboard material assigned.
- Using the console
-
-
On the Simulation world template edit screen, under
Interiors, choose Flooring.
-
In the Flooring pane, choose Add
flooring.
-
In the Custom flooring pane, specify a flooring
Set name, such asor example, "Flooring Material Set 1".
-
Under Filter type, choose By room
type.
-
Under Room types, select Bedrooms,
Living rooms, and Dining rooms.
-
Under Custom flooring, choose Add
material and then choose Floorboard.
-
Choose Save to save the flooring set.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Flooring": {
"MaterialSets": [
{
"Name": "Flooring Material Set 1",
"TargetSet": {
"RoomTypes": [ "Bedroom", "Living", "Dining" ]
},
"SampleSet": {
"MaterialTypes": [ "Floorboards" ]
}
}
]
}
Specifying different material
types for floors between rooms of the same type
In the following example, all of the bedrooms, living rooms and dining rooms have a random
floorboard material assigned except for Bedroom 3
. It is assigned a random carpet
material.
- Using the console
-
-
On the Simulation world template edit screen, under
Interiors, choose Flooring.
-
In the Flooring pane, choose Add
flooring.
-
In the Custom flooring pane, specify a flooring
Set name, such as Flooring Material Set
1
.
-
Under Filter type, choose By room
type.
-
Under Room types, select Bedrooms,
Living rooms, and Dining rooms.
-
Under Custom flooring, choose Add
material and then choose Floorboard.
-
Choose Save to save the flooring set.
-
In the Flooring pane, choose Add
flooring.
-
In the Custom flooring pane, specify a flooring
Set name, such as Flooring Material Set for Bedroom
3
.
-
Under Filter type, choose By room
name.
-
Under Room name, select a room name, such as Bedroom
3
.
-
Under Custom flooring, choose Add
material and then choose Carpet.
-
Choose Save to save the flooring set.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Flooring": {
"MaterialSets": [
{
"Name": "Flooring Material Set 1",
"TargetSet": {
"RoomTypes": [ "Bedroom", "Living", "Dining" ]
},
"SampleSet": {
"MaterialTypes": [ "Floorboards" ]
}
},
{
"Name": "Flooring Material Set for Bedroom 3",
"TargetSet": {
"RoomNames": [ "Bedroom 3" ]
},
"SampleSet": {
"MaterialTypes": [ "Carpet" ]
}
}
]
}
Specifying more and less furniture
in rooms
You can specify how densely furniture is spaced by room names or room types. By default,
rooms are randomly furnished with moderate spacing. In the following example, all bedrooms are
randomly furnished with dense spacings. The living room and dining room are furnished
sparsely. All other rooms are furnished by default.
- Using the console
-
-
On the Simulation world template edit screen, under
Interiors, choose Furniture.
-
In the Furniture pane, choose Add custom
furniture.
-
In the Custom furniture pane, specify a custom furniture
Set name, such as Dense Furniture Arrangement
.
-
Under Filter type, choose By room
type.
-
Under Room types, select Bedrooms.
-
Toggle Override furniture to use default furniture.
-
Under Furniture density, choose Dense.
-
Choose Save to save the furniture set.
-
In the Furniture pane, choose Add custom
furniture.
-
In the Custom furniture pane, specify a custom furniture
Set name, such as Sparse Furniture Arrangement
.
-
Under Filter type, choose By room
name.
-
Under Room names, select the rooms you want to have sparse
furniture density, such as My Living Room
and My Dining
Room
.
-
Toggle Override furniture to use default furniture.
-
Under Furniture density, choose
Sparse.
-
Choose Save to save the furniture set.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Furniture": {
"FurnitureArrangements": [
{
"Name": "Dense Furniture Arrangement",
"TargetSet": {
"RoomTypes": [ "Bedroom" ]
},
"DesiredSpatialDensity": "Dense"
},
{
"Name": "Sparse Furniture Arrangement",
"TargetSet": {
"RoomNames": [ "My Living Room", "My Dining Room" ]
},
"DesiredSpatialDensity": "Sparse"
}
]
}
Adding specific furniture
types to all bedrooms and a single shared living/dining room
You can specify the types of furniture for a room by room names or room types. In the
following example, all bedrooms are moderately furnished with random beds, desks, dressers,
and floor lamps. The room "My living/dining room" is densely furnished with random dining
tables, dining chairs, floor lamps, sofas, and coffee tables. All other rooms are furnished by
default.
- Using the console
-
-
On the Simulation world template edit screen, under
Interiors, choose Furniture.
-
In the Furniture pane, choose Add custom
furniture.
-
In the Custom furniture pane, specify a custom furniture
Set name, such as Bedroom Furniture
.
-
Under Filter type, choose By room
type.
-
Under Room types, select Bedrooms.
-
Ensure Override furniture is selected. If it is not
selected, Simulation WorldForge uses default furniture.
-
Under Furniture types, choose Add
furniture and then select Beds,
Desks, Dressers, and
Floorlamps.
-
Choose Save to save the furniture set.
-
In the Furniture pane, choose Add custom
furniture.
-
In the Custom furniture pane, specify a custom furniture
Set name, such as Living and Dining
Furniture
.
-
Under Filter type, choose By room
name.
-
Under Room names, select a room, such as My living
and dining room
.
-
Ensure Override furniture is selected. If it is not
selected, Simulation WorldForge uses default furniture.
-
Under Furniture types, choose
DiningTables, DiningChairs,
FloorLamps, Sofas, and
CoffeeTables.
-
Under Furniture density, choose Dense.
-
Choose Save to save the furniture set.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Furniture": {
"FurnitureArrangements": [
{
"Name": "Bedroom Furniture",
"TargetSet": {
"RoomTypes": [ "Bedroom" ]
},
"SampleSet": {
"ModelTypes": [
"Beds",
"Desks",
"Dressers",
"FloorLamps"
]
}
}
{
"Name": "Living and Dining Furniture",
"TargetSet": {
"RoomNames": [ "My living and dining room" ]
},
"SampleSet": {
"ModelTypes": [
"DiningTables",
"DiningChairs",
"FloorLamps",
"Sofas",
"CoffeeTables"
],
"DesiredSpatialDensity": "Dense"
}
}
]
}
Specifying a room without
furniture
Specify an empty list for the model set for the furnishing arrangement. All other rooms
are furnished by default:
- Using the console
-
-
On the Simulation world template edit screen, under
Interiors, choose Furniture.
-
In the Furniture pane, choose Add custom
furniture.
-
In the Custom furniture pane, specify a custom furniture
Set name, such as No furniture
.
-
Under Filter type, choose By room
name.
-
Under Room names, select the rooms that you want to have no
furniture, such as My Spare Room
.
-
Ensure Override furniture is selected. If it is not
selected, Simulation WorldForge uses default furniture.
-
Under Furniture types, make sure no types are chosen.
-
Choose Save to save the furniture set.
- Using the AWS CLI
-
You can use the following JSON in the templateBody
as part of a call
to create-world-template
.
"Furniture": {
"FurnitureArrangements": [
{
"Name": "No Furniture",
"TargetSet": {
"RoomNames": [ "My Spare Room" ]
},
"SampleSet": {
"ModelTypes": []
}
}
]
}