Three.js work lives or dies on frame budget: a beautiful demo that melts a mid-range laptop is a failed deliverable. These questions test the graphics fundamentals under the library — draw calls, memory, shaders — along with the asset and integration judgment production 3D web work requires.
What a strong answer covers
The scene graph with hierarchical transforms, camera projection, renderer issuing WebGL draw calls per visible mesh, and the requestAnimationFrame loop updating and rendering. Fluency here is baseline; hesitation predicts copy-paste-driven experience.
What a strong answer covers
CPU-GPU command overhead per mesh/material pair; reduction via merged geometries, instanced meshes for repeated objects, texture atlases enabling material sharing, and frustum culling awareness. InstancedMesh with a concrete before/after count is the practitioner's answer.
What a strong answer covers
Determine CPU-bound versus GPU-bound first (profiler, resolution-scaling test), then inspect draw calls and triangle counts (renderer.info), overdraw from transparency, shadow-map costs, texture sizes, and per-frame allocation causing GC hitches. Spector.js or GPU profilers named, ordered method, measurable targets.
What a strong answer covers
GPU resources (geometries, materials, textures, render targets) are not garbage collected with their JS objects; explicit dispose() on removal, event-listener cleanup, and leak detection via renderer.info counts over navigation cycles. This is the classic production leak — firsthand experience shows immediately.
What a strong answer covers
glTF/GLB as the standard, Draco or Meshopt geometry compression, KTX2/Basis texture compression for GPU-native formats, LOD generation, and progressive or lazy loading with placeholders. A pipeline framing — automated optimization, artist feedback on budgets — beats file-format recall.
What a strong answer covers
GLSL vertex/fragment basics, uniforms and varyings, ShaderMaterial or onBeforeCompile modification of built-ins, and a genuine use case: custom dissolve effects, vertex displacement, special fresnel looks. Depth varies by role, but zero shader literacy caps what they can build.
What a strong answer covers
Dynamic shadow cost scaling with lights and resolution; baked lightmaps and HDR environment maps (IBL) giving cheap realism for static scenes; configurators favoring environment lighting with minimal dynamic shadow. PBR material workflow understanding threads through the answer.
What a strong answer covers
R3F expressing the scene graph declaratively with React lifecycle managing objects, hooks ecosystem (drei), and the trade-offs: reconciler overhead considerations, escape hatches to imperative code for hot paths, and keeping per-frame logic out of React state. Knowing state updates per frame are the R3F anti-pattern is the key marker.
What a strong answer covers
Pixel-ratio capping, quality tiers by device capability, touch and pointer abstraction, resize handling, DOM fallbacks or static renders for unsupported contexts, and prefers-reduced-motion respect. Treating 3D as progressive enhancement demonstrates production maturity beyond demo work.
What a strong answer covers
Ray from camera through pointer intersecting objects; cost from testing many or high-poly meshes, mitigated by target lists, bounding-volume early-outs, or BVH acceleration. GPU picking via color IDs as the alternative. Interaction is where portfolio pieces become products, so this is practical, not academic.
What a strong answer covers
Web workers (with OffscreenCanvas where it fits) for CPU work, GPGPU techniques for particles, physics engines stepped in workers, time-slicing generation across frames, and budget honesty about what belongs precomputed. Frame-budget arithmetic (16ms) said out loud is a good sign.
What a strong answer covers
Business judgment: per-model production cost, device support floor, loading budgets, and a phased proposal — hero products first, one optimized pipeline, measurable engagement goals. The ability to scope 3D realistically is precisely what distinguishes a hireable specialist from a demo artist.
Skip the interviews entirely — get matched with pre-vetted Three.js developers in 48 hours, $0 until you hire.
Need a custom question set?
Our free interview question generator builds a tailored list for any role, seniority, and focus area.
Try the interview question generator →For product work, require the performance model — draw calls, GPU memory, frame budget — which is WebGL literacy expressed through Three.js. Raw WebGL API fluency only matters for engine-level roles; the shader question calibrates depth either way.
Open their work on an average laptop and a phone, not a workstation: check frame rate, load time, and memory growth while navigating. Then ask them to narrate the optimization decisions behind one piece — the narration is the interview.
Not fundamentally yet — Three.js abstracts the backend, and scene, asset, and budget judgment transfers intact. A candidate tracking WebGPU's compute capabilities is a nice currency signal, but do not select on it over the performance questions here.
Hire directly
Hire vetted Three.js developers in the USA →Other interview guides
Vetted talent ready for US teams. No recruitment fees. Zero risk.
🇺🇸 Trusted by companies across the United States