3D Model Specifications
This page provides a detailed technical reference for the 3D model generation and optimization pipeline used in 3D Menu Pro.
Output Format
All 3D models are delivered as GLB (glTF Binary) files. GLB is an industry
standard for 3D content on the web, supported by all major browsers and
frameworks including Three.js and the
<model-viewer> web component.
Size Limit
The maximum size for a final optimized model is 2 MB. Models that exceed this limit after the initial optimization pass are automatically simplified. The auto-simplification triggers when the model is over 2 MB and the polygon count is above 10,000. If polygon count data is unavailable, the system defaults to simplification as a safety measure.
Optimization Pipeline
Every generated 3D model passes through a multi-stage optimization pipeline to ensure fast loading on mobile devices:
- Deduplication β Removes duplicate accessors, materials, meshes, and textures to reduce redundancy.
- Pruning β Removes unused nodes, materials, and other resources that do not contribute to the visible model.
- Welding β Merges vertices that share the same position and attributes, reducing vertex count.
- Simplification β Reduces polygon count while preserving visual fidelity. Uses the meshoptimizer library for quality-aware mesh decimation.
- Quantization β Reduces the precision of vertex attributes (positions, normals, UVs) to use less memory with minimal visual impact.
- Texture Compression β Converts textures to WebP format for smaller file sizes while maintaining visual quality.
- Draco Compression β Applies Draco mesh compression for the final reduction in file size. Draco is decoded by the browser at load time.
Model States
| State | Description | Duration |
|---|---|---|
PENDING |
Item is queued in the processing queue, waiting for an available worker. | Varies based on queue length |
GENERATING |
The AI provider is generating a 3D model from the input photo. | 30 seconds to 2 minutes |
PROCESSING |
The generated model is being optimized through the pipeline above. | 10 to 30 seconds |
READY |
The model is optimized and live on the public menu. | Final state |
FAILED |
Processing encountered an error. Can be retried from the dashboard. | Final state (until retry) |
Fetch Timeouts
The system enforces timeouts during model delivery to prevent slow-loading experiences:
- Poster image fetch: 30-second timeout
- Model download: 120-second timeout
If a model download times out, the viewer falls back to the poster image (enhanced photo) so the customer always sees something.
WebGL Compatibility
3D models are rendered using WebGL in the browser. If WebGL is not available
or the context is lost (which can happen on memory-constrained mobile devices),
the viewer automatically falls back to the
<model-viewer> web component, which provides broad
compatibility. If neither WebGL nor model-viewer is supported, the enhanced
2D photo is displayed instead.