Build a complete, polished single-page interactive web experience called “The Watchmaker Test.”
Create an interactive custom mechanical-watch builder centered around an NH38-style automatic movement with an open-heart dial. Present the watch on a refined watchmaker’s workbench with macro product lighting, precision tools, subtle dust particles, and a dark premium interface.
The finished watch must be a functioning 3D object rather than a static product image. Construct the case, bezel, crystal, chapter ring, open-heart dial, hands, crown, movement, balance wheel, gears, rotor, exhibition caseback, spring bars, and strap as procedural geometry.
Include:
- An animated assembly sequence in which components move into place along the watch’s central axis.
- Assembled, exploded, dial-side, caseback, and macro movement views.
- Steel, black, and rose-gold case finishes.
- Multiple open-heart dial and hand combinations.
- Bracelet, black leather, navy leather, and neon-orange rubber strap options.
- Every selected component must visibly update the 3D watch.
- A draggable crown that winds the movement.
- A time-setting mode where rotating the crown moves the hour and minute hands correctly.
- A continuously oscillating balance wheel and moving seconds hand.
- A rotor that reacts approximately to watch orientation.
- Daylight, studio, and lume-lighting modes.
- An optional transparent-case mode revealing how the movement sits inside the case.
- Smooth camera presets, orbit controls, reset, and automatic cinematic rotation.
Use the existing project stack. If the project is empty, create a React, TypeScript, Vite, and Three.js or React Three Fiber application.
Do not use external 3D models, image textures, stock photography, or prebuilt watch configurators. Use procedural geometry, materials, shaders, and generated dial markings. Open-source code libraries are allowed.
Prioritize believable proportions, material differences, mechanical motion, tactile controls, and a composition suitable for a 16:9 screenshot or short video. Every visible control must work. Do not include placeholder options or unfinished interactions.
Make all implementation decisions yourself. Do not ask questions and do not merely describe the solution. Build the complete runnable project.