{"_id":"@anhldh/model-viewer","_rev":"5-73b1b614d1ddca846699ad9866a3f418","name":"@anhldh/model-viewer","dist-tags":{"latest":"0.2.3"},"versions":{"0.1.0":{"name":"@anhldh/model-viewer","version":"0.1.0","keywords":["model-viewer","gltf","3d","webxr"],"license":"Apache-2.0","_id":"@anhldh/model-viewer@0.1.0","maintainers":[{"name":"aldh","email":"ledinhhoanganh10@gmail.com"}],"homepage":"https://github.com/anhldh/model-viewer#readme","bugs":{"url":"https://github.com/anhldh/model-viewer/issues"},"dist":{"shasum":"0328ad68557c38b53dd864898c06a69561ab07b9","tarball":"https://registry.npmjs.org/@anhldh/model-viewer/-/model-viewer-0.1.0.tgz","fileCount":257,"integrity":"sha512-JxgzfTd9AuNDsXJV32hOV4lgdDwAFZmYZvocobkq08WDbm0TS6j/+CK3WSAdDNPUHEkrJlE1+VA9EA/ZSmFNvQ==","signatures":[{"sig":"MEYCIQCFA68TBdueyRJ61C+N8hqtquLoEPENS80OpfN0jWPT0gIhAN9pNWZOJPXgspd9G2Hg4boHQNx1iLoz3oVuiJWPkNMp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46024123},"main":"dist/model-viewer.min.js","type":"module","types":"lib/model-viewer.d.ts","module":"lib/model-viewer.js","engines":{"node":">=18.0.0"},"gitHead":"9b77a16bad2a600ed9f9154b1ffdaa7c8ba25a98","scripts":{"dev":"npm-run-all --parallel watch:tsc watch:rollup","build":"npm run build:tsc && npm run build:rollup","clean":"rm -rf ./lib ./dist","build:dev":"npm run build:tsc && npm run build:rollup:dev","build:tsc":"tsc --incremental","watch:tsc":"tsc -w --incremental","build:rollup":"rollup -c --environment NODE_ENV:production","watch:rollup":"rollup -c -w --environment NODE_ENV:development","prepublishOnly":"npm run build","build:rollup:dev":"rollup -c --environment NODE_ENV:development"},"typings":"lib/model-viewer.d.ts","_npmUser":{"name":"aldh","email":"ledinhhoanganh10@gmail.com"},"repository":{"url":"git+https://github.com/anhldh/model-viewer.git","type":"git"},"_npmVersion":"11.6.2","description":"Fork of @google/model-viewer with custom LOD and animation pointer support","directories":{},"_nodeVersion":"24.12.0","dependencies":{"lit":"^3.2.1","@monogrid/gainmap-js":"^3.1.0","@anhldh/gltf-lod-loader":"^0.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"three":">=0.160.0 <0.185.0","rollup":"^4.59.0","@swc/core":"^1.11.8","typescript":"5.8.2","npm-run-all":"^4.1.5","@types/three":">=0.160.0 <0.185.0","rollup-plugin-dts":"^6.1.1","@rollup/plugin-swc":"^0.4.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-cleanup":"^3.2.1","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"three":">=0.160.0 <0.185.0"},"_npmOperationalInternal":{"tmp":"tmp/model-viewer_0.1.0_1779246267621_0.5365529668851561","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anhldh/model-viewer","version":"0.2.0","keywords":["model-viewer","gltf","3d","webxr"],"license":"Apache-2.0","_id":"@anhldh/model-viewer@0.2.0","maintainers":[{"name":"aldh","email":"ledinhhoanganh10@gmail.com"}],"homepage":"https://github.com/anhldh/model-viewer#readme","bugs":{"url":"https://github.com/anhldh/model-viewer/issues"},"dist":{"shasum":"7147e267337b42a6e9704aa69388973b26f2300c","tarball":"https://registry.npmjs.org/@anhldh/model-viewer/-/model-viewer-0.2.0.tgz","fileCount":261,"integrity":"sha512-rl8qs1z0XW/hiMuyw6SiPoDXKipaWhZEbbdpWg12VtdUdGbJ5f22upDnXg5SUypaXMrXtYJOsJ2R/UnbSPS9fA==","signatures":[{"sig":"MEUCIQChQGaQSa33m4Z9vu+MXhwVcCrK/mYG8PoLc1dYUrN7ggIgOo+psJJYgv4t5NAnnXYz8FhCf1RGvlRcCLbh6vyrx2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46027227},"main":"dist/model-viewer.min.js","type":"module","types":"lib/model-viewer.d.ts","module":"lib/model-viewer.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/model-viewer.d.ts","import":"./lib/model-viewer.js","default":"./dist/model-viewer.min.js"},"./react":{"types":"./lib/react.d.ts","import":"./lib/react.js","default":"./lib/react.js"},"./package.json":"./package.json"},"gitHead":"84897326cde523825e0d567151d2af6038f517c2","scripts":{"dev":"npm-run-all --parallel watch:tsc watch:rollup","build":"npm run build:tsc && npm run build:rollup","clean":"rm -rf ./lib ./dist","build:dev":"npm run build:tsc && npm run build:rollup:dev","build:tsc":"tsc --incremental","watch:tsc":"tsc -w --incremental","build:rollup":"rollup -c --environment NODE_ENV:production","watch:rollup":"rollup -c -w --environment NODE_ENV:development","prepublishOnly":"npm run build","build:rollup:dev":"rollup -c --environment NODE_ENV:development"},"typings":"lib/model-viewer.d.ts","_npmUser":{"name":"aldh","email":"ledinhhoanganh10@gmail.com"},"repository":{"url":"git+https://github.com/anhldh/model-viewer.git","type":"git"},"_npmVersion":"11.6.2","description":"Fork of @google/model-viewer with custom LOD and animation pointer support","directories":{},"_nodeVersion":"24.12.0","dependencies":{"lit":"^3.2.1","@monogrid/gainmap-js":"^3.1.0","@anhldh/gltf-lod-loader":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"three":">=0.160.0 <0.185.0","rollup":"^4.59.0","@swc/core":"^1.11.8","typescript":"5.8.2","npm-run-all":"^4.1.5","@types/react":"^18.3.29","@types/three":">=0.160.0 <0.185.0","rollup-plugin-dts":"^6.1.1","@rollup/plugin-swc":"^0.4.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-cleanup":"^3.2.1","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"react":">=18.0.0","three":">=0.160.0 <0.185.0","@types/react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@types/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/model-viewer_0.2.0_1779251359907_0.7310098238676996","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@anhldh/model-viewer","version":"0.2.1","keywords":["model-viewer","gltf","3d","webxr"],"license":"Apache-2.0","_id":"@anhldh/model-viewer@0.2.1","maintainers":[{"name":"aldh","email":"ledinhhoanganh10@gmail.com"}],"homepage":"https://github.com/anhldh/model-viewer#readme","bugs":{"url":"https://github.com/anhldh/model-viewer/issues"},"dist":{"shasum":"9a3519231457ce1c2b0aba8c1aa9662b40704c64","tarball":"https://registry.npmjs.org/@anhldh/model-viewer/-/model-viewer-0.2.1.tgz","fileCount":261,"integrity":"sha512-AblOTZbrFNbRydxjIU6Uy3MtOvn8E0iwXo9cpzvuWDcHvSFTBbhIrydipe3on086TbwqOHCqqVQOMkG3gFgktg==","signatures":[{"sig":"MEUCIFiAsxwNP37YaA4lmuWC+OZ3isLeJpp9vJ+39efpDDjDAiEAqiYc32mNFMuQqLc5zymbWhy6RIxDWdOWbTmOGrpqe58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46110316},"main":"dist/model-viewer.min.js","type":"module","types":"lib/model-viewer.d.ts","module":"lib/model-viewer.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/model-viewer.d.ts","import":"./lib/model-viewer.js","default":"./dist/model-viewer.min.js"},"./react":{"types":"./lib/react.d.ts","import":"./lib/react.js","default":"./lib/react.js"},"./package.json":"./package.json"},"gitHead":"3df6f7e1b6eb0087eec786ff58349372f8fdab7f","scripts":{"dev":"npm-run-all --parallel watch:tsc watch:rollup","build":"npm run build:tsc && npm run build:rollup","clean":"rm -rf ./lib ./dist","build:dev":"npm run build:tsc && npm run build:rollup:dev","build:tsc":"tsc --incremental","watch:tsc":"tsc -w --incremental","build:rollup":"rollup -c --environment NODE_ENV:production","watch:rollup":"rollup -c -w --environment NODE_ENV:development","prepublishOnly":"npm run build","build:rollup:dev":"rollup -c --environment NODE_ENV:development"},"typings":"lib/model-viewer.d.ts","_npmUser":{"name":"aldh","email":"ledinhhoanganh10@gmail.com"},"repository":{"url":"git+https://github.com/anhldh/model-viewer.git","type":"git"},"_npmVersion":"11.6.2","description":"Fork of @google/model-viewer with custom LOD and animation pointer support","directories":{},"_nodeVersion":"24.12.0","dependencies":{"lit":"^3.2.1","@monogrid/gainmap-js":"^3.1.0","@anhldh/gltf-lod-loader":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"three":">=0.160.0 <0.185.0","rollup":"^4.59.0","@swc/core":"^1.11.8","typescript":"5.8.2","npm-run-all":"^4.1.5","@types/react":"^18.3.29","@types/three":">=0.160.0 <0.185.0","rollup-plugin-dts":"^6.1.1","@rollup/plugin-swc":"^0.4.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-cleanup":"^3.2.1","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"react":">=18.0.0","three":">=0.160.0 <0.185.0","@types/react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@types/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/model-viewer_0.2.1_1780374431089_0.6165644462544204","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@anhldh/model-viewer","version":"0.2.2","keywords":["model-viewer","gltf","3d","webxr"],"license":"Apache-2.0","_id":"@anhldh/model-viewer@0.2.2","maintainers":[{"name":"aldh","email":"ledinhhoanganh10@gmail.com"}],"homepage":"https://github.com/anhldh/model-viewer#readme","bugs":{"url":"https://github.com/anhldh/model-viewer/issues"},"dist":{"shasum":"76bbd4cfd76304f820d059a945a1333e33a0e9f3","tarball":"https://registry.npmjs.org/@anhldh/model-viewer/-/model-viewer-0.2.2.tgz","fileCount":261,"integrity":"sha512-7n92R1AG4QajGac0MpMZk/M87uRXf0jO2mDPaIK8sH/EoDmstGLd6mJ1AJnYMbQudtJV5rlPpg2zNBManDc5kA==","signatures":[{"sig":"MEYCIQDfOr2hLO9tFNeEfoWAB7PdfABDxib+84WJ43GjqKW7+QIhAP0WnJaFjZQWLcDU3PquFB5xpTfjQ1bgEkeMbS3CNGBI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46110289},"main":"dist/model-viewer.min.js","type":"module","types":"lib/model-viewer.d.ts","module":"lib/model-viewer.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/model-viewer.d.ts","import":"./lib/model-viewer.js","default":"./dist/model-viewer.min.js"},"./react":{"types":"./lib/react.d.ts","import":"./lib/react.js","default":"./lib/react.js"},"./package.json":"./package.json"},"gitHead":"14edd23f856aa2c23dcfed60f24ae46e1ca73bf9","scripts":{"dev":"npm-run-all --parallel watch:tsc watch:rollup","build":"npm run build:tsc && npm run build:rollup","clean":"rm -rf ./lib ./dist","build:dev":"npm run build:tsc && npm run build:rollup:dev","build:tsc":"tsc --incremental","watch:tsc":"tsc -w --incremental","build:rollup":"rollup -c --environment NODE_ENV:production","watch:rollup":"rollup -c -w --environment NODE_ENV:development","prepublishOnly":"npm run build","build:rollup:dev":"rollup -c --environment NODE_ENV:development"},"typings":"lib/model-viewer.d.ts","_npmUser":{"name":"aldh","email":"ledinhhoanganh10@gmail.com"},"repository":{"url":"git+https://github.com/anhldh/model-viewer.git","type":"git"},"_npmVersion":"11.6.2","description":"Fork of @google/model-viewer with custom LOD and animation pointer support","directories":{},"_nodeVersion":"24.12.0","dependencies":{"lit":"^3.2.1","@monogrid/gainmap-js":"^3.1.0","@anhldh/gltf-lod-loader":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"three":">=0.170.0","rollup":"^4.59.0","@swc/core":"^1.11.8","typescript":"5.8.2","npm-run-all":"^4.1.5","@types/react":"^18.3.29","@types/three":">=0.170.0","rollup-plugin-dts":"^6.1.1","@rollup/plugin-swc":"^0.4.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-cleanup":"^3.2.1","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"react":">=18.0.0","three":">=0.170.0","@types/react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@types/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/model-viewer_0.2.2_1780449619408_0.9181068447433345","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@anhldh/model-viewer","version":"0.2.3","description":"Fork of @google/model-viewer with custom LOD and animation pointer support","license":"Apache-2.0","engines":{"node":">=18.0.0"},"main":"dist/model-viewer.min.js","module":"lib/model-viewer.js","type":"module","typings":"lib/model-viewer.d.ts","types":"lib/model-viewer.d.ts","exports":{".":{"types":"./lib/model-viewer.d.ts","import":"./lib/model-viewer.js","default":"./dist/model-viewer.min.js"},"./react":{"types":"./lib/react.d.ts","import":"./lib/react.js","default":"./lib/react.js"},"./package.json":"./package.json"},"scripts":{"clean":"rm -rf ./lib ./dist","build":"npm run build:tsc && npm run build:rollup","build:dev":"npm run build:tsc && npm run build:rollup:dev","build:tsc":"tsc --incremental","build:rollup":"rollup -c --environment NODE_ENV:production","build:rollup:dev":"rollup -c --environment NODE_ENV:development","prepublishOnly":"npm run build","watch:tsc":"tsc -w --incremental","watch:rollup":"rollup -c -w --environment NODE_ENV:development","dev":"npm-run-all --parallel watch:tsc watch:rollup"},"keywords":["model-viewer","gltf","3d","webxr"],"dependencies":{"@anhldh/gltf-animation-pointer-extensions":"^0.1.1","@anhldh/gltf-lod-loader":"^0.0.7","@monogrid/gainmap-js":"^3.1.0","lit":"^3.2.1"},"peerDependencies":{"@types/react":">=18.0.0","react":">=18.0.0","three":">=0.170.0"},"peerDependenciesMeta":{"@types/react":{"optional":true},"react":{"optional":true}},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-node-resolve":"^16.0.0","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-swc":"^0.4.0","@rollup/plugin-terser":"^1.0.0","@swc/core":"^1.11.8","@types/react":"^18.3.29","@types/three":">=0.170.0","rollup":"^4.59.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-dts":"^6.1.1","three":">=0.170.0","typescript":"5.8.2"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/anhldh/model-viewer.git"},"homepage":"https://github.com/anhldh/model-viewer#readme","bugs":{"url":"https://github.com/anhldh/model-viewer/issues"},"gitHead":"3ed31378c6d6416923e97d7f97411963f6ae85bf","_id":"@anhldh/model-viewer@0.2.3","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-W2pY5bMRBDnhaSkXutqdsmYUGPzssrUgkYg0yZNuqWzP1Na+YMG/qXnrkEms7d7aH8fXhR3y25CIxFSbRmyKgw==","shasum":"bba2ee85e2e0306e7d69f28bacc382b77ed2bdb2","tarball":"https://registry.npmjs.org/@anhldh/model-viewer/-/model-viewer-0.2.3.tgz","fileCount":257,"unpackedSize":45772583,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHImbur33NDwkpWNUIPy0KzRWJw+R9jUqr44LhiWO7UyAiBYsVhLr7LI6uijElRzyE0+sZd/18eMcYp2wBmtro3g7w=="}]},"_npmUser":{"name":"aldh","email":"ledinhhoanganh10@gmail.com"},"directories":{},"maintainers":[{"name":"aldh","email":"ledinhhoanganh10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/model-viewer_0.2.3_1787817337852_0.8037312853817093"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T03:04:27.469Z","modified":"2026-08-27T07:55:38.459Z","0.1.0":"2026-05-20T03:04:28.094Z","0.2.0":"2026-05-20T04:29:20.314Z","0.2.1":"2026-06-02T04:27:11.454Z","0.2.2":"2026-06-03T01:20:19.815Z","0.2.3":"2026-08-27T07:55:38.296Z"},"bugs":{"url":"https://github.com/anhldh/model-viewer/issues"},"license":"Apache-2.0","homepage":"https://github.com/anhldh/model-viewer#readme","keywords":["model-viewer","gltf","3d","webxr"],"repository":{"type":"git","url":"git+https://github.com/anhldh/model-viewer.git"},"description":"Fork of @google/model-viewer with custom LOD and animation pointer support","maintainers":[{"name":"aldh","email":"ledinhhoanganh10@gmail.com"}],"readme":"# @anhldh/model-viewer\n\nA fork of [`@google/model-viewer`](https://modelviewer.dev/) that keeps the `<model-viewer>` web component and adds two capabilities on top:\n\n- **`KHR_animation_pointer` support** — animate material, camera, light and other glTF properties through the animation pointer extension, beyond plain node transforms.\n- **LOD (Level of Detail) loading** — progressively load lighter geometry and textures first, then swap in higher detail, powered by [`@anhldh/gltf-lod-loader`](https://www.npmjs.com/package/@anhldh/gltf-lod-loader).\n\nOnly the `<model-viewer>` component is forked from upstream — the other `@google/model-viewer` packages are not included. Anything not described here behaves exactly as documented at [modelviewer.dev](https://modelviewer.dev/).\n\n## Installation\n\n```bash\nnpm install three @anhldh/model-viewer\n# or yarn add / pnpm add / bun add\n```\n\n`three` is a peer dependency. The supported range is `>=0.160.0 <0.185.0`. Three.js does not follow semver between minors, so keep your three.js version within this range to avoid runtime surprises.\n\n## Usage\n\nImport once to register the custom element, then use `<model-viewer>` in your markup:\n\n```js\nimport \"@anhldh/model-viewer\";\n```\n\n```html\n<model-viewer\n  src=\"https://yourdomain.com/model.glb\"\n  camera-controls\n  autoplay\n></model-viewer>\n```\n\n### `KHR_animation_pointer`\n\nModels exported with the `KHR_animation_pointer` extension animate automatically — material colors, opacity, camera and light parameters, and other pointer-targeted properties are driven by the model's animation tracks. Use the standard playback API as usual:\n\n```js\nconst viewer = document.querySelector(\"model-viewer\");\nviewer.animationName = \"MyAnimation\";\nviewer.play();\n```\n\nIf a model does not use the extension, animation behaves exactly like upstream `@google/model-viewer` — there is nothing to opt into.\n\n### LOD loading\n\nLOD activates automatically when the loaded glb declares the progressive-LOD extension recognized by `@anhldh/gltf-lod-loader`. There is no attribute or property to toggle — drop a LOD-enabled model into `src` and a low-detail version appears first, with higher-detail meshes and textures streaming in afterward. Files without the extension load normally with no overhead.\n\n## React + TypeScript\n\nThe package ships an optional types subpath that augments JSX so `<model-viewer>` and its attributes are typed:\n\n```tsx\nimport \"@anhldh/model-viewer\";        // registers the custom element (runtime)\nimport \"@anhldh/model-viewer/react\";  // adds JSX types (type-only)\n\nexport default function Viewer() {\n  return (\n    <model-viewer\n      src=\"/model.glb\"\n      camera-controls\n      auto-rotate\n    />\n  );\n}\n```\n\nThe `/react` subpath is **type-only** — importing it alone will not register the custom element. Keep both imports.\n\nThe augmentation is written to work with both React 18 (global `JSX` namespace) and React 19 (`JSX` inside the `react` module). `react` and `@types/react` are declared as optional peer dependencies; you only need them if you actually use the subpath.\n\n## SSR (Next.js, Remix, etc.)\n\n`<model-viewer>` calls `customElements.define` and touches `document` at module load. On a server it will throw. Import the runtime entry only on the client.\n\n**Next.js App Router** — make the component a client component:\n\n```tsx\n\"use client\";\n\nimport \"@anhldh/model-viewer\";\nimport \"@anhldh/model-viewer/react\";\n\nexport default function Viewer() {\n  return <model-viewer src=\"/model.glb\" camera-controls />;\n}\n```\n\n**Next.js Pages Router or any framework that needs a dynamic import** — load the module client-side only:\n\n```tsx\nimport dynamic from \"next/dynamic\";\n\nconst Viewer = dynamic(\n  async () => {\n    await import(\"@anhldh/model-viewer\");\n    return function Viewer() {\n      return <model-viewer src=\"/model.glb\" camera-controls />;\n    };\n  },\n  { ssr: false }\n);\n```\n\nThe `/react` subpath has no runtime code, so it is safe to import unconditionally at the top of any file alongside other type imports.\n\n## Versioning\n\nThis is a fork and is versioned independently of upstream `@google/model-viewer`. Breaking changes follow semver on this package, not on the original.\n\n## License\n\nApache-2.0, inherited from [`@google/model-viewer`](https://github.com/google/model-viewer).\n","readmeFilename":"README.md"}