Modular Projects

Build drag-and-drop modular configurators with snap-aware placement, dedicated parts-picker UI Design settings, and consistent behavior across the Preview modal and Share view.

When to Use Modular Projects

Repeatable modules

Use Modular projects for systems assembled from repeatable 3D units such as kitchens, sectionals, storage, and lighting.

Scene composition

Users place and arrange modules directly in the 3D scene rather than only switching materials or visibility on a fixed model.

Admin-authored behavior

Each variant can define snap faces, offsets, origins, and the UI Design used by the module picker.

Preview and Share parity

The same module picker settings apply in both the Preview modal and the public Share view link.

Modular Block Setup

The Modular block powers drag-and-drop module assembly in Modular project types. End users compose products by placing, snapping, rotating, and mirroring independent 3D modules in a shared workspace. Ideal for kitchen builders, furniture systems, modular shelving, and similar products.

A module model is a placement template, not a fixed scene object. Everywhere else in the editor, the Position / Rotation / Scale you set in Objects mode appears exactly in Preview and the Share view. The moment you assign a 3D model to a Modular block variant, that model becomes a template instead: it is hidden in Preview and Share, and your customers position copies of it by snapping. So where the template sits in Objects mode does not determine where the placed copies land — the snap system does. This is the one intended difference between Objects-mode placement and what shoppers see, and it is why an "Extra Roof" template parked in one spot in the editor shows its placed copies in different positions in the configurator. (Let the Modular relative-size fit set the template's scale — don't hand-scale a model you also use as a module, or every placed copy inherits that scale.)
  1. 1Add a "Modular" option block (only available in Modular project type).
  2. 2Click "Add Variant" to create module variants. Each variant needs a label, value, and a selected 3D model.
  3. 3For each variant, toggle the Active Snap Sides — the bounding box faces (Top, Bottom, Left, Right, Front, Back) where the module can connect to others.
  4. 4Open the "UI Design" section to control how parts appear in Preview modal and Share view: choose Grid or List layout, thumbnail size, and how part names are displayed.
  5. 5For long part names, use List layout for always-readable rows, or Grid with 2 columns plus 2-3 label lines for a compact but readable palette.
  6. 6Set the Snap Origin — the corner alignment used when modules snap together (Lower Left, Lower Center, or Lower Right). Default is Lower Left.
  7. 7Optionally override the Snap Origin per side using the "Snap Origin Per Side" section — useful when different sides need different alignment (e.g., Left → Lower Left, Front → Lower Center).
  8. 8Fine-tune snap positions using the "Snap Offset (Advanced)" section to set per-side offset values.
  9. 9For asymmetric modules (e.g. an extension roof whose center is offset), use the "Snap Alignment Offset" section to shift incoming modules along the face plane on specific sides. This is a target-side setting — configure it on the module that others snap TO.
  10. 10If a variant must always connect from one authored side, set "Force Snap Side" on that variant.
  11. 11Configure Side Snap Settings: consumer add method (Drag & Drop or Click to Attach), rotation, mirroring, deletion, and visual feedback options.
SettingDescription
Snap OriginDefault corner alignment for all sides — Lower Left, Lower Center, or Lower Right.
Snap Origin Per SideOverride alignment for individual sides. Sides without an override inherit the global Snap Origin. A badge shows how many overrides are active.
Snap Offset (Advanced)Per-side numeric offset (−3 to +3) that moves each snap face plane in or out along its axis, defining an effective "snap box" that can be smaller (or larger) than the full model — e.g. raise the bottom plane above a roof's legs. This offset box is the single reference everywhere: the snap origin starts from it, the bounding-box highlight (editor and the connect-here indicators in Preview/Share) shows only the offset region, modules snap flush at it, and the Preview/Share camera frames it.
Snap Alignment OffsetPer-side lateral offset (−3 to +3) applied to modules that snap TO this variant. Shifts visitors along the face plane to compensate for asymmetric geometry.
Force Snap SideAvailable on every modular variant. Forces the module to always snap using a specific source side — any of Top, Bottom, Left, Right, Front, or Back, as long as that side is enabled in Active Snap Sides.
Parts Palette LayoutChoose Grid or List for the module picker shown in Preview modal and Share view. List keeps long part names readable; Grid is denser and more visual.
Thumbnail SizeSet the module thumbnail card size: Small, Medium, Large, or XL. Larger sizes improve image recognition but reduce visible density.
Grid ColumnsWhen using Grid layout, choose 2, 3, or 4 columns. Fewer columns give more room for long names.
Part Name DisplayShow names below thumbnails, overlay them on thumbnails, or hide them entirely when thumbnails are self-explanatory.
Label LinesControl how many lines each part name can occupy before truncating. Use 2-3 lines for readable names in grid layouts.
Instance Count BadgeShow or hide the counter badge that indicates how many copies of a module are currently placed.
Consumer Add MethodHow end users place modules: "Drag & Drop" (free placement) or "Click to Attach" (select a target side, then click a thumbnail; dragging still works).
Enable RotationAllow end users to rotate placed modules.
Enable MirrorAllow end users to mirror placed modules.
Enable DeleteAllow end users to delete placed modules.
Floating ToolbarShow an action toolbar on the selected module (rotate, mirror, delete).
Snap DistanceHow close modules need to be before they snap together.
Grid Snap SizePosition quantisation grid size (0 = free movement).
Cross-Block SnapAllow modules from different Modular blocks to snap together.
One Module Per SideOff by default. When on, each side of a host module accepts only one module from this block (all variants). Other sides and other blocks are unaffected.
Enforce GroundingEnsure modules always sit on the ground plane.
Show Alignment GuidesDisplay alignment lines when module edges align during drag.
Show DimensionsDisplay distance measurements between modules.
Per-side Snap Origin: When you need different alignment per face (e.g., Left side aligns lower-left, Front side aligns lower-center), expand the "Snap Origin Per Side" panel under the snap sides grid. Each active side gets its own dropdown. Sides set to "Default" inherit the global Snap Origin value.
Readable part names: For module labels such as "Left Extension", "Sliding Door", or "Connector Panel", prefer List layout when text clarity matters most. If you want a more visual picker, use Grid with 2 columns and 2-3 label lines. Reserve Overlay labels for image-led products where thumbnails remain easy to recognize.
Restrict snap directions per pairing: Active Snap Sides decide which of a module's own faces can connect. To go further — e.g. "Extra Roofs may extend a Main Roof sideways but never off its front or back" — use a Disable conditional-logic rule in the Modular block. It blocks specific host faces for a chosen module/host pairing without hiding anything, and works in Preview and the Share view. See the Conditional Logic tutorial → "Disable Snap Sides (Modular)".
One module per block per side (optional): Turn on One Module Per Side in a Modular block's Side Snap Settings to let each side of a placed module accept at most one module from that block. It's off by default and set per block. The rule covers every variant in the block — not just the same one. Example: enable it on a Roof Parts block (Wall A, Wall B, Side Panel) — once a shopper connects Wall A to the left side of a Roof, no Wall B, Side Panel, or other Roof Parts variant can also attach to that same left side; they can still go on the right, front, or back, and modules from a different block can still share the side. Shoppers who try to double up see "Only one module can be connected to this side." It blocks both attaching a second module to one host face and continuing a straight run of the same block along that face, while still allowing corner turns and corner/connector pieces — so perimeters keep working. (It treats each module a panel connects to independently, so on a structure built from several modules each module's face can still take one panel.)

Grid layout

Best when thumbnails matter most and names are short to medium length.

Left Extension
Right Corner
Sliding Door
Connector Panel

List layout

Best when names must remain easy to read in Preview modal and Share view.

Left Extension
Right Corner
Sliding Door
Connector Panel

Connection Indicators While Dragging

When a shopper drags a module in Preview or the Share view, the configurator highlights where it can connect. Indicators appear only on the faces where the module being dragged can actually attach — not on every face of every placed module. For example, an apex/roof piece that connects via its underside lights up the tops of the walls it can sit on, and never the wall sides; a wall piece that connects edge-to-edge lights up the side faces, not the tops. This keeps the workspace clean and makes it obvious where a piece belongs.

Each available connection point shows as a red open ring ("you can connect here"). As the dragged module nears a spot where it will snap, that point turns into a green filled marker that grows and pops ("release to connect"). Red → green, open ring → filled, small → large: the cue is legible at a glance and doesn't rely on color alone, so it stays clear for color-blind users. On larger assemblies, connection points far from where the shopper is working fade back so the area they're building stays uncluttered, and the rest of the red points dim while one is locked on so the green target is unmistakable.

Whether a face shows as a connection point is driven by each variant's Active Snap Sides (and Force Snap Side, if set). If a connection you expect isn't lighting up, confirm the connecting face is enabled in Active Snap Sides on the module being dragged. If an unwanted connection appears, narrow the Active Snap Sides or use a Disable Snap Sides conditional rule.

Camera Behaviour in Preview and Share

By default, the camera automatically reframes to fit all placed modules in view every time a module is added or connected — this is the Auto-Reframe on Module Connect setting found in Project Settings → Camera. It fires for all placement methods: clicking to add the first module, snapping a module to another via click, and both drag-first and drag-snap placements.

SettingDefaultDescription
Auto-Reframe on Module ConnectOnAutomatically adjusts the camera to keep all placed modules in view each time a module is added or snapped in Preview or Share. Applies to all placement methods.
Disable Auto-Reframe on Module Connect when end users are expected to work on a large scene and want to keep their chosen camera position while assembling modules, or when your initial camera angle is intentionally framed around a key part of the assembly.

Performance: Drag Ghost Preview

The Show Modular Drag Ghost setting (Project Settings → Loading, Modular projects only) controls whether a translucent ghost clone is rendered while the user drags a module. It is off by default.

SettingDefaultDescription
Show Modular Drag GhostOffRender a translucent Phong-shaded ghost with wireframe overlay while dragging modules. Turn on for richer visual feedback; keep off on scenes with many placed modules for better performance. Snap indicators, cursor shape, and drop accuracy are unaffected by this setting.
Enable the drag ghost when your product has only a handful of module variants and end users benefit from seeing exactly where the module will land. For complex assemblies with 20+ placed modules, keeping the ghost off avoids per-frame clone rendering and improves drag responsiveness.

Material or Color Options for Placed Modules

In Modular projects, material and color variants can apply to placed modules globally. Use a separate Thumbnail Selector, Select Material, Dropdown, Toggle, Checkbox, or Carousel block for choices such as material, paint color, fabric color, or texture. The Modular block controls which modules are placed; the material or color option block controls how all matching placed modules look.

  1. 1Create the Modular block first and configure the module variants that users can place.
  2. 2Create a separate material or color option block, such as "Module color options" with variants like Natural, White, Grey, or Brown.
  3. 3Open each material or color variant, choose Material or Color, then set Target Scope to "All placed modules" or "Selected module types".
  4. 4Optionally select mesh parts by name to limit the option to wood, fabric, metal, or another repeated part group. Leave the parts empty to affect the full module mesh.
  5. 5Preview the project, place modules, and switch material or color options. The selected option is applied to existing placed modules and to modules added afterward.
Modular-only scope: Module-wide material and color targeting is only shown in Modular projects. Standard Configurator and Viewer projects keep the normal target object and target parts workflow.

More in Projects