> For the complete documentation index, see [llms.txt](https://help.mimeeq.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.mimeeq.com/configurator/3d-assets/modular-products-in-blender.md).

# Modular Products in Blender

Build modules that snap, collide and measure correctly in Mimeeq modular configurators. Learn to set up snaps, collisions and dimension boxes in Blender.

Prepare modules for a modular product in the Mimeeq App using Blender. This article covers the set-up logic, snaps, collisions, dimension boxes and multi-direction snaps.

***

## Set-up logic

Plan the logic of your modular configurator carefully before you start. Modular systems are complex and each one is unique. Consider which elements connect to each other and what constraints exist for individual modules and their configurations. Mapping everything out in advance helps you avoid problems and saves time in the long run.

{% hint style="info" %}
We recommend contacting Mimeeq Studio before you start working on the configurator, to make sure the logic is correct and everything will work smoothly. We're familiar with all the nuances and possibilities and will be happy to help.
{% endhint %}

***

## Snaps

Snaps are plane objects defined in the Mimeeq App as **SNAP** points. They are the connection points between modules in the modular system.

### Snap characteristics

* **Flat planes:** snaps should be completely flat planes with 4 vertices, without any thickness or subdivisions.

![Front and side view of a snap plane](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FtKJ9nMpbNXYWFCSj0XQZ%2Ffront-and-side-view-os-the-sna_1fqwves.jpg?alt=media)

* **Normals:** the snap normal direction is the most important factor. Blue snaps should connect to blue, red to red. Opposite orientations cause flipping behaviour.

![Correct and incorrect snap set-up between modules](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FyCo2Dj2MXiiWjgdn0Uij%2Fcorrect-and-incorect-1_7kodpm.jpg?alt=media)

* **Centres:** the centre of the snap is the most critical factor. Snap centres must align for proper connections. They always "glue" to each other at their centres, without any space in between.

![Snaps with their centres aligned between modules](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2F096flJB3eLLo2lWYnifH%2Fsnaps-having-the-center-in-the_18r1sjs.jpg?alt=media)

* **Size:** it's best to keep snap sizes consistent and square, but the exact size is not critical as long as the centres align.
* **No overlaps:** snaps in a single module should not intersect or overlap, as this results in welding and improper functionality.

![Incorrect and correct snaps within a single module](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2F3LzKGdtSdb1Q6zm81act%2Fnew-project-12_zjs3mu.jpg?alt=media)

* **Conditional snaps:** you can activate snaps only under certain circumstances (for example, show the snap only when an arm option is selected).
* **Sliding:** rectangular snaps work best with the slide feature (for example, sliding an added pillow across a straight backrest).

![Two modules with correctly set up snaps](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2F8IspUyARuk0j97I6pvDe%2Fcorrect-and-incorect-2_1nhjqwz.jpg?alt=media)

***

## Collisions

A collision is a cube object defined in the Mimeeq App as the collision type of the mesh. Collisions stop modules that should not intersect from doing so. They can also be used as a workaround to hide unwanted snaps in certain cases.

Collision boxes are separate from dimension boxes, which should match the precise dimensions of the object. Collisions do not need to match the exact dimensions of the module; they only need to stop the modules from overlapping.

### Collision characteristics

* **Always cubic:** collision boxes are always cubic, whatever the object's actual shape. They cannot take any other form, such as a trapezoid or a curved shape. To get such shapes, arrange several separate collision boxes in the desired configuration.

![L-shaped collision created from two cubic meshes](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FVnckQEgzd8R5xKQxPC5L%2Fnew-project-13_1q0xixi.jpg?alt=media)

* **Placement and size:** where the collision boxes sit and how big they are determine how the object collides and interacts with other objects.

![Correctly used collision box on an object](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FWeTUSI8ptHkKVhTWMsGy%2Fcorrect-and-incorect-3_kh1jpq.jpg?alt=media)

***

## Dimension boxes

Dimension boxes are cubes with specific measurements that outline objects to display their exact dimensions. They prevent small disturbances in the displayed measurements caused by model imperfections, especially in upholstered products.

### Dimension box characteristics

* **Snap placement:** to keep perfect dimensions in the modular system, snaps must be "glued" exactly at the edges of the dimension boxes.
* **Model size:** the model can be smaller or larger than the dimension box to look realistic when connected (for example, puffed upholstery). The dimension boxes still display the correct measurements.

![Dimension box around puffed upholstery, keeping the displayed dimensions correct](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2F0hv5EdvY1QVVo1P3NsE5%2Fnew-project-7_16dr624.jpg?alt=media)

* **Cubic shape:** dimension boxes must be cubic.

![Dimension box with snaps at its edges](https://621103948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsqWfi8ifBhTdkvf1vOlY%2Fuploads%2FBCEYMBxCYrSEj3Hugp9H%2Fnew-project-9_z8r7qc.jpg?alt=media)

***

## Multi-direction snap

You can prepare multi-direction (3D) snaps manually or with Mimeeq scripts.

<table><thead><tr><th width="93.36328125">#</th><th width="186.9609375">Workflow</th><th>When to use it</th></tr></thead><tbody><tr><td>1</td><td>Standard</td><td>You don't want to use Mimeeq scripts and will export snaps manually</td></tr><tr><td>2</td><td>Automated</td><td>You want to use Mimeeq scripting services</td></tr></tbody></table>

### Standard workflow (without Mimeeq scripts)

If you implement 3D snaps without Mimeeq's scripting services, you handle snap exports manually. Keep these technical points in mind:

* Do not flip the normals; use the proper rotation of the snap instead.
* Do not apply transforms, since snap positioning depends on the raw object transformation.
* Export the object to GLB with Draco compression.

### Automated workflow (with Mimeeq scripts)

To automate your workflow, we recommend our scripting services. Follow these steps to prepare the Blender file for scripting.

{% stepper %}
{% step %}

### Install the Custom Snap Model plugin

1. Download the [add\_custom\_model\_plugin.zip](https://d1bd8jihtqzqs4.cloudfront.net/help_articles/add_custom_model_plugin.zip) file containing the Custom Snap Model plugin.
2. Open Blender 4.2 or higher.
3. Go to **Edit** → **Preferences** → **Add-ons**.
4. Click **Install from Disk...** and select the downloaded zip file.
5. Enable the plugin by ticking the checkbox next to it in the add-ons list.

The plugin integrates with Blender's existing interface without a restart.
{% endstep %}

{% step %}

### Open the Snap model tool

The plugin gives you two ways to add a snap:

* **Primary method:** use the **Add** menu → **Mimeeq Models** → **Snap**.
* **Alternative method:** in the 3D viewport, press **Shift+A** → **Mimeeq Models** → **Snap**.
  {% endstep %}

{% step %}

### Create the initial snap

* When first added, the snap model appears as a pyramid shape, so you can easily see its direction and rotation (side arrow).
* The snap object starts with default transform values: **Location** (0,0,0), **Rotation** (0°,0°,0°), **Scale** (1.000,1.000,1.000).
* The object is named with a specific convention; the prefix is **md-snap**.

{% hint style="warning" %}
Do not change the **md-snap** prefix. It tells the export script not to apply any transforms to this object (the script applies them to every other object).
{% endhint %}
{% endstep %}

{% step %}

### Position and orient the snap

* Position the initial snap at the desired connection point on your 3D model.
* Use the **Transform** panel to adjust the **Location** and **Rotation** values precisely. This is crucial, as the system relies on the rotation of the target snap.
  {% endstep %}

{% step %}

### Create multiple snap variations

* Duplicate the initial snap object (**Shift+D**) to create additional snap points.
* Rename each snap with a descriptive name that follows your project's naming convention. Keep the **md-snap** prefix.
* Rotate each duplicated snap to get the desired 360-degree directional coverage.
* Each snap's rotation defines its unique connection behaviour and object alignment.
  {% endstep %}
  {% endstepper %}

***

## Iterations and support

It's common to need multiple iterations to correct errors, especially in complex projects with many modules. The process typically involves preparing the files, setting up modules, identifying any issues, and rerunning until you reach the desired quality. This iterative approach is standard in the workflow. **Please contact us about any edge case not covered by this documentation.**

***

## Related articles

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Blender Setup</strong></td><td>Set up your product in Blender to work with Mimeeq's export scripts.</td><td><a href="/configurator/3d-assets/blender-setup.md">Blender Setup</a></td></tr><tr><td><strong>3D Asset Requirements</strong></td><td>File formats, polygon limits, and technical specifications for 3D assets.</td><td><a href="/configurator/3d-assets/asset-requirements.md">3D Asset Requirements</a></td></tr><tr><td><strong>Photo &#x26; Video References</strong></td><td>Guidelines for capturing reference photos and videos to support 3D modelling.</td><td><a href="/configurator/3d-assets/photo-and-video-references.md">Photo &amp; Video References</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.mimeeq.com/configurator/3d-assets/modular-products-in-blender.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
