Vibeleaderboard
Index / tool
Visit modelviewer.dev
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Builder
google
Latest release
v4.3.1
Date

About

Google's web component for easily displaying interactive 3D models on the web and in AR — one HTML tag, no Three.js required.

What it does

Model-viewer presents 3D content through a browser-native custom element. It manages rendering, user interaction, loading progress, posters, annotations, camera input, accessibility announcements, and several routes into augmented reality.

Why it's ranked here

The case is strong because the project covers more than basic rendering. It includes accessible defaults, customizable slots, browser capability checks, an effects package, an editor, documentation, and dedicated render-fidelity tooling. Its browser test matrix also spans mobile and desktop WebKit and Chromium contexts.

What's good

The component exposes practical interface layers instead of a bare canvas. Default controls cover loading, interaction prompts, AR entry, AR exit, and panning, while slots let applications replace those pieces. Build outputs support module and legacy bundle formats, minification, source maps, optional external Three.js, and bundled TypeScript declarations.

Tradeoffs

The repository is a sizable multi-package workspace with documentation, effects, editor, shared assets, and fidelity infrastructure. Development requires Node.js and npm. Windows contributors are directed toward WSL2, Chrome configuration is needed for tests there, and fidelity testing can require GUI support unavailable in the documented Windows 10 setup.

How to use it well

Use it for product pages, catalogs, documentation, or other browser experiences that need interactive models and optional AR with customizable controls. Adopt the effects package when post-processing matters. Use the companion editor when preparing or modifying GLTF and GLB assets. The viewer itself does not replace that asset-authoring workflow.

Technical notes+

The root package.json defines a private npm workspace spanning the viewer, effects, documentation site, render-fidelity tools, and editor, with shared build, test, lint, clean, and serve scripts. packages/model-viewer/rollup.config.js produces ESM and UMD builds, minified variants, source maps, variants with Three.js externalized, and bundled TypeScript declarations outside development mode. packages/model-viewer/web-test-ci.config.mjs runs Playwright coverage across iPhone X, Desktop Safari, Galaxy S9+, and Desktop Chrome device contexts. packages/model-viewer/src/template.ts defines Shadow DOM structure, named slots, AR controls, loading UI, interaction prompts, and live accessibility announcements. packages/model-viewer/src/constants.ts selects WebXR, Android Scene Viewer, and iOS Quick Look candidates through feature and user-agent checks.

Observed

License
Apache-2.0
Primary language
TypeScript
Packaging
Private npm workspace containing five packages
Interface
Browser web component library with ESM and UMD bundles
Browser testing
Playwright configurations cover mobile and desktop WebKit and Chromium contexts
Repository structure
Includes viewer, effects, documentation, render-fidelity tools, and model editor projects

Read from README.md, package.json, packages/space-opera/rollup.config.js, packages/model-viewer/rollup.config.js, packages/modelviewer.dev/rollup.config.js, packages/model-viewer/web-test-ci.config.mjs, packages/model-viewer-effects/rollup.config.js, packages/render-fidelity-tools/rollup.config.js, packages/space-opera/web-test-runner.config.mjs, packages/model-viewer/web-test-runner.config.mjs, packages/model-viewer-effects/web-test-runner.config.mjs, packages/space-opera/src/app.ts, packages/model-viewer/src/template.ts, packages/model-viewer/src/constants.ts, packages/model-viewer/src/utilities.ts.

What it can do

  • Display interactive 3D models in web browsers

    3D model files (GLB, GLTF)Interactive 3D visualization in HTML page

  • Enable augmented reality viewing of 3D models

    3D model files and AR-capable deviceAR experience with 3D model overlay

  • Embed 3D models with single HTML tag

    HTML code with model-viewer tag and model file pathRendered 3D model component in webpage

  • Provide camera controls for 3D model interaction

    User mouse/touch input on displayed modelRotated, zoomed, or panned 3D model view

  • Auto-resize 3D models to fit container

    3D model and container dimensionsProperly scaled 3D model display

  • Load and render 3D models without Three.js dependency

    3D model files in web environmentRendered 3D visualization using built-in rendering engine

Tags

3darweb-componentgoogleviewer

Tech Stack

Node.js

Media

model-viewer

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.