RemotionUI

Device Mockup 3D

Laptop product shot in real 3D. The lid opens, then the camera turns and pushes in over a lit floor.

Scene3DAdvanced

device-mockup-3d30fps · 960×540
Install
$ npx remotion-ui@latest add device-mockup-3d

A modelled laptop (hinged lid, black glass bezel with a camera dot, keyboard and trackpad) lit by a studio environment built on the spot. It settles onto a lit floor as the lid opens, then turns and pushes in. A slow drift runs under the whole shot, so the last frame is still moving rather than parked.

The glass over the screen only adds reflection, so your screenshot is never dimmed: the streaks come from fixed studio lights and slide across as the laptop turns. The shadow falls on a lit pool rather than straight onto the backdrop, where a dark shadow would disappear.

Pass src with a bright screenshot: a dark UI still reads, but a mostly black image turns the screen into a slab. The screen takes the image's own ratio unless you set screenAspect. The shot paces itself to the composition length; 4–6 seconds suits it.

Render with --gl=angle. Motion comes from the frame only and the screen image loads behind delayRender, so the same frame renders to identical pixels every time.

For a CSS mockup with a staged UI and no WebGL, use device-mockup-zoom.

A lit WebGL scene on @remotion/three; render with --gl=angle. The shot paces itself to the composition length: the laptop settles as the lid opens, then turns and pushes in, with a slow drift under both so the last frame never parks. Deterministic by construction: motion comes only from useCurrentFrame(), the screen image loads behind delayRender, and the environment is built from Lightformers instead of a CDN HDRI. For a CSS mockup with staged UI and no WebGL, use device-mockup-zoom.

Agent notes

Install first, then import the copied source component locally. AI guide →

Import
@/remotion/scenes/device-mockup-3d
  • Use when: 3D product shots and WebGL scenes rendered frame by frame.
  • Customize: src, screenAspect, backgroundColor, glowColor, plus copied source for timing, layout, colors, and typography.
  • Rule: do not import this component from the remotion-ui npm package; it is copied into your project.

Usage

Example
import { staticFile } from "remotion"; import { DeviceMockup3D } from "@/remotion/scenes/device-mockup-3d"; // Render with --gl=angle <DeviceMockup3D src={staticFile("app.png")} />

API Reference

PropTypeDescription
srcstringScreenshot on the screen. A bright UI reads best; a mostly black image reads as a slab.
screenAspectnumberScreen width / height. Omit to use the image's own ratio.
backgroundColorstringOuter backdrop.
glowColorstringSoft glow behind the device.
floorColorstringLit floor pool the contact shadow falls on. Keep it lighter than the backdrop.
bodyColorstringAluminium body.
rimColorstringCool rim light from the left.
accentColorstringWarm accent light from the right.
glarenumberStrength of the glass reflection over the screen, 0–1.

On this page