App Command Reference
┌──────────────────────┬────────────────────────────┬──────────────────────┐ │ PART PALETTE │ RESOLVED COMMAND LINE │ BUILD HISTORY │ │ (left) │ (above canvas) │ (right, reverse) │ │ │ │ │ │ structural │ ACTIVE PART BAR │ #1236 lgrey.1 ... │ │ functional │ + valid command hints │ #1235 pink.5 ... │ │ interaction │ │ #1234 red.21 ... │ │ decorative │ CAMERA + TRIAD rows │ #1200 grey.27 ... │ │ │ │ │ │ │ CANVAS (iso) │ │ │ │ │ │ │ │ ▼ ACCESSIBILITY PANEL │ │ │ │ command line · buttons │ │ └──────────────────────┴────────────────────────────┴──────────────────────┘
PART LOCATIONS
A part can listed be in the palette, scene or build history. The keywords PICK and SELECT act on different lists. PICK parts from the palette, PLACE into the scene and SELECT them once placed from the build history.
Rather than scrolling through the part palette you define attributes of the part you want such a colour, role, shape and size. If this resolves to a single part, it is automatically selected. If multiple parts are valid, the user is expected to give the ID of the desired part from the shortlist.
The command history is reverse chronological list of part IDs and actions. Where space allows the fuller part synonymns are shown (yellow tile 2x2).
PART ROLES
| Category | Contents |
|---|---|
| Structural | bricks, plates, beams, columns, arches, walls |
| Functional | hinges, turntables, gears, axles, pins, connectors |
| Interaction | buttons, levers, doors, hatches, handles, minifig hands |
| Decorative | tiles, slopes, printed pieces, foliage, flags, signs |
PART LABEL FORMAT
#1234 color_family.colorID part_name
e.g. #1234 red.21 brick 2x4
#1234— unique 4-digit part instance ID, globally unique in the build.color_family— one of 12 families (section 4)..colorID— LEGO official color ID, 1–4 digits, no zero-padding.part_name— the part name (brick, plate, slope, tile, door, hinge, etc.). The generic noun is "part"
COLOUR FAMILIES
There are twelve colours in the reduced palette containing roughly equal numbers of true colour names (e.g. aqua, teal, tan, lime, etc).
| # | Family | Display Colour | Monochrome Display Pattern |
|---|---|---|---|
| 1 | Red | "red" | vertical hatch |
| 2 | Blue | "blue" | left hatch |
| 3 | Green | "green" | right hatch |
| 4 | Yellow | "yellow" | horizontal hatch |
| 5 | Orange | "orange" | diagonal cross hatch |
| 6 | Purple | "purple" | repeating chevrons |
| 7 | Black | "black" | solid black |
| 8 | White | "white" | solid white |
| 9 | Dark Grey | "grey" | checkerboard |
| 10 | Brown | "brown" | cross hatch |
| 11 | Pink | "pink" | large dots |
| 12 | Light Grey | dots |
Transparent parts use light grey as their family.
NUMERIC IDS — SPOKEN FORM
Numbers are spoken digit-by-digit to avoid ambiguity.
| ID | Spoken |
|---|---|
| 154 | "one five four" |
| 1924 | "one nine two four" |
Digit vocabulary
| Digit | Spoken |
|---|---|
| 0 | "zero" |
| 1 | "one" |
| 2 | "two" |
| 3 | "three" |
| 4 | "four" |
| 5 | "five" |
| 6 | "six" |
| 7 | "seven" |
| 8 | "eight" |
| 9 | "nine" |
SYNONYM RESOLUTION
A spoken phrase can be a synonym for a part ID if it resolves uniquely.
- Exact part ID "#1234" → #1234
- color_family alone "green part" → #1234 (if no other green parts in context)
- part_name alone "plate 2x4" → #1234 (if no other plates in context)
- color_family + part_name "red brick 2x4" → #1234 (if unique in context)
The last-mentioned part is the current subject. Every command without an explicit part reference applies to the current subject. Mentioning a new part as subject changes the subject.
INSTRUCTIONS
<cancel> ::= "cancel" <place> ::= "place" <part-ref> <relation>? <part-ref>? <move> ::= "move" <axis> <n> <unit> <rotate> ::= "rotate" <degrees> <delete> ::= "delete" | "delete" <part-ref> <select> ::= "select" <part-ref> <deselect> ::= "clear"
<part-ref> ::= "#" <digit>{4} | <color-family> <color-id>? <part-name>? | <part-name> | "it" | "that" | "this one"
<relation> ::= "on" | "under" | "in front" | | "behind" | "left of" | "right of"
<axis> ::= "L" | "R" | "F" | "B" | "U" | "D" | "left" | "right" | "forward" | "backward" | "up" | "down"
<unit> ::= "stud" | "studs" | "plate" | "plates" | "brick" | "bricks"
<degrees> ::= <digit>{1,3}