CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/product-turntable-studio

Product Turntable Studio

A 3D product model rotates on a premium polished turntable disc beside the hero copy. Studio HDRI lighting, warm key and cool fill softboxes, drag to free-spin, and pointer hover-zoom — a high-end product launch in code.

ReactWebGL3DImageInteractiveFont#3d#product#turntable#pbr#hdri#premium#three

Usage

import ProductTurntableStudio from '@crazygl/hero-product-turntable-studio';

export default function Hero() {
	return (
		<ProductTurntableStudio
			heading={"Shot in the studio.\nSpun in your browser."}
			productModel="/my-product.glb"
			productSide="right"
			turntableSpeed={0.22}
		/>
	);
}

react, react-dom and @crazygl/core are peer dependencies; three is bundled as a regular dependency.

Customise

  • ProductproductModel (GLB/GLTF), productScale, modelLift, turntableSpeed, useGlbMaterials (off → productColor / productMetallic / productRoughness).
  • LayoutproductSide, productX, productY.
  • CamerastageTilt, cameraDistance, zoomAmount (hover-zoom), parallaxStrength, dragInertia.
  • TurntablediscColor, discRadius, discThickness, discMetallic, discRoughness, discRimColor, rimGlow.
  • LightingenvironmentImage (HDRI), envIntensity, exposure, keyColor / keyIntensity, fillColor / fillIntensity; floorColor; bgTopColor / bgBottomColor.

Best for

  • Consumer-electronics and hardware launches
  • Beauty, fragrance, and cosmetics
  • Fashion accessories and jewellery
  • Premium e-commerce product splashes
01 · Install the package

One command, zero config.

npm install @crazygl/hero-product-turntable-studio
02 · Render the component

Import once, drop it in.

The component takes the same props you see in the live customizer on the right — every default ships poster-quality.

hero.tsx
import ProductTurntableStudio from '@crazygl/hero-product-turntable-studio';

export default function Landing() {
  return (
    <ProductTurntableStudio />
  );
}
03 · Use it in a page

SSR-safe by default.

The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.

page.tsx
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';

import ProductTurntableStudio from '@crazygl/hero-product-turntable-studio';

export default function Page() {
  return (
    <section>
      <ProductTurntableStudio
        heading="Say hi."
        subheading="Your new hero."
      />
      <article>
        <h2>Welcome</h2>
        <p>Your content keeps its own voice below the hero.</p>
      </article>
    </section>
  );
}
You might also like

Similar heroes

Product Pedestal

A 3D product model rests on a minimal floating pedestal under studio HDRI lighting. Slow turntable rotation, soft contact shadow, drifting dust, subtle mouse parallax, and press-and-drag to free-spin the product.

White Infinity Studio

A 3D product GLB floats in a bright seamless infinity studio — the floor sweeps continuously up into the back wall with no visible seam. Three-point softbox lighting, a soft floor reflection, and a very subtle camera dolly sell the look of a premium catalogue photoshoot.

Floating Product

A 3D product model drifts and slowly turns in a quiet studio atmosphere. The model wears its own PBR textures; soft dust particles drift through the air around it.

Product Exploded View

A 3D model splits into several floating layers on load, then slowly reassembles. Hovering separates the parts again — connector lines hint at the assembly path. Cinematic three-point studio lighting with HDRI reflections.

Floating Ceramic UI

A matte ceramic-like tablet panel with rounded edges presents your dashboard screenshot under soft studio lighting. The slab breathes through a slow yaw oscillation with subtle pointer-driven tilt; ambient occlusion sells the screen-to-bezel seam.

Product in Liquid

A product floats suspended inside a thick, slowly churning liquid blob that genuinely refracts it. Tinted glass, chromatic dispersion, drifting bubbles and crawling caustics give a sensual, premium feel.
Live customizer

Product Turntable Studio

Stage tilt0.14Tilts the turntable+product subject on its X axis (camera and bg stay level). Higher shows more of the disc top.Camera distance3.5Resting distance of the camera from the scene origin. Hover-zoom dollies in from here.Hover zoom0.4How much the camera dollies in as the pointer nears the product. 0 disables; 0.4 is a subtle premium push.Pointer parallax0.55How much the camera orbits in response to the cursor. 0 freezes it.Drag inertia0.25Press and drag horizontally to spin the product. Higher = the spin coasts longer after release.Product Model (GLB/GLTF)Drop in any GLB or GLTF. Auto-fitted and centred on the turntable.Product size1Multiplier on the auto-fit. 1.0 sits nicely on the disc.Model lift0.02Vertical offset above the disc. A small positive value reads as a gentle float above the platform.Turntable speed0.22Y-rotation in radians/s. 0.22 ≈ one slow revolution every ~28 s. Pauses under reduced-motion.Keep model materialsON preserves the GLB's authored PBR. Turn off to override with the colour / metallic / roughness controls below.Disc colourThe turntable platform. A dark, slightly cool tone reads cinematic.Disc radius0.95Disc thickness0.07Disc metallic0.85Disc roughness0.18Disc rim glowSoft emissive ring around the platform edge — sells the premium-launch feel.Rim glow intensity0.85Floor colourBase tone of the matte studio floor beneath the turntable.Studio HDRI / equirectOptional equirectangular (2:1) image for IBL reflections. Leave blank to use the built-in true-HDR studio environment (punchy pin-point speculars on metal).Env intensity1.35Exposure1.05Key lightWarm front-left softbox — the main rectangular streak on metal.Key intensity2.5Fill lightCool back-right rim/fill so the silhouette separates from the bg.Fill intensity0.7BG topBG bottomHeading FontInteractivityWhich input drives the hero — try Scroll if you want the page to drive motion.
CrazyGL · crazygl.comProgrammable hero sections for real websites.