Manual and mixed layouts
Automatic layout is a good starting point when you know the contents but not their arrangement. Keep more control when the way you use the game calls for it: a card area on the left, a compartment block you have already designed, or a tray with an exact footprint.
You can fix just those decisions and leave others open. A completely manual project is useful when you already know the entire layout. Both approaches use the same box, material, and component information from your project.
Keep a useful part fixed
Section titled “Keep a useful part fixed”Use an automatic project when BGI should still search any of the layout. Choose a constraint that describes what actually matters:
| Keep this decision | Use | Worked example |
|---|---|---|
| An assembly at a particular position | fixed_origin_mm, or fixed_assembly_origins for fixed assemblies | A fixed and an automatic grid |
| A requirement in a particular position within a supported pattern | fixed_slots | A fixed position in a crossing layout |
| A finished block of compartments, with its dividers and sizes | fixed_subtrees | Fixed card and dice blocks |
| A fixed outer division with areas still to arrange | interior_template | A card column beside automatic areas |
These choices are different. A fixed compartment block can move as a unit within its surrounding grid; a fixed frame preserves the positions and sizes of its regions. Separate assemblies have separate floors and walls. A fixed block within one assembly shares that assembly’s construction.
The project still uses layout.mode: auto: run the same search and selection process as before. Fixed choices are constraints on that search. They do not need a separate build followed by an attempt to join output files.
Specify the whole layout
Section titled “Specify the whole layout”With layout.mode: manual, you provide the compartment tree and every assembly’s position. BGI then makes the panels, joints, and cutting paths from that arrangement.
A tree starts with either one compartment or a split. A split divides its space into first and second along X (left to right) or Y (front to back). The parent dimensions include the divider between its children.
For the cards and tokens in Full example, you could choose the following assembly instead of its automatic one. This is a replacement assemblies section, not a complete file:
assemblies: - id: insert kind: grid construction: open_grid_box assembly: glue_allowed members: [cards, tokens] interior: id: compartments kind: split axis: x clear_mm: [113, 95, 32] first: id: card-compartment kind: compartment clear_mm: [70, 95, 32] contents: [cards] second: id: token-compartment kind: compartment clear_mm: [40, 95, 32] contents: [tokens]The two widths and the 3 mm divider add up to 70 + 3 + 40 = 113 mm inside. Both compartments share the 95 mm depth and 32 mm clear height. With the floor and outer walls, the assembly measures 119 × 101 × 35 mm. The token compartment is larger than its minimum requirement because this division gives both compartments the same depth.
Replace the layout section too:
layout: mode: manual construction_mode: full_box placements: - id: insert origin_mm: [1, 1] rotation_deg: 0The origin places the assembly’s outside corner 1 mm from the left and front of the game box. Use local_groups instead of full_box when placing several assemblies or existing containers, and give each one a placement. Dimensions and clearances explains the coordinate and size conventions.
A manual project already contains the chosen arrangement, so build it directly:
bgi build game.bgi.yaml --output insert-bundleReview the output as described in Choose and build a layout, then calibrate and make the parts. If you later want automatic alternatives, change the intended automatic interior and the top-level layout section together. A saved candidate JSON is an output recipe, not a manually editable compartment tree.
Design removable trays
Section titled “Design removable trays”A removable tray uses kind: tray and requires space around its walls for removal. It can contain the same supported manual compartment divisions as a grid. You also specify its placement and, for a stack, its layer and support. Arrange designed trays explains the requirements and how BGI can compare placements once the tray designs are complete.