Brickheart

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}