For the complete documentation index, see llms.txt. This page is also available as Markdown.

Blender Setup

Set up your Blender file so Mimeeq scripts can bake AO maps, compress models and create AR versions for you. Learn the collection, naming and UV rules.

Prepare your models this way and Mimeeq scripts can process them automatically. Using our scripts gives you:

  • Automatic creation of a second UV map and of ambient occlusion (AO) maps

  • Baking and post-processing of the AO and shadow maps as image files

  • Compression of the file with Draco compression

  • Generation of a second, automatically decimated, lighter version of the model for AR

  • Creation of the CSV that automatically maps each object to its AO/opacity texture in the Mimeeq app

This entire process is automated, provided the initial .blend file is set up correctly as described below.


Output files

The process revolves around collections. Each collection produces several types of files:

#
File
What it contains

1

Compressed GLB

The compressed model associated with the collection

2

Low-poly GLB

A version of the model automatically simplified for efficiency

3

AO map

The ambient occlusion map, except for temp collections (see Temp collection)

4

Opacity map

Produced when any model in the collection includes SHADOW in its name (see "Shadow" command)

5

CSV file

Links these maps directly to their corresponding objects in the Mimeeq app

All file names are created from the file name and the collection name.

Example of the output files:

Folder of output files named after the .blend file and its collections

Collections

Sort your models into distinct collections based on two criteria.

The visibility of the object

For instance, a chair model without armrests would belong to one collection. The models for the first and second armrest options would each go in separate collections. This way the browser loads only the GLB files that match the parameters selected in the option panel of the Mimeeq configurator.

The expected impact on AO map quality

Many elements in a single map can reduce its quality. There is no strict rule on the number of objects or polygons that guarantees a good-quality shadow; it relies on judgement. For example, the chair above, with a mechanism, seat, backrest and base, might need separate collections to keep AO map quality high.

Example of a properly built structure:

Blender Outliner showing a chair split into well-named collections

Model requirements

For optimal results, we recommend a model with an even, optimised quad-based topology. It is not a necessity, but it is very good practice. There is no strict polygon limit, but balancing a lightweight model with realistic quality takes both intuition and skilled modelling.

Requirements and suggestions:

  • Split by material and visibility: segment the model into objects based on material variations and visibility options (which may be toggled on or off).

  • Apply transformations: apply all transformations and check the direction of normals, so the model's scale and orientation are accurate.

  • Centre and orient: make sure the model is centred and faces the camera directly.

  • Leave modifiers: there is no need to apply (flatten) modifiers; the script does it.

  • Skip textures: textures don't have to be applied, as the script removes them anyway. You add textures separately in the Mimeeq app.

  • Check close up: inspect the model at close range to make sure it has enough subdivision to avoid unsightly curvature, and that proper smoothing is applied.

Example of the recommended model topology:

Wireframe of a chair model with even quad topology

Unwrapping

Every object in the scene must be unwrapped, even if only with automatic unwrapping. If the model's structure changes, unwrap it again to prevent texture stretching.

To use materials from the Mimeeq library, you need to adjust the global scale of the UVs with the Magic UV plugin for Blender:

  1. Install Magic UV by following the Magic UV installation guide.

  2. Unwrap your object.

  3. Set World Scale UV to a density value of 3200.

Magic UV World Scale UV panel with the density set to 3200

Additional options

These further steps improve quality and optimisation even more. Each one is triggered by a keyword in an object or collection name:

#
Keyword
Add it to
Effect

1

shadow

Object name

Creates an opacity map for the collection

2

REMOVE

Object name

The object casts shadows in the collection but is not exported

3

temp

Collection name

No AO map is produced for the collection

4

Instances / INSTSRC

Collection name / source mesh name

Exports repeated elements as instances

"Shadow" command

Include the word shadow in an object's name to create an opacity map for the collection that contains it. This is especially useful for the plane beneath the model, to create a shadow underneath.

Example:

Blender scene with a shadow plane named with the shadow keyword under a chair

"REMOVE" command

Use the REMOVE command to improve the quality of shadows between collections. To have a mesh cast a shadow within a collection without being exported, make a copy of it, move it to the target collection and append "REMOVE" to its name.

Example:

Blender Outliner with highlighted REMOVE duplicates placed in several collections

In this example, we divided the model into several collections to optimise the quality of the AO maps. The highlighted objects with the "REMOVE" tag are duplicates of the objects without it. They only project shadows onto the non-REMOVE objects within the same collection and are not included in the final export. If the same "REMOVE" object applies to multiple collections, link it (don't duplicate it) between them.

"REMOVE" duplicates are most useful when they directly surround the object to be exported. A "REMOVE" shadow plane is also advisable to simulate the shadow from the ground on the object, for extra realism.

Temp collection

If a collection's name contains the word temp, it will not produce an AO map. Use these collections for elements that don't need the map, such as:

  • Engravings and logo placeholders

  • Stickers and tags

  • Items with glass or mesh material

  • Stitching geometry

Custom lights

Our default scripts do not include Blender light sources in the baking process. You can bake AO using Blender's lighting with another of our scripts. This method often needs many adjustments, as good results usually come from trial and error. Please contact us if you want to use this solution.

Instances

The Mimeeq app works with instances, so use them for repetitive elements in your model. To prepare your instances for the script:

  1. Include the word Instances in the name of the collection.

  2. Create a source mesh and include INSTSRC in its name.

  3. Apply ("flatten") modifiers on the source before creating instances, rather than leaving them active.

  4. Press Alt+D to generate instances from the source object.

  5. Keep all instances in the same collection as their source mesh. If there are many instances, organise them into sub-collections within the main collection.

Instances can be moved, rotated and scaled, but their individual geometry must not be altered.

Example of properly set up instances:

Blender scene with desk leg instances and their INSTSRC source mesh set aside

The INSTSRC object can be a visible part of the model, or it can be placed off to the side. The app can hide it through specific rules. This is useful when instances of the same item (like a desk leg) need to be shown or hidden depending on another aspect of the model, such as the desk size. In that case, the instance source is easier to control when it sits outside the model (see the screenshot above).


Iterations and revisions

It's common to need multiple iterations to correct errors, especially in complex projects with many meshes and collections. The process typically involves preparing the files, running the scripts, identifying any issues, and rerunning the scripts 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.


Last updated

Was this helpful?