Performance optimization for 3D product configurators

Shoppers expect your 3D product configurator to load as quickly as a normal product page. Below is a deep dive into proven techniques we use inside Aircada (and that you can apply anywhere) to make sure large scenes feel instant on mobile and desktop.

1. Reduce model weight

Geometry is the biggest single contributor to initial load time. Every extra vertex costs bandwidth and GPU cycles. Aim for the lowest polygon count that keeps visual fidelity.

Pick the right target triangle budget

• Hero product: < 50 k triangles
• Swappable parts: 5 k – 10 k each
• Tiny bolts or screws: < 500

How to decimate in Blender

  1. Select your mesh and enter Object Mode → Modifiers → Decimate.
  2. Start with a ratio of 0.5. Inspect edges, then gradually lower until details suffer.
  3. Apply the modifier, then run Merge by Distance to remove doubles.
tip: You rarely need CAD‑level curves for ecommerce. A smooth shaded low‑poly surface with a normal map looks identical in WebGL and WebGPU.

Combine meshes

Each mesh spawns a draw call. Combine static parts that share a material (e.g. the left and right armrests of a chair) into one object before export.

Export as compressed glb

• Enable Draco or run gltfpack -c after export.
• Expect a 60 – 80 % size drop vs. raw GLB.

2. Keep texture memory in check

Large PBR textures kill load times and overrun mobile GPUs. Follow these rules:

Resolution guidelines

  • Main product shell: 2048 × 2048 max
  • Small parts & decals: 1024 × 1024
  • UI thumbnails: 256 × 256

Choose the right format

WebP for color maps (sRGB).
KTX2/BasisU for universal GPU‑friendly compression.
• PNG only when alpha precision is critical.

Reuse & tile

A 512 px seamless fabric tile repeated across UVs beats a unique wrapped 4 k texture every time.

3. Smart lighting and effects

Every extra light throws more math at the fragment shader. Balance realism with speed.

One key light + HDRI

A single directional light for highlights plus an environment map for soft ambient gives you realistic shading with just two passes.

Bake shadows when possible

If the camera is fixed (e.g., orbit only) bake AO and shadow onto texture channels or a vertex AO map. Disable realtime shadows on mobile.

Minimal post‑processing

• Use FXAA instead of MSAA for antialiasing.
• Enable bloom only when emissive parts glow.
• Skip SSAO, SSR, and depth‑of‑field unless your A/B test says conversion rises.

4. Stream assets just‑in‑time

Your shopper shouldn’t download every variant on first paint.

Lazy‑load option sets

When a configurator has 30 material swatches, load the base meshes first, then fetch the extra textures the second a user opens the material tab.

Use the browser cache

• Host GLBs and textures on a CDN with Cache‑Control: public, max‑age=31536000.
• Bust the cache with query strings when you update files.

note: Aircada’s loader automatically requests assets on demand. If you self‑host, replicate that strategy.

5. Draw only on change

Continuous requestAnimationFrame renders waste battery when nothing moves.

Use an on‑demand render loop

• Start the loop when the user rotates, drags, or edits.
• Stop when movement settles (< 0.1 deg / frame).
• Resume on next interaction.

Denoising controls

For orbit controls, listen to start and end events to toggle the loop.

6. Adaptive quality

Not every device has an M3 chip. Detect performance and lower detail gracefully.

Dynamic pixel ratio

• Start at devicePixelRatio.
• Measure average FPS for 2 s.
• If FPS < 50, drop pixel ratio by 0.25 and re‑test.

Fallback textures

Serve 1 k textures to low‑RAM Android devices; 2 k to desktops. Detect via navigator.deviceMemory.

Quick reference checklist

  1. Under 5 MB main GLB with Draco
  2. < 50 k tris
  3. Textures compressed & POT
  4. 1 directional light + HDRI
  5. Zero heavy post effects on mobile
  6. Lazy‑load secondary options
  7. Render on demand
  8. Adaptive pixel ratio
  9. CDN caching & long max‑age
tip: Don't feel overwhelmed. Aircada naturally takes care of many performance killers behind the scenes. The main aspects you can focus on are optimized 3D models and being cautious with how many lights and objects you have in your scene.