Limits and supported formats
Every format, quota and hard limit in Vysora Studio: upload caps, triangle and texture limits, menu allowances, player languages.
Every number here is enforced by the product. Where a limit rejects a file outright, the message you see is on Error and warning messages.
Model formats
The format is read from the filename extension, lowercased. Nothing else is inspected before upload.
| Extension | Accepted | What happens to it |
|---|---|---|
.glb |
Yes | Used as it arrives. Embedded materials, textures, node names and hierarchy all survive into validation. |
.fbx |
Yes | Converted to GLB on the server before validation. Embedded materials and textures survive as far as the converter carries them. Conversion is stopped after 5 minutes. |
.obj |
Yes | Converted to GLB on the server. Materials are lost — a single-file upload carries no .mtl and no texture sidecars. Always produces a warning, and usually leaves a model with no zones to recolour. |
.gltf |
No | The JSON-plus-.bin form of glTF is not accepted. Export as binary glTF (.glb) instead. |
| Anything else | No | Rejected before the upload starts: Accepted formats: .glb, .fbx, .obj. |
Whatever the format:
- Textures must be embedded in the file. Uploads are single-file, so a model that references its textures by external path has nothing to resolve them against.
- Nothing is resized or recompressed. A 4096² PNG inside your GLB stays a 4096² PNG. The only texture control is the hard rejection cap below.
- Nothing is decimated. A model over the triangle limit is rejected, not simplified.
- Pre-compressing with Draco buys you nothing. Vysora decompresses the mesh on intake and writes the published file uncompressed, so the result is larger than what you uploaded. Reduce triangle count and texture size instead.
glTF extensions
Only extensions your file marks as required are checked. An extension the file merely uses passes unexamined and may not render.
| Extension | Result |
|---|---|
KHR_draco_mesh_compression |
Accepted |
KHR_texture_basisu |
Accepted |
KHR_texture_transform |
Accepted |
KHR_materials_unlit |
Accepted |
KHR_materials_emissive_strength |
Accepted |
KHR_mesh_quantization |
Accepted |
KHR_materials_transmission |
Accepted, downgraded to opaque — reported as "transparency" |
KHR_materials_ior |
Accepted, downgraded — reported as "refraction" |
KHR_materials_volume |
Accepted, downgraded — reported as "thickness / absorption" |
KHR_materials_specular |
Accepted, downgraded — reported as "specular tint" |
KHR_materials_iridescence |
Accepted, downgraded — reported as "iridescence" |
KHR_materials_sheen |
Accepted, downgraded — reported as "sheen" |
KHR_materials_clearcoat |
Accepted, downgraded — reported as "clearcoat" |
| Any other required extension | Rejected |
A downgraded surface renders opaque. For tinted or frosted glass, set a per-material opacity in the Materials library instead. True refraction is not supported.
Plan quotas
| Free | Starter | Pro | Enterprise | |
|---|---|---|---|---|
| Products | 3 | 20 | 200 | unlimited |
| Material textures (files) | 3 | 25 | 150 | 1,000 |
| Storage | 20 MB | 100 MB | 400 MB | unlimited |
| Views per month | 1,000 | 10,000 | 50,000 | 1,000,000 |
| Max upload per model | 5 MB | 15 MB | 30 MB | 100 MB |
| Published configurators — the Studio line | 1 | 1 | 1 | unlimited |
| Published configurators — Showroom and Atelier | 1 | 5 | 25 | unlimited |
- The upload cap you actually meet is 5 / 15 / 30 / 100 MB, not the 200 MB platform ceiling. The ceiling sits above every plan.
- Texture quota counts files, not materials. A material can hold two — a base-colour texture and a normal map — and each counts as one. Replacing a texture already in a slot is always allowed. Duplicating a material costs nothing, because both copies point at the same stored file.
- The published-configurator allowance counts configurators that are live, not configurators you have created. You can build as many drafts as you like.
- Deleting a product frees its slot immediately. The quota is a live count.
Plan & billingshows your real usage against these numbers.
Hard model limits
| Limit | Value | What happens |
|---|---|---|
| Triangles | 500,000 | Rejected. Decimate and re-upload. |
| Texture dimension | 4096 × 4096 | Rejected. Non-square is fine — the longest edge is measured against 4096. |
| Platform upload ceiling | 200 MB | Rejected, whatever your plan allows. |
| Material slots | 50 recommended | Warning only. Above 50 the model still processes. |
| Vertices, meshes, nodes, draw calls | no limit | — |
- Only triangle primitives are counted. Geometry exported as lines or points contributes nothing to the count — and will not render either.
- Two simplified copies of every model are generated automatically, targeting 50% and 15% of the triangle count. The 15% copy is what a customer sees while the full model loads, so thin features, chamfers, small hardware and text geometry are the first things to disappear.
Size and unit checks
Vysora normalises every model to metres. When you leave Source unit on Auto-detect, the unit is guessed purely from the model's largest dimension:
| Largest dimension in the source file | Assumed unit |
|---|---|
| over 800 | millimetres |
| over 8 | centimetres |
| anything else | metres |
These thresholds produce warnings, never rejections:
| Check | Threshold |
|---|---|
| Model suspiciously large | longest dimension over 50 |
| Model suspiciously small | longest dimension under 0.01 |
| Pivot not on the floor | base more than 0.05 from Y = 0 |
| Implausible scale, measured after normalisation | over 8 m, or under 0.03 m |
Product settings also checks the finished size against a band for your product line, and warns outside it:
| Product line | Expected longest dimension |
|---|---|
| The Studio line | 0.15 m – 5.00 m |
| Showroom | 0.15 m – 6.00 m |
| Atelier | 0.003 m – 0.30 m |
Library texture rules
These apply to textures you upload in the Materials library, not to textures embedded in a model.
| Rule | Value |
|---|---|
| Formats | PNG, JPG, WebP |
| Maximum file size | 400 KB |
| Dimensions | square, 512 × 512 or 1024 × 1024 only |
| Slots per material | 2 — Base-color texture and Normal map |
No other dimension is accepted. Not 256, not 2048, not a non-square image. Nothing is resized for you, which is why an out-of-size image is refused rather than scaled.
Normal maps must be tangent-space.
Part notes
| Rule | Value |
|---|---|
| Notes per model | 5 |
| Note title | 60 characters |
| Note body | 200 characters |
| Title left blank | saved as Note |
Notes are anchored to a point on the model's surface and are read-only in the player. A customer sees them only after turning Notes on.
Placement
Studio line only
| Setting | Range | Default |
|---|---|---|
Enable snap-to-grid when consumers drag this model |
on / off | on |
Grid (m) |
step 0.05 | 0.25 m |
Max instances |
1 – 5 | 5 |
Two further values exist in the data and have no control in Studio: the minimum spacing between two placed copies is 0.4 m, and the radius a customer can place within is 6 m.
Display size
Showroom and Atelier only
| Setting | Range | Default |
|---|---|---|
Display size |
25% – 400%, step 5 | 100% |
Display size is presentation only. The measuring tool in the published configurator always reports the model's real size, whatever you set here. Studio-line configurators always publish at 100%.
Menu limits per plan
| Plan | Top-level menu sections | Submenus |
|---|---|---|
| Free | 5 | 5 |
| Starter | 7 | 10 |
| Pro | 10 | 10 |
| Enterprise | 20 | 20 |
Both are checked when you press Publish, not while you build. The builder shows no counter, so a tree that is too large looks fine until the publish is refused. The messages are on Error and warning messages.
Player languages
You can offer seven languages, set in the Languages popover inside ⚙ Settings.
| Language | Code | Notes |
|---|---|---|
| English | EN |
|
| Arabic | AR |
Flips the player to right-to-left |
| French | FR |
|
| German | DE |
|
| Dutch | NL |
|
| Flemish (Belgian Dutch) | NL-BE |
|
| Spanish | ES |
Rules:
- One language is the default. It cannot be removed from the offered list.
- Menu labels are entered in English only. Untranslated labels fall back to the default language.
Let visitors switch languageis on unless you turn it off.
Library and bulk limits
| Rule | Value |
|---|---|
| Materials shown per page | 24, then Load 24 more |
| Materials selected in one bulk move or delete | 500 |
| Models moved to a collection in one operation | 500 |
| Models renamed by one collection rename | 500 |
| Folders a material can belong to | 1 |
| Products per Product node in a configurator | 1 |
| Products per configurator, Showroom and Atelier | 1 |
| Menu tree depth | no limit |
| Menu nodes in total | no limit |