{"id":23595,"date":"2022-04-13T07:30:00","date_gmt":"2022-04-13T14:30:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=23595"},"modified":"2023-12-28T14:01:22","modified_gmt":"2023-12-28T22:01:22","slug":"implementing-augmented-reality-with-3d-assets","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets","title":{"rendered":"Implementing Augmented Reality With 3D Assets"},"content":{"rendered":"\n<p>As digital representations of objects, replete with textures, colors, and patterns, three-dimensional (3D) images tell stories much more realistically than 2D ones. Formerly leveraged mostly in games and architecture, 3D assets are valuable and becoming ubiquitous, from educational tools to shopping apps, because technologies for augmented reality (AR) and virtual reality (VR) are trending mainstream, largely thanks to the metaverse.<\/p>\n\n\n\n<p>3D AR technology expands beyond traditional platforms, offering immersive experiences through various devices such as AR glasses, smartphones, and tablets. This versatility allows users to interact with 3D objects in real-time, whether for educational purposes, like exploring anatomical systems through Google 3D &amp; AR, or for entertainment, as seen in QuiverVision 3D Augmented Reality coloring apps.<\/p>\n\n\n\n<p>Since building 3D models involves a markedly different process from that for standard images or videos, importing and optimizing those models and rendering them across devices can be challenging. This tutorial describes how to upload 3D images to the Cloudinary Media Library and, subsequently, publish them on a webpage with Cloudinary\u2019s new AR-3D viewer, delivering an engaging user experience.<\/p>\n\n\n\n<p>It\u2019s important to ensure these 3D models are visually appealing and accurately scaled and identified within the AR environment. Precise 3D identification of virtual and real objects enhances the realism and interactivity of AR, making the experience more engaging and useful for users.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uploading 3D Assets to Cloudinary<\/h2>\n\n\n\n<p>Uploading 3D assets to Cloudinary is a breeze, as shown in the procedure below for uploading two free, low-poly ones: <a href=\"https:\/\/sketchfab.com\/3d-models\/desk-lamp-low-poly-0dded6b36c464294a0ab966b18109f6d\">Kozlov Maksim\u2019s desk lamp<\/a> and <a href=\"https:\/\/sketchfab.com\/3d-models\/low-poly-living-room-df179eebec234798aa7fbe6c7eaf492a\">Vladek\u2019s living room<\/a>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>If you haven\u2019t already, <a href=\"https:\/\/cloudinary.com\/users\/register\/free\">create a free Cloudinary account<\/a>, which offers credits for storage, bandwidth, and transformations.<\/li>\n\n\n\n<li>Compress the two 3D files\u2014in GLB, <a href=\"https:\/\/cloudinary.com\/guides\/image-formats\/gltf-features-applications-and-5-essential-best-practices\">glTF<\/a>, or Glitz format; and any texture\u2014into a ZIP file and then upload it by taking either of these two steps:\n<ul class=\"wp-block-list\">\n<li>Drag and drop the file into your Media Library on Cloudinary, like this:<br><\/li>\n\n\n\n<li>Programmatically upload the file with the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_sdks\">SDK<\/a>. Specify `image` as the resource type (<code>resource_type<\/code>), like this: <br><img width=\"1425\" height=\"750\" data-public-id=\"1_uploading-3d-asset\/1_uploading-3d-asset.gif\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-23595 wp-image-23598\" style=\"width: 750px\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1425,h_750,c_scale\/f_auto,q_auto\/v1648163673\/1_uploading-3d-asset\/1_uploading-3d-asset.gif?_i=AA\" alt=\"uploading 3d asset\" data-format=\"gif\" data-transformations=\"f_auto,q_auto\" data-version=\"1648163673\" data-seo=\"1\" \/><br><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-keyword\">const<\/span> cloudinary = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">\"cloudinary\"<\/span>);\n\ncloudinary.v2.uploader.upload(\n  <span class=\"hljs-string\">\"path\/to\/desk_lamp.zip\"<\/span>,\n  { <span class=\"hljs-attr\">resource_type<\/span>: <span class=\"hljs-string\">\"image\"<\/span> },\n  (error, result) =&gt; {\n    <span class=\"hljs-built_in\">console<\/span>.log(result, error);\n  }\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Uploading takes only a second or two. The Media library then displays the 3D asset\u2019s primary scene:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"608\" data-public-id=\"2_newly-uploaded-file\/2_newly-uploaded-file.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_608,c_scale\/f_auto,q_auto\/v1648163673\/2_newly-uploaded-file\/2_newly-uploaded-file.png?_i=AA\" alt=\"Selecting a desk lamp image from the media library\" class=\"wp-post-23595 wp-image-23597\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1648163673\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/2_newly-uploaded-file\/2_newly-uploaded-file.png?_i=AA 3104w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/2_newly-uploaded-file\/2_newly-uploaded-file.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/2_newly-uploaded-file\/2_newly-uploaded-file.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/2_newly-uploaded-file\/2_newly-uploaded-file.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/2_newly-uploaded-file\/2_newly-uploaded-file.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/2_newly-uploaded-file\/2_newly-uploaded-file.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Build a Webpage With Cloudinary\u2019s AR SDK<\/h2>\n\n\n\n<p>Next, build a webpage with Cloudinary\u2019s AR SDK\u2014a seamless process.<\/p>\n\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p><span style=\"font-weight: 400\">You can add 3D assets to apps so that consumers can interact with those images from a browser or bring the images to their environment on mobile devices through AR.<\/span><\/p>\n<\/div>\n\n\n<p>Here\u2019s what to do: Add the CDN script for the AR-3D viewer, which contains the <code>&lt;ar-3d-viewer&gt;<\/code> component for use anywhere in your app, to an HTML file\u2019s <code>head<\/code> section:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/ar-3d-viewer.cloudinary.com\/main.js\"<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/ar-3d-viewer.cloudinary.com\/main.js\"<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ar-3d-viewer<\/span> <span class=\"hljs-attr\">cloud<\/span>=<span class=\"hljs-string\">\"YOUR_CLOUD_NAME\"<\/span> <span class=\"hljs-attr\">models<\/span>=<span class=\"hljs-string\">\"MODEL_NAME\"<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>cloud<\/code> parameter and <code>models<\/code> property are the prerequisites for <code>&lt;ar-3d-viewer&gt;<\/code>. Add them by following the steps in the next two sections.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Locating the Value the <code>cloud<\/code> Parameter<\/h3>\n\n\n\n<p>The value for <code>cloud<\/code> is your Cloudinary account\u2019s <a href=\"https:\/\/cloudinary.com\/documentation\/how_to_integrate_cloudinary#view_or_update_your_cloud_name\">cloud name<\/a>, set by you or by Cloudinary during registration and displayed in your dashboard\u2019s top-right corner. The cloud name for this tutorial is <code>cloudinary_ar<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"608\" data-public-id=\"3_cloud-name\/3_cloud-name.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_608,c_scale\/f_auto,q_auto\/v1648163674\/3_cloud-name\/3_cloud-name.png?_i=AA\" alt=\"Location of your Cloud name.\" class=\"wp-post-23595 wp-image-23599\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1648163674\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163674\/3_cloud-name\/3_cloud-name.png?_i=AA 3104w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163674\/3_cloud-name\/3_cloud-name.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163674\/3_cloud-name\/3_cloud-name.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163674\/3_cloud-name\/3_cloud-name.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163674\/3_cloud-name\/3_cloud-name.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163674\/3_cloud-name\/3_cloud-name.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Locating the Value for the <code>models<\/code> Property<\/h3>\n\n\n\n<p>The value for <code>models<\/code> is the Cloudinary-assigned name of the 3D asset you uploaded.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"608\" data-public-id=\"4_model-name\/4_model-name.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_608,c_scale\/f_auto,q_auto\/v1648163673\/4_model-name\/4_model-name.png?_i=AA\" alt=\"Choosing the model from your media library\" class=\"wp-post-23595 wp-image-23600\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1648163673\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/4_model-name\/4_model-name.png?_i=AA 3104w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/4_model-name\/4_model-name.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/4_model-name\/4_model-name.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/4_model-name\/4_model-name.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/4_model-name\/4_model-name.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/4_model-name\/4_model-name.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Adding <code>cloud<\/code> and <code>models<\/code> to <code>ar-3d-viewer<\/code><\/h3>\n\n\n\n<p>Now update the code with the values for <code>cloud<\/code> and <code>models<\/code> under <code>ar-3d-viewer<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/ar-3d-viewer.cloudinary.com\/main.js\"<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ar-3d-viewer<\/span> <span class=\"hljs-attr\">cloud<\/span>=<span class=\"hljs-string\">\"cloudinary_ar\"<\/span> <span class=\"hljs-attr\">models<\/span>=<span class=\"hljs-string\">\"desk_lamp_mfon3q\"<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Running the above code in a browser displays the interactive 3D model (<a href=\"https:\/\/sketchfab.com\/3d-models\/desk-lamp-low-poly-0dded6b36c464294a0ab966b18109f6d\">Koslov Maksim\u2019s low-poly desk lamp<\/a>). Clicking the <strong>View in AR <\/strong>button nearby generates a QR code for viewing the model on a mobile device.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img width=\"1024\" height=\"574\" data-public-id=\"5_first-output\/5_first-output.gif\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_574,c_scale\/f_auto,q_auto\/v1648163678\/5_first-output\/5_first-output.gif?_i=AA\" alt=\"First output test of 3d object\" class=\"wp-post-23595 wp-image-23612\" style=\"width:840px;height:470px\" data-format=\"gif\" data-transformations=\"f_auto,q_auto\" data-version=\"1648163678\" data-seo=\"1\" \/><\/figure>\n\n\n\n<p>The <code>ar-3d-viewer<\/code> properties are reactive so feel free to update them. For example, to add the 3D image <a href=\"https:\/\/sketchfab.com\/3d-models\/low-poly-living-room-df179eebec234798aa7fbe6c7eaf492a\">Vladek\u2019s low-poly living room<\/a> from your Media Library, update the code like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/ar-3d-viewer.cloudinary.com\/main.js\"<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span>&gt;<\/span><span class=\"javascript\">\n      <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">updateModel<\/span>(<span class=\"hljs-params\"><\/span>) <\/span>{\n        <span class=\"hljs-built_in\">document<\/span>.getElementsByTagName(\n          <span class=\"hljs-string\">\"ar-3d-viewer\"<\/span>\n        )&#91;<span class=\"hljs-number\">0<\/span>].attributes.models.value = <span class=\"hljs-string\">\"living_room\"<\/span>;\n      }\n    <\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">button<\/span> <span class=\"hljs-attr\">onclick<\/span>=<span class=\"hljs-string\">\"updateModel()\"<\/span>&gt;<\/span>Update 3D<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">button<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">style<\/span>=<span class=\"hljs-string\">\"height: 75vh\"<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ar-3d-viewer<\/span> <span class=\"hljs-attr\">cloud<\/span>=<span class=\"hljs-string\">\"cloudinary_ar\"<\/span> <span class=\"hljs-attr\">models<\/span>=<span class=\"hljs-string\">\"desk_lamp_mfon3q\"<\/span>&gt;<\/span> <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Running the updated code in a browser displays both images, one after the other.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img width=\"1024\" height=\"574\" data-public-id=\"6_reactive-test\/6_reactive-test.gif\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_574,c_scale\/f_auto,q_auto\/v1648163687\/6_reactive-test\/6_reactive-test.gif?_i=AA\" alt=\"Reactive test of 3d object\" class=\"wp-post-23595 wp-image-23613\" style=\"width:700px;height:392px\" data-format=\"gif\" data-transformations=\"f_auto,q_auto\" data-version=\"1648163687\" data-seo=\"1\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Adding a Hotspot<\/h2>\n\n\n\n<p>With the AR-3D viewer, you can also add hotspots, i.e., labels, along with explanations to regions of 3D assets. You can also create buttons for specific actions.<\/p>\n\n\n\n<p>A hotspot requires two attributes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>slot<\/code>: A unique ID (<code>hotspot-id<\/code>) with the syntax <code>hotspot-&lt;unique number&gt;<\/code>.<\/li>\n\n\n\n<li><code>data-position<\/code>: The hotspot\u2019s x, y, and z coordinates.<\/li>\n<\/ul>\n\n\n\n<p>See this code example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ar-3d-viewer<\/span> <span class=\"hljs-attr\">cloud<\/span>=<span class=\"hljs-string\">\"cloudinary_ar\"<\/span> <span class=\"hljs-attr\">models<\/span>=<span class=\"hljs-string\">\"desk_lamp_mfon3q\"<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">button<\/span>\n    <span class=\"hljs-attr\">slot<\/span>=<span class=\"hljs-string\">\"hotspot-1\"<\/span>\n    <span class=\"hljs-attr\">data-position<\/span>=<span class=\"hljs-string\">\"-20 20 -4\"<\/span>\n    <span class=\"hljs-attr\">onclick<\/span>=<span class=\"hljs-string\">\"showLampDescription()\"<\/span>\n  &gt;<\/span>\n    Lamp Middle\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">button<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">label<\/span> <span class=\"hljs-attr\">slot<\/span>=<span class=\"hljs-string\">\"hotspot-2\"<\/span> <span class=\"hljs-attr\">data-position<\/span>=<span class=\"hljs-string\">\"20 30 35\"<\/span>&gt;<\/span>Light Source<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">label<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">label<\/span> <span class=\"hljs-attr\">slot<\/span>=<span class=\"hljs-string\">\"hotspot-3\"<\/span> <span class=\"hljs-attr\">data-position<\/span>=<span class=\"hljs-string\">\"-4 0.1 0.17\"<\/span>&gt;<\/span> Lamp Stand <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">label<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Running the above code in a browser displays the lamp with the hotspot labels.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"608\" data-public-id=\"7_hotspot\/7_hotspot.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_608,c_scale\/f_auto,q_auto\/v1648163673\/7_hotspot\/7_hotspot.png?_i=AA\" alt=\"Choosing hotspots on a 3d object\" class=\"wp-post-23595 wp-image-23614\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1648163673\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/7_hotspot\/7_hotspot.png?_i=AA 3104w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/7_hotspot\/7_hotspot.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/7_hotspot\/7_hotspot.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/7_hotspot\/7_hotspot.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/7_hotspot\/7_hotspot.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648163673\/7_hotspot\/7_hotspot.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Besides labeling, hotspots facilitate interactions and promote purchases. For this lamp model on a product page, you could create a hotspot button for adding the corresponding lightbulb to shopping carts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Optional: Changing the View in AR Button<\/h3>\n\n\n\n<p>Recall that the default *<strong>View in AR<\/strong>* button, which accompanies 3D assets, generates a QR code. By scanning that code on a mobile phone, consumers can view the 3D asset.<\/p>\n\n\n\n<p><br>To disable the button, set&nbsp; <code>ar<\/code> to <code>false<\/code> under <code>ar-3d-viewer<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ar-3d-viewer<\/span> <span class=\"hljs-attr\">ar<\/span>=<span class=\"hljs-string\">\"false\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Alternatively, customize that button, e.g., to match branding, by adding the <code>slot<\/code> attribute and specifying its class name:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">button<\/span> <span class=\"hljs-attr\">slot<\/span>=<span class=\"hljs-string\">\"ar-button\"<\/span> <span class=\"hljs-attr\">className<\/span>=<span class=\"hljs-string\">\"some-class-name\"<\/span>&gt;<\/span>\n        Custom AR button\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">button<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Optional: Replacing the Preloader<\/h3>\n\n\n\n<p>How about replacing the website\u2019s default preloader with a custom version, e.g., one that displays your company logo during image loads? To do that, add a <code>slot<\/code> attribute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">slot<\/span>=<span class=\"hljs-string\">\"loader\"<\/span> <span class=\"hljs-attr\">className<\/span>=<span class=\"hljs-string\">\"my-loader-class-name\"<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"\/path\/to\/loader.gif\"<\/span> <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">\"\"<\/span> \/&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ar-3d-viewer<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Understanding the Role of 3D Assets<\/h2>\n\n\n\n<p>With AR, VR, and the metaverse reshaping the digital sphere, 3D assets are playing a major role in three areas:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>E-commerce<\/strong> \u2014 The content you create by leveraging Cloudinary\u2019s 3D rendering capabilities enables shoppers to conveniently explore products in detail online, as demonstrated by the desk-lamp example in this tutorial.<\/li>\n\n\n\n<li><strong>Virtual collaboration and communication<\/strong> \u2014 Thanks to AR and VR, you can interact remotely and effectively with coworkers. And 3D assets play an important part in establishing props for virtual landscapes.<\/li>\n\n\n\n<li><strong>Education<\/strong> \u2014 3D technologies are gaining popularity in classrooms. The apps in question range from those that explain the solar system in captivating graphics to ones that offer risk-free training in industries like medicine and carpentry.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Concurrently, the potential for personal, professional, and academic advancement has never been stronger, making for a promising horizon ahead.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Checking Out the Details<\/h2>\n\n\n\n<p>A major benefit of 3D models in shopping apps, a feature most shoppers have come to expect, is the ability to explore details of merchandise from various angles, which helps make wise purchase decisions. Take advantage of <a href=\"https:\/\/cloudinary.com\/users\/register\/free\">Cloudinary<\/a> to enhance customer experience and boost sales. Do have a look.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As digital representations of objects, replete with textures, colors, and patterns, three-dimensional (3D) images tell stories much more realistically than 2D ones. Formerly leveraged mostly in games and architecture, 3D assets are valuable and becoming ubiquitous, from educational tools to shopping apps, because technologies for augmented reality (AR) and virtual reality (VR) are trending mainstream, [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":23659,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[354,355,25,165,353,360],"class_list":["post-23595","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-3d","tag-ar","tag-asset-management","tag-image-transformation","tag-metaverse","tag-vr"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Applying Augmented Reality (AR) With 3D Assets Through Cloudinary<\/title>\n<meta name=\"description\" content=\"How to apply AR to websites with 3D media through Cloudinary&#039;s AR-3D viewer, offering shoppers enlightening details on product pages.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Implementing Augmented Reality With 3D Assets\" \/>\n<meta property=\"og:description\" content=\"How to apply AR to websites with 3D media through Cloudinary&#039;s AR-3D viewer, offering shoppers enlightening details on product pages.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-13T14:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-28T22:01:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1648680214\/3D-AR-viewer\/3D-AR-viewer-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Implementing Augmented Reality With 3D Assets\",\"datePublished\":\"2022-04-13T14:30:00+00:00\",\"dateModified\":\"2023-12-28T22:01:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets\"},\"wordCount\":965,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA\",\"keywords\":[\"3D\",\"AR\",\"Asset Management\",\"Image Transformation\",\"Metaverse\",\"VR\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2022\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets\",\"url\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets\",\"name\":\"Applying Augmented Reality (AR) With 3D Assets Through Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA\",\"datePublished\":\"2022-04-13T14:30:00+00:00\",\"dateModified\":\"2023-12-28T22:01:22+00:00\",\"description\":\"How to apply AR to websites with 3D media through Cloudinary's AR-3D viewer, offering shoppers enlightening details on product pages.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Implementing Augmented Reality With 3D Assets\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Applying Augmented Reality (AR) With 3D Assets Through Cloudinary","description":"How to apply AR to websites with 3D media through Cloudinary's AR-3D viewer, offering shoppers enlightening details on product pages.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets","og_locale":"en_US","og_type":"article","og_title":"Implementing Augmented Reality With 3D Assets","og_description":"How to apply AR to websites with 3D media through Cloudinary's AR-3D viewer, offering shoppers enlightening details on product pages.","og_url":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets","og_site_name":"Cloudinary Blog","article_published_time":"2022-04-13T14:30:00+00:00","article_modified_time":"2023-12-28T22:01:22+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1648680214\/3D-AR-viewer\/3D-AR-viewer-png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets"},"author":{"name":"","@id":""},"headline":"Implementing Augmented Reality With 3D Assets","datePublished":"2022-04-13T14:30:00+00:00","dateModified":"2023-12-28T22:01:22+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets"},"wordCount":965,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA","keywords":["3D","AR","Asset Management","Image Transformation","Metaverse","VR"],"inLanguage":"en-US","copyrightYear":"2022","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets","url":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets","name":"Applying Augmented Reality (AR) With 3D Assets Through Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA","datePublished":"2022-04-13T14:30:00+00:00","dateModified":"2023-12-28T22:01:22+00:00","description":"How to apply AR to websites with 3D media through Cloudinary's AR-3D viewer, offering shoppers enlightening details on product pages.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/implementing-augmented-reality-with-3d-assets#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Implementing Augmented Reality With 3D Assets"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1648680214\/3D-AR-viewer\/3D-AR-viewer.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/23595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=23595"}],"version-history":[{"count":26,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/23595\/revisions"}],"predecessor-version":[{"id":32314,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/23595\/revisions\/32314"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/23659"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=23595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=23595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=23595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}