progress bar position ('top', 'middle' or 'bottom')
'top'
progressBarColor
progress bar color ('gray', 'rgba(89, 84, 84, 0.6)', '#c5c5c5')
null
exposure
controls the exposure of both the model and skybox
'0.5'
shadowIntensity
opacity of the shadow
'1'
shadowSoftness
blurriness of the shadow
'0'
poster
image url displayed before loading the model
null
glb
url of the GLB file for desktop devices
''
autoRotate
determines if the model will rotate automatically
true
cameraControls
determines if the user will control the camera
true
popup
determines if the viewer will be able to open a popup window
true
onToggle
function to handle popup toggle event
''
ARLink
param
description
default
style
object containing custom CSS classes to customize this component
{ link : '' }
onClick
function to handle click event
() => undefined
componentDidMount
funciton to handle mount event
() => undefined
usdz
url of the USDZ file for iOS devices
''
glb
url of the GLB file for Android devices
''
name
model name
''
resize
determines if model allows rescale
false
ARButton
param
description
default
style
object containing custom CSS classes to customize this component
{ container : '', text: '' }
...rest
same as ARLink
ARImage
param
description
default
...rest
same as ARLink
The ARImage component adds a transparent overlay on top of an existing img, which is why it should be mounted as a child of an enclosing container.
ARCarousel
param
description
default
glbs
array of GLB urls for desktop devices
[]
...rest
same as ModelViewer
Example
importReact,{Component}from'react'importReactDOMfrom'react-dom'import'@google/model-viewer'import{ARImage,ModelViewer,ARButton,ARCarousel,ARLink}from'@real2u/react-ar-components'importstylefrom'./style.module.css'constusdz='http://localhost:8080/mesh_01000.usdz'constglb='http://localhost:8080/mesh_01000.glb'constimageUrl='https://via.placeholder.com/150'constApp=()=>(<div><div><h1>ARLink</h1><ARLinkglb={glb}usdz={usdz}>
View in 3D
</ARLink></div><div><h1>ARImage</h1><divstyle={{width: '200px'}}><imgsrc={imageUrl}alt="3D model"style={{width: '100%'}}/><ARImageglb={glb}usdz={usdz}style={style}/></div></div><div><h1>ModelViewer</h1><ModelViewerglb={glb}name="3D model"style={style}/></div><div><h1>ARButton</h1><ARButtonglb={glb}usdz={usdz}text="View in 3D"style={style}/></div><div><h1>ARCarousel</h1><ARCarouselglbs={[glb,glb,glb]}style={style}/></div></div>)ReactDOM.render(<App/>,document.getElementById('root'))