VVysoraStudio help

Export from Blender

Material slots, object names, slot order, units and pivot — how to export a Blender model that arrives in Vysora with the zones you intended.

Blender writes GLB directly, which is the format Vysora Studio prefers. No conversion step, nothing reinterpreted on the way in. What you see in the material slot list is what the customer gets to recolour.

Read How material zones work first if you have not. This page is the Blender-specific half of it.

Material slots are your zones

Vysora derives one zone per material used by a mesh. In Blender that means one zone per material slot that has faces assigned to it.

To create a zone:

  1. Select the object and open Material Properties.
  2. Add a slot for each part you want separately recolourable, and give each one a material.
  3. In Edit Mode, select the faces of that part, pick the slot, and press Assign.

An empty slot produces no primitive and therefore no zone. A slot that is present but unused is silently dropped on export.

A chair whose seat, legs and frame should be independently configurable needs three slots with three materials, even if all three start life as the same grey. Two parts sharing one slot are one zone forever, and nothing in Studio can separate them afterwards.

Name the materials after the part or the finish: Oak, Fabric, Plastic. Studio shows the material name on each zone card as the readable label. It is never matched on, so duplicate names are harmless, but the person mapping swatches reads them.

The object name becomes the zone's mesh name

Blender objects and mesh data have separate names, and they drift out of sync readily: an object called Chair can hold mesh data called Cube.003. The glTF exporter writes the object name onto the node, and that is the name Vysora uses.

Practical rules:

  • Rename every object in the Outliner. seat, legs, frame, footrest.
  • Make every name unique across the whole file. Matching is by bare string with no hierarchy, so two objects called leg in different collections cannot be told apart.
  • Never leave an object on Cube, Cube.001, Plane. They export as-is and turn up in Studio exactly that way.

If an object somehow has no name at all, Vysora falls back to the mesh data name, then to the literal string unnamed.

Slot order is the zone address — freeze it

Primitives come out in material slot order. The first slot with faces becomes slot 0, the second slot 1, and so on. Studio stores every folder assignment, pinned default and display name against that number.

The up and down arrows beside the slot list reorder slots. Use them after the client has configured the product and every zone below the one you moved is re-addressed. Nothing errors, nothing warns, and the configurator republishes cheerfully with the swatches on the wrong parts.

So:

  • Settle the slot order before you hand over the model.
  • If you re-export later, keep the existing order byte-for-byte and add new materials at the end of the list.
  • Be careful with Ctrl+J. Joining objects merges their slot lists, and the result order depends on which object was active. A join is one of the easiest ways to shuffle slots without noticing.

One object with several slots, or several objects?

Both produce the same number of zones, addressed differently.

Blender scene Zones in Vysora Slot numbers
One object, 3 material slots 3, all sharing that object's name 0, 1, 2
Three objects, 1 slot each 3, each with its own name 0, 0, 0

Separate, well-named objects are usually the better hand-off: the names carry meaning in Studio, and each zone is slot 0, so a slot reorder cannot re-address it. Use one object with several slots when the geometry genuinely is one shell.

Units and scale

Blender's default, one Blender unit to one metre, is exactly what Vysora wants. Model at real-world size and the scene needs nothing special.

Even so, declare the unit at upload rather than leaving Auto-detect. Auto-detect never recognises inches, misreads anything genuinely over 8 m, and misreads millimetre models under 800 mm.

Before exporting:

  • Apply transforms on every object — Ctrl+AAll Transforms. An object scaled at 0.001 in the viewport is a scale problem you cannot see, and a scale correction in Studio rescales the whole model, not one object.
  • Check the model against a reference: a dining chair around 0.45 m seat height, a barstool a little under a metre tall.

Pivot at the floor

Vysora wants the base of the object on the floor plane with the origin at the centre of the footprint.

Put the 3D cursor where the origin belongs — move the model so its base sits on Z = 0, then Shift+SCursor to World Origin — and finish with ObjectSet OriginOrigin to 3D Cursor.

Do not rotate the model to Y-up by hand. Blender is Z-up, glTF is Y-up, and the exporter's +Y Up option handles the conversion. Leave it on.

A base more than 5 cm off the floor produces this warning on upload:

Model base is 0.12 m from the floor (pivot not at Y=0) — it would float above the ground. The player auto-grounds it, but export with the pivot at floor level for exact placement.

glTF export settings that matter

FileExportglTF 2.0 (.glb/.gltf). Option names shift slightly between Blender versions; these are the ones with consequences.

Setting Use Why
Format glTF Binary (.glb) Single file. .gltf with a separate .bin is not an accepted upload format.
Include → Selected Objects On, with only the product selected Keeps cameras, lights, backdrops and reference geometry out. Unused nodes are pruned anyway, but a clean file is a clean zone list.
Transform → +Y Up On Converts Blender's Z-up to glTF's Y-up.
Data → Mesh → Apply Modifiers On Otherwise the customer sees the unmodified cage. Check the triangle count afterwards — subdivision is the usual cause of a rejection at 500,000 triangles.
Data → Mesh → UVs On Vysora applies library materials at runtime and needs the UVs to map them. It deliberately preserves UV sets even on materials with no texture of their own.
Data → Mesh → Normals On Otherwise they are generated, and you get a warning about it.
Data → Material → Materials Export "No export" or "Placeholder" strips exactly the information zones are built from.
Compression (Draco) Off Vysora decodes Draco on the way in and does not re-apply it, so a Draco file arrives, is decompressed, and the stored model is larger than the one you compressed.
Animation Off unless you have been asked for it Nothing in the configurator plays it, and it adds weight to a file you are trying to keep under a MB cap.

Textures must be embedded in the GLB, which binary glTF does by default. A GLB pointing at image files on disk arrives with nothing to resolve them against.

Before you hand it over

  • One material slot per recolourable part, every slot actually assigned to faces.
  • Every object renamed and unique.
  • Slot order settled; nothing reordered or joined since the client last saw it.
  • Transforms applied, model at real-world metres.
  • Origin at the base, +Y Up on.
  • Under 500,000 triangles after modifiers, no texture over 4096 px, under your plan's MB cap — see Size, triangles and textures.