Welcome > Overview > Account Creation/Login > Project Setup > 3D Setup
For 3D Projects Designed for VR4Life
Creating optimized 3D content ensures a smooth experience across all VR4Life-compatible platforms. Below are essential guidelines and best practices when preparing your assets using Blender, 3DS Max, ZBrush...
Every files you will need to send in format .glb because it will be reprocessed on our server using recompression algorithms, texture suitability, geometry compression and removing invalid references from the file.
⚠️Invalid files will be removed from the server without warning as our tool cannot process them.
Depending on your target platform, you should optimize your 3D models and scenes accordingly:
Meta Quest
Polygon Budget: Less than 1.200.000 triangles
Notes: Highly recommended to keep scenes lightweight due to hardware limitations of standalone VR.
Apple Vision Pro
Polygon Budget: Less than 14.000.000 triangles
Notes: Performance drops with overly complex geometry.
PlayStation VR / SteamVR (PCVR)
Polygon Budget: Over 1.200.000 triangles supported
Notes: Supports heavier scenes, but optimization is still critical to ensure smooth performance and reduce load times.
Target a maximum of 1.200.000 tris per scene to ensure good performance on most devices.
Proper mesh and UV optimization will greatly affect performance and file size.
Use textures sized between 512x512px and 2048x2048px.
Avoid unnecessarily large images—high quality does not mean high resolution.
Recommended formats: JPG and PNG (compressed but clear).
Use texture atlases when possible to reduce draw calls.
When exporting to GLB, shaders are automatically simplified.
Use only basic PBR maps: Base Color (Albedo), Roughness, Metallic, Emission.
Avoid procedural materials—bake them into images beforehand.
For glass: use Alpha only; transparency maps must be simple.
Maintain clean, organized UVs with uniform scale.
Only one UV per material.
Always apply scale/rotation before UV unwrapping.
In the context of VR4Life, where performance is critical, the golden rule for small objects (such as toothbrushes, fluffy rugs, or wire mesh) is: If the detail is smaller than your finger, it should not be modeled; it should be textured.
Here is the technical explanation using your example:
❌ The Wrong Way (Pure Geometry)
If you model every single bristle of the brush as a small cylinder:
Poly Count: ~5,000 to 10,000 triangles just for the brush head.
The VR Issue: Pixel occlusion and aliasing. From a distance, the bristles turn into vibrating visual noise. The graphics engine wastes processing power calculating physics and lighting for thousands of cylinders that the user can barely distinguish.
✅ The Right Way (Volume + Texture)
You model the brush head as a simple solid block (similar to a slightly deformed cube).
Poly Count: ~12 to 20 triangles.
The Visual Trick: You apply texture maps to simulate complexity:
Normal Map (Relief): Makes the light react as if there were rounded bristles there.
Alpha Map (Cutout/Transparency): "Erases" the gaps between the bristles at the top of the block, creating the illusion of separated strands.
Drastic Vertex Reduction: You swap 10,000 vertices for 20. The GPU's Vertex Shader is freed up.
Visual Stability: A texture with Mipmaps (blurred versions for distance) is visually much smoother than dense geometry, eliminating "shimmering" (aliasing) when the user looks from afar.
Simplified Physics: The collider will be just a simple box, not a complex mesh.
Summary: For VR, an "ugly" block that runs smoothly is better than a "perfect" toothbrush that makes the game stutter. The user's brain fills in the details through the texture.
Name cameras as CAMERA001, CAMERA002, etc. to ensure automatic recognition by the platform.
Separate animated models from static ones for independent playback.
Remove unnecessary elements (lights, cameras, hidden objects).
Apply transformations to avoid interaction errors.
Baking consolidates lighting, shading, and materials into image textures.
Especially useful when replacing complex shaders with simple textures.
Creating customizable 3D assets allows users to switch between different styles (Vintage, Modern, Classic, etc.) and materials (colors, textures) directly within VR4Life.
To make this possible, each object must follow a clear hierarchical naming structure and use specific tags (_mult, _mat, _fix) to define what can or cannot be customized.
This organization ensures that the system correctly identifies variations and applies user-selected configurations without conflicts.
Proper structuring is essential for recognition and seamless functionality across all VR4Life-compatible platforms.
Learn more about Customizable 3D Objects →
Each character or object must contain only one action (animation).
All animations will play simultaneously when the scene starts.
Reduce animation keyframes where possible to keep file size low.
Export as .GLB (glTF Binary)—lightweight and web-friendly.
To upload your 3D scene to VR4Life:
Place the following files inside a single .zip archive:
The GLB model
Cameras (if exported separately but zipped together)
Audio (.mp3 format)
".zip files cannot contain nested directories. All files must be located at the root level."
⚠️Files can't have subfolders, all files must be placed in the root directory.
The thumbnail image is uploaded separately on the platform.
To get started, select the 3D tool or software you're working. Each section contains tool-specific instructions and recommendations to help you prepare your model for the VR4Life platform.
Found a problem? Visit our form and let us know!