PRO

CRT Display

A 3D monitor whose curved screen swaps images with a glitch. A GLB monitor model sits in a lit scene and follows the cursor with an eased parallax tilt; a CRT shader draws the tube with scanlines, an aperture-grille mask, vignette, chromatic split, and a noisy RGB tear that spikes whenever the displayed image changes, then decays. Hovering a project name loads that frame; leaving resets to default. Three.js, no animation library.

Component
  • District
  • Waypoint
  • Corridor
  • Archive
  • Terminal
Install
npx shadcn@latest add https://ui.aryank.space/r/crt-display.json

Installs from ui.aryank.space. To add it by hand, copy the files in Usage below, or register the @compronents namespace via the docs.

Files

API
PropTypeDefaultDescription
srcstring"…/crt-display/monitor.glb"Monitor model URL (.glb / .gltf), same-origin or CORS.
defaultImagestring"…/crt-display/default.jpg"Frame shown at rest and on pointer leave.
projects{ label: string; image: string }[]District / Waypoint / Corridor / Archive / TerminalProject names and the image each loads on hover.
backgroundstring"#b0b0b0"Backdrop color behind the monitor.
exposurenumber1.25ACES tone-mapping exposure.
Customize
backgroundcolor

Backdrop color behind the monitor.

exposuretext

ACES tone-mapping exposure for the whole scene.

projectstext

Each project's name and the frame it loads on hover.

src / defaultImageasset-url

Monitor GLB and the resting frame, hosted through https://ui.aryank.space/assets/crt-display/monitor.glb and the default image.

Dependencies
three