Size, triangles and textures
The hard limits every model must meet, what Vysora optimises automatically, what it never does, and how to get a heavy model under your plan's cap.
Vysora Studio checks three numbers and rejects the model outright if any of them is over: the file size, the triangle count and the largest texture dimension. Nothing is reduced on your behalf to make a model fit. The limits are a gate, not a target.
The hard limits
| Limit | Value | What happens if you exceed it |
|---|---|---|
| Triangles | 500,000 | Rejected: Model has 812,430 triangles; the limit is 500,000. Decimate before uploading. |
| Texture dimension | 4096 px on the longest edge | Rejected: Texture "wood_diffuse" is 8192×8192; the limit is 4096². |
| File size, per plan | 5 / 15 / 30 / 100 MB | Rejected before the upload starts: File exceeds your plan's 30 MB per-model limit. Upgrade or optimize the model. |
| File size, platform | 200 MB | Rejected: File exceeds the 200 MB platform upload limit. |
The per-plan cap is the one you meet in practice:
| Plan | Per-model upload cap |
|---|---|
| Free | 5 MB |
| Starter | 15 MB |
| Pro | 30 MB |
| Enterprise | 100 MB |
Non-square textures are fine. The check is on the longest edge, so 4096 × 2048 passes and 8192 × 512 does not.
Above 50 material slots you get a warning rather than a rejection:
62 material slots (recommended ≤ 50) — consider merging materials.
There is no cap on vertices, nodes, meshes or draw calls. Only triangles are counted, and only real triangle geometry. Curves, lines and point clouds count as zero, so a model made of them passes the limit and then never appears in the configurator. Convert everything to mesh before exporting.
What Vysora does automatically
Every model gets the same treatment, regardless of size. There are no thresholds and nothing to configure.
| Step | What it does |
|---|---|
| De-duplicate | Merges byte-identical accessors, meshes, materials and textures. The same texture used by four materials is stored once. |
| Prune | Removes nodes, materials, textures and data nothing references — the stray camera, the hidden helper, the material with no faces. |
| Weld | Merges coincident vertices, reducing the vertex count. |
| Normalise units | Rescales the whole model from your declared source unit to metres. |
| Levels of detail | Generates two reduced versions alongside the full model. |
Pruning is deliberately configured to keep UV sets even on materials that have no texture of their own. Vysora applies the library's materials at runtime, and those need your UVs to map against. Do not strip UVs from a plain-coloured part on the assumption nothing uses them.
Welding can change shading. Where hard edges existed only because vertices were split, welding softens them. If a chamfer or a crease looks different in the Studio preview than in your viewport, that is usually why. Put a real material or geometry break where you need the edge.
The two levels of detail
Two reduced copies are generated from the optimised model:
| Level | Triangle target | Used for |
|---|---|---|
| lod1 | 50% | Middle distance |
| lod2 | 15% | Distance, and as the low-resolution placeholder the customer sees while the full model loads |
Both are targets, not guarantees. The simplifier stops early rather than exceed its error budget, so a hard-surface model with tight tolerances may reduce far less than the ratios suggest. Both are generated for every model, even a 200-triangle one.
Which means the customer's first impression of the product is the 15% version. Thin features, small chamfers, hardware and any geometry that spells out text disappear first at that ratio. If a detail carries the product's identity, give it enough geometry to survive simplification, or model it into the silhouette rather than as separate small parts.
What Vysora never does
This is the half that surprises people.
| Not done | Consequence |
|---|---|
| No decimation of the main model | Over 500,000 triangles is a rejection, not a reduction. The published model is your full-density mesh. |
| No texture resizing or recompression | A 4096² PNG stays a 4096² PNG. The only texture control is the rejection at 4096. |
| No Draco compression | Not applied on output — see below. |
| No mesh quantisation or meshopt compression | The simplifier is used only to build the two levels of detail. |
| No KTX2 / Basis texture compression | Pre-compressed KTX2 textures are accepted and passed through untouched, but nothing is compressed for you. |
Getting under the cap
Almost always, the weight is textures. Work in this order.
1. Count your textures before anything else. A single 4096² PNG with an alpha channel can be 20 MB on its own. Four of those and a 30 MB Pro cap is gone before the geometry is counted.
2. Drop the resolution. 4096 is the ceiling, not a recommendation. For furniture at configurator scale, 2048 is usually generous and 1024 is often indistinguishable. Halving a texture's dimensions quarters its pixel count.
3. Use JPEG where you can. PNG is lossless and heavy. Keep it only where you genuinely need an alpha channel or a clean normal map; base colour and roughness maps are usually fine as JPEG.
4. Share texture sets across materials. Identical textures are merged automatically, so four materials referencing the same wood grain cost one texture. Four slightly different exports of the same wood grain cost four.
5. Remember which parts get a library material anyway. A zone the customer will recolour from the Materials library does not need a baked texture from you — Vysora applies the library material at runtime. It does need UVs. Ship the geometry and the unwrap, not the finish.
6. Then look at geometry. Subdivision is the usual cause of a triangle rejection, so check the count after modifiers are applied. Remove interior structure, mechanisms and fasteners the customer will never see. Decimate before uploading — Vysora will not do it for you.
7. Do not compress with Draco. See above.
If the model is still over, the honest answers are a higher plan or a lighter model. There is no upload path that bypasses the cap.
Two other numbers worth knowing
Processing has a time budget. Converting an FBX has a five-minute ceiling, and the whole intake — convert, validate, optimise, build levels of detail, write — has a nine-minute one. At furniture scale you will not meet either, but a very heavy scene can fail on time rather than on a specific rule.
Textures for the Materials library are a different thing entirely. The swatch textures uploaded against a material in the library are capped at 400 KB and must be square, either 512 × 512 or 1024 × 1024, in PNG, JPG or WebP. Those limits have nothing to do with the textures embedded in your model. If you are preparing swatch images as part of the handoff, prepare them to that specification.
Related
- What Vysora needs from a model — the full contract
- My model came in wrong — including every rejection message