The same identity, a smaller rendering budget
The interactive DK logo is a 452 KB GLB with a custom vertex displacement shader and physical glass material. On mobile (under 768 px), WebGL antialiasing is disabled and renderer pixel ratio is capped at 1; desktop is capped at 1.5 instead of blindly using the device's full pixel density. The logo scale is multiplied by 0.3 below 640 px and 0.6 below 1024 px so it remains framed correctly without rendering unnecessary off-screen pixels.
The 512 px HDR environment map begins loading in parallel with the GLB. Basic hemisphere and directional lights render the logo immediately, so the first frame does not wait for HDRI. Renderer, composer, geometry, materials, textures, event listeners, and animation frames are explicitly disposed during cleanup to prevent memory from accumulating across navigation.
The production Three.js logo rendered with its glass material and HDR lighting
The same GLB and shader running under the reduced mobile rendering budget
A real editor for the 3D identity
I built a dedicated editor around the Three.js experience instead of repeatedly changing hard-coded values. It exposes the typography, font size, transition timing, inactive opacity, inversion mode, and light-preservation thresholds while the GLB, shader, lighting, and post-processing remain live behind the panel.
That made visual tuning reproducible: a setting could be evaluated against the moving 3D logo, saved, and then transferred to the production experience without shipping the authoring controls to visitors.
Actual 3D Logo Editor — live Three.js canvas with the production tuning controls
Measured mobile improvement
The stored mobile Lighthouse baselines show Performance improving from 52 to 84. First Contentful Paint improved from 2.8 s to 1.9 s, Largest Contentful Paint from 4.7 s to 3.9 s, and Total Blocking Time from 1,580 ms to 200 ms. Cumulative Layout Shift remained effectively stable at 0.003 → 0.002.
The largest gain is not a visual trick: reducing main-thread blocking by 1.38 seconds means the page becomes responsive much earlier on a phone while retaining the interactive 3D presentation.