searches the current version of every section · esc to close

Viewing this section as of v0.1.38 (tagged 2026-04-04). Go to current →

26.05 Layout Mode Module

The Layout Mode module modifies the scene by introducing different layout modes. The original layout, i.e., each artifact placed in the scene with all possible positions, rotations, and scales as specified in the Embedding type object, is referred to as the freeform layout mode in the Layout Mode module. Other layout modes are restrictions on the freeform mode that are more suitable for particular uses of the space.

Besides the freeform layout mode, four layout modes are specified, each with a two-dimensional and a three-dimensional version. Other modules can extend this module by introducing new layout modes. The layout modes defined by this module are:

  • Continuous layout mode
  • Discrete layout mode
  • Block layout mode
  • Slot layout mode

The Layout Mode module introduces a few new members in FormProperties. The central member is the layoutMode member, defined as

interface FormProperties {
	layoutMode: LayoutMode // OPTIONAL
	// ...
}

where

  • layoutMode is OPTIONAL, and its value MUST be of type LayoutMode. It specifies which layout mode is used. If not provided, the freeform layout mode is used by default.

The LayoutMode type is defined as

type LayoutMode =
  | 'freeform' | 'continuous' | 'discrete' | 'block' | "slot"
  | 'flat-freeform' | 'flat-continuous' | 'flat-discrete' | 'flat-block'

where

  • freeform indicates the freeform layout mode in three dimensions.
  • continuous indicates the continuous layout mode in three dimensions. It does not have restrictions on position, but the placement must follow the stacking logic.
  • discrete indicates the discrete layout mode in three dimensions. It imposes a cell-placement rule and a stacking logic.
  • block indicates the block layout mode in three dimensions. It imposes a block-placement rule and allows only artifacts whose volume in each dimension is exactly 1 or an integer to be placed in the scene.
  • slot indicates the slot layout mode. It allows artifacts to be placed only at specified slots with specified orientations.
  • flat-freeform indicates the freeform layout mode in two dimensions.
  • flat-continuous indicates the continuous layout mode in two dimensions.
  • flat-discrete indicates the discrete layout mode in two dimensions.
  • flat-block indicates the block layout mode in two dimensions.

The terms "cell-placement rule", "stacking logic", "block-placement rule", and "volume" will be defined throughout this section.

Other modules extending this module can define more LayoutMode values than those specified in this section. Implementations supporting the Layout Mode module MAY support only one or more of the layout modes. Implementations SHOULD state which layout modes are supported.