Skip to Content
HooksuseViewerModel

useViewerModel

Provides model lifecycle state and scene metadata: loading status, errors, scene bounds, and object count.

Usage

import { useViewerModel } from "@liveroom/react-immersive"; const { isLoading, isReady, error, bounds, objectCount, handleModelLoaded, handleLoadError, } = useViewerModel(); <ModelViewer onModelLoaded={handleModelLoaded} onLoadError={handleLoadError} ... />

Returns

NameTypeDescription
isLoadingbooleantrue until the model has loaded or failed
isReadybooleantrue after a successful model load
errorunknown | nullThe most recent load/render error, or null
boundsSceneBounds | nullScene bounds: min, max, center, size
objectCountnumberNumber of mesh objects in the loaded scene
handleModelLoaded(scene: Object3D) => voidCallback to pass to onModelLoaded
handleLoadError(error: unknown) => voidCallback to pass to onLoadError

Example: Loading States

const { isLoading, isReady, error } = useViewerModel(); if (isLoading) return <p>Loading model…</p>; if (error) return <p>Failed to load: {String(error)}</p>; if (isReady) return <p>Model ready with {objectCount} objects</p>;