Cloudinary supports 3D models in the FBX
and glTF
formats that are uploaded as a single zip file. Some transformations are supported on the bundle as a whole and these are detailed below. No transformations are currently supported on its contained assets.
Two models are used in the examples below:
- DamagedHelmet3D.gltz: a zip file, uploaded as an
image
resource type, containing a glTF file and other associated files.
- foyer-table.fbxz: a zip file, uploaded as an
image
resource type, containing an FBX file and other associated files. [© HippoStance]
To generate a 360 animated image from a 3D model, use the animated
flag and specify a file format that supports animation, such as GIF. You can do this either by specifying the file extension (format
in SDKs), or by adding the fetch_format
parameter (f
in URLs). The following example generates a 360 animated GIF from a glTF model of a helmet (in addition to applying other image transformations):
Ruby:
cl_image_tag("DamagedHelmet3D", :transformation=>[
{:fetch_format=>"gif"},
{:aspect_ratio=>"1", :background=>"#a17ec5", :flags=>"animated", :height=>200, :crop=>"fill"}
])
PHP:
cl_image_tag("DamagedHelmet3D", array("transformation"=>array(
array("fetch_format"=>"gif"),
array("aspect_ratio"=>"1", "background"=>"#a17ec5", "flags"=>"animated", "height"=>200, "crop"=>"fill")
)))
Python:
CloudinaryImage("DamagedHelmet3D").image(transformation=[
{'fetch_format': "gif"},
{'aspect_ratio': "1", 'background': "#a17ec5", 'flags': "animated", 'height': 200, 'crop': "fill"}
])
Node.js:
cloudinary.image("DamagedHelmet3D", {transformation: [
{fetch_format: "gif"},
{aspect_ratio: "1", background: "#a17ec5", flags: "animated", height: 200, crop: "fill"}
]})
Java:
cloudinary.url().transformation(new Transformation()
.fetchFormat("gif").chain()
.aspectRatio("1").background("#a17ec5").flags("animated").height(200).crop("fill")).imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {transformation: [
{fetchFormat: "gif"},
{aspectRatio: "1", background: "#a17ec5", flags: "animated", height: 200, crop: "fill"}
]}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {transformation: [
{fetch_format: "gif"},
{aspect_ratio: "1", background: "#a17ec5", flags: "animated", height: 200, crop: "fill"}
]})
React:
<Image publicId="DamagedHelmet3D" >
<Transformation fetchFormat="gif" />
<Transformation aspectRatio="1" background="#a17ec5" flags="animated" height="200" crop="fill" />
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" >
<cld-transformation fetchFormat="gif" />
<cld-transformation aspectRatio="1" background="#a17ec5" flags="animated" height="200" crop="fill" />
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" >
<cl-transformation fetch-format="gif">
</cl-transformation>
<cl-transformation aspect-ratio="1" background="#a17ec5" flags="animated" height="200" crop="fill">
</cl-transformation>
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Transform(new Transformation()
.FetchFormat("gif").Chain()
.AspectRatio("1").Background("#a17ec5").Flags("animated").Height(200).Crop("fill")).BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().transformation(new Transformation()
.fetchFormat("gif").chain()
.aspectRatio("1").background("#a17ec5").flags("animated").height(200).crop("fill")).generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
.setFetchFormat("gif").chain()
.setAspectRatio("1").setBackground("#a17ec5").setFlags("animated").setHeight(200).setCrop("fill")).generate("DamagedHelmet3D")!, cloudinary: cloudinary)
To generate a 360 video from a 3D model, use the animated
flag and specify a video file format, such as MP4. You can do this either by specifying the file extension (format
in SDKs), or by adding the fetch_format
parameter (f
in URLs). The following example generates a 360 video from an FBX model of a foyer table (in addition to applying other image transformations):
3D model zip files are uploaded as image types, so make sure you set the resource_type
parameter to image
when implementing the video tag:
Ruby:
cl_video_tag("docs/foyer-table",
:resource_type=>"image",
:transformation=>[
{:fetch_format=>"mp4"},
{:background=>"#d5d2ca", :height=>300, :flags=>"animated", :crop=>"scale"}])
PHP:
cl_video_tag("docs/foyer-table", array(
"resource_type"=>"image",
"transformation"=>array(
array("fetch_format"=>"mp4"),
array("background"=>"#d5d2ca", "height"=>300, "flags"=>"animated", "crop"=>"scale")
));
Python:
CloudinaryVideo("docs/foyer-table").video(resource_type = "image",
transformation =
[{'fetch_format': "mp4"},
{'background': "#d5d2ca", 'height': 300, 'flags': "animated"}])
Node.js:
cloudinary.video("docs/foyer-table",
{resource_type: "image",
transformation: [
{fetch_format: "mp4"},
{background: "#d5d2ca", height: 300, flags: "animated", crop: "scale"}]}
)
Java:
cloudinary.url().transformation(new Transformation()
.fetch_format("mp4").chain()
.background("#d5d2ca").height(300).flags("animated").crop("scale")).resourceType("image")
.videoTag("docs/foyer-table");
JS:
cloudinary.videoTag('docs/foyer-table', resource_type: "image", {transformation: [
{fetchFormat: "mp4"},
{background: "#d5d2ca", height: 300, flags: "animated", crop: "scale"}
]}).toHtml();
jQuery:
$.cloudinary.video("docs/foyer-table", {resource_type: "image", transformation: [
{fetch_format: "mp4"},
{background: "#d5d2ca", height: 300, flags: "animated", crop: "scale"}
]})
React:
<Video publicId="docs/foyer-table" resourceType="image">
<Transformation fetchFormat="mp4" />
<Transformation background="#d5d2ca" height="300" flags="animated" crop="scale" />
</Video>
Vue.js:
<cld-video publicId="docs/foyer-table" resourceType="image">
<cld-transformation fetchFormat="mp4" />
<cld-transformation background="#d5d2ca" height="300" flags="animated" crop="scale" />
</cld-video>
Angular:
<cl-video public-id="docs/foyer-table" resource-type="image">
<cl-transformation fetch-format="mp4">
</cl-transformation>
<cl-transformation background="#d5d2ca" height="300" flags="animated" crop="scale">
</cl-transformation>
</cl-video>
.NET:
cloudinary.Api.UrlVideoUp.Transform(new Transformation()
.FetchFormat("mp4").Chain()
.Background("#d5d2ca").Height(300).Flags("animated").Crop("scale")).ResourceType("image")
.BuildVideoTag("docs/foyer-table");
Android:
MediaManager.get().url().transformation(new Transformation()
.fetchFormat("mp4").chain()
.background("#d5d2ca").height(300).flags("animated").crop("scale")).resourceType("image").generate("docs/foyer-table");
iOS:
cloudinary.createUrl().setResourceType("image").setTransformation(CLDTransformation()
.setFetchFormat("mp4").chain()
.setBackground("#d5d2ca").setHeight(300).setFlags("animated").setCrop("scale")).generate("docs/foyer-table")
You can generate a single image from a 3D model by setting the fetch_format
parameter in SDKs (f
in URLs) to an image format such as PNG or JPG, or by specifying the file extension (format
in SDKs) as appropriate.
For example, the DamagedHelmet3D.gltz
file can be requested as a PNG file by setting the fetch_format
parameter to png
, as follows:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("DamagedHelmet3D", :fetch_format=>"png")
PHP:
cl_image_tag("DamagedHelmet3D", array("fetch_format"=>"png"))
Python:
CloudinaryImage("DamagedHelmet3D").image(fetch_format="png")
Node.js:
cloudinary.image("DamagedHelmet3D", {fetch_format: "png"})
Java:
cloudinary.url().fetch_format("png").imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {fetchFormat: "png"}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {fetch_format: "png"})
React:
<Image publicId="DamagedHelmet3D" fetchFormat="png">
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" fetchFormat="png">
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" fetch-format="png">
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.FetchFormat("png").BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().fetchFormat("png").generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setFetchFormat("png").generate("DamagedHelmet3D")!, cloudinary: cloudinary)
Or, by specifying the .png extension, as follows:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("DamagedHelmet3D", :format=>"png")
PHP:
cl_image_tag("DamagedHelmet3D", array("format"=>"png"))
Python:
CloudinaryImage("DamagedHelmet3D").image(format="png")
Node.js:
cloudinary.image("DamagedHelmet3D", {format: "png"})
Java:
cloudinary.url().format("png").imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {format: "png"}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {format: "png"})
React:
<Image publicId="DamagedHelmet3D" format="png">
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" format="png">
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" format="png">
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Format("png").BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().format("png").generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setFormat("png").generate("DamagedHelmet3D")!, cloudinary: cloudinary)

You can then apply further transformations to the image, for example:
Ruby:
cl_image_tag("DamagedHelmet3D", :transformation=>[
{:fetch_format=>"png"},
{:angle=>90, :aspect_ratio=>"1", :background=>"#a17ec5", :gravity=>"auto", :height=>200, :crop=>"fill"}
])
PHP:
cl_image_tag("DamagedHelmet3D", array("transformation"=>array(
array("fetch_format"=>"png"),
array("angle"=>90, "aspect_ratio"=>"1", "background"=>"#a17ec5", "gravity"=>"auto", "height"=>200, "crop"=>"fill")
)))
Python:
CloudinaryImage("DamagedHelmet3D").image(transformation=[
{'fetch_format': "png"},
{'angle': 90, 'aspect_ratio': "1", 'background': "#a17ec5", 'gravity': "auto", 'height': 200, 'crop': "fill"}
])
Node.js:
cloudinary.image("DamagedHelmet3D", {transformation: [
{fetch_format: "png"},
{angle: 90, aspect_ratio: "1", background: "#a17ec5", gravity: "auto", height: 200, crop: "fill"}
]})
Java:
cloudinary.url().transformation(new Transformation()
.fetchFormat("png").chain()
.angle(90).aspectRatio("1").background("#a17ec5").gravity("auto").height(200).crop("fill")).imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {transformation: [
{fetchFormat: "png"},
{angle: 90, aspectRatio: "1", background: "#a17ec5", gravity: "auto", height: 200, crop: "fill"}
]}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {transformation: [
{fetch_format: "png"},
{angle: 90, aspect_ratio: "1", background: "#a17ec5", gravity: "auto", height: 200, crop: "fill"}
]})
React:
<Image publicId="DamagedHelmet3D" >
<Transformation fetchFormat="png" />
<Transformation angle="90" aspectRatio="1" background="#a17ec5" gravity="auto" height="200" crop="fill" />
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" >
<cld-transformation fetchFormat="png" />
<cld-transformation angle="90" aspectRatio="1" background="#a17ec5" gravity="auto" height="200" crop="fill" />
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" >
<cl-transformation fetch-format="png">
</cl-transformation>
<cl-transformation angle="90" aspect-ratio="1" background="#a17ec5" gravity="auto" height="200" crop="fill">
</cl-transformation>
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Transform(new Transformation()
.FetchFormat("png").Chain()
.Angle(90).AspectRatio("1").Background("#a17ec5").Gravity("auto").Height(200).Crop("fill")).BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().transformation(new Transformation()
.fetchFormat("png").chain()
.angle(90).aspectRatio("1").background("#a17ec5").gravity("auto").height(200).crop("fill")).generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
.setFetchFormat("png").chain()
.setAngle(90).setAspectRatio("1").setBackground("#a17ec5").setGravity("auto").setHeight(200).setCrop("fill")).generate("DamagedHelmet3D")!, cloudinary: cloudinary)
You can optimize the mesh buffer in glTF files using Draco compression. To apply Draco compression, use the draco
flag (fl_draco
in URLs):
Ruby:
cl_image_tag("DamagedHelmet3D.gltz", :flags=>"draco")
PHP:
cl_image_tag("DamagedHelmet3D.gltz", array("flags"=>"draco"))
Python:
CloudinaryImage("DamagedHelmet3D.gltz").image(flags="draco")
Node.js:
cloudinary.image("DamagedHelmet3D.gltz", {flags: "draco"})
Java:
cloudinary.url().transformation(new Transformation().flags("draco")).imageTag("DamagedHelmet3D.gltz");
JS:
cloudinary.imageTag('DamagedHelmet3D.gltz', {flags: "draco"}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D.gltz", {flags: "draco"})
React:
<Image publicId="DamagedHelmet3D.gltz" >
<Transformation flags="draco" />
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D.gltz" >
<cld-transformation flags="draco" />
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D.gltz" >
<cl-transformation flags="draco">
</cl-transformation>
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags("draco")).BuildImageTag("DamagedHelmet3D.gltz")
Android:
MediaManager.get().url().transformation(new Transformation().flags("draco")).generate("DamagedHelmet3D.gltz");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags("draco")).generate("DamagedHelmet3D.gltz")!, cloudinary: cloudinary)
- If you use the .gltz extension, the whole zip file is delivered containing the modified glTF file, referencing the Draco mesh.
- If you use the .gltf extension, only the modified glTF file is delivered.
You can deliver an FBX file in the glTF format either by setting the fetch_format
parameter to gltf
(f_gltf
in URLs), or by specifying the .gltf file extension (format
in SDKs). The following example delivers the foyer-table
FBX file as glTF, using the .gltf extension:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("foyer-table", :format=>"gltf")
PHP:
cl_image_tag("foyer-table", array("format"=>"gltf"))
Python:
CloudinaryImage("foyer-table").image(format="gltf")
Node.js:
cloudinary.image("foyer-table", {format: "gltf"})
Java:
cloudinary.url().format("gltf").imageTag("foyer-table");
JS:
cloudinary.imageTag('foyer-table', {format: "gltf"}).toHtml();
jQuery:
$.cloudinary.image("foyer-table", {format: "gltf"})
React:
<Image publicId="foyer-table" format="gltf">
</Image>
Vue.js:
<cld-image publicId="foyer-table" format="gltf">
</cld-image>
Angular:
<cl-image public-id="foyer-table" format="gltf">
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Format("gltf").BuildImageTag("foyer-table")
Android:
MediaManager.get().url().format("gltf").generate("foyer-table");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setFormat("gltf").generate("foyer-table")!, cloudinary: cloudinary)
You can also deliver an FBX file in the gltz (zipped) format. Either way, you can apply Draco compression to the model at the same time:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("docs/foyer-table", :transformation=>[
{:format=>"gltz"},
{:flags=>"draco"}
])
PHP:
cl_image_tag("docs/foyer-table", array("transformation"=>array(
array("format"=>"gltz"),
array("flags"=>"draco")
)))
Python:
CloudinaryImage("docs/foyer-table").image(transformation=[
{'format': "gltz"},
{'flags': "draco"}
])
Node.js:
cloudinary.image("docs/foyer-table", {transformation: [
{format: "gltz"},
{flags: "draco"}
]})
Java:
cloudinary.url().transformation(new Transformation()
.format("gltz").chain()
.flags("draco")).imageTag("docs/foyer-table");
JS:
cloudinary.imageTag('docs/foyer-table', {transformation: [
{format: "gltz"},
{flags: "draco"}
]}).toHtml();
jQuery:
$.cloudinary.image("docs/foyer-table", {transformation: [
{format: "gltz"},
{flags: "draco"}
]})
React:
<Image publicId="docs/foyer-table" >
<Transformation format="gltz" />
<Transformation flags="draco" />
</Image>
Vue.js:
<cld-image publicId="docs/foyer-table" >
<cld-transformation format="gltz" />
<cld-transformation flags="draco" />
</cld-image>
Angular:
<cl-image public-id="docs/foyer-table" >
<cl-transformation format="gltz">
</cl-transformation>
<cl-transformation flags="draco">
</cl-transformation>
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Transform(new Transformation()
.Format("gltz").Chain()
.Flags("draco")).BuildImageTag("docs/foyer-table")
Android:
MediaManager.get().url().transformation(new Transformation()
.format("gltz").chain()
.flags("draco")).generate("docs/foyer-table");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
.setFormat("gltz").chain()
.setFlags("draco")).generate("docs/foyer-table")!, cloudinary: cloudinary)
It is not possible to deliver a glTF file as FBX.
GLB is the binary file format representation of 3D models saved in the GL Transmission Format (glTF).
You can deliver an uploaded glTF file in the GLB format either by setting the fetch_format
parameter to glb
(f_glb
in URLs), or by specifying the .glb file extension (format
in SDKs).
For example, the DamagedHelmet3D.gltz
file can be requested as a GLB file by setting the fetch_format
parameter to glb
, as follows:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("DamagedHelmet3D", :fetch_format=>"glb")
PHP:
cl_image_tag("DamagedHelmet3D", array("fetch_format"=>"glb"))
Python:
CloudinaryImage("DamagedHelmet3D").image(fetch_format="glb")
Node.js:
cloudinary.image("DamagedHelmet3D", {fetch_format: "glb"})
Java:
cloudinary.url().fetch_format("glb").imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {fetchFormat: "glb"}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {fetch_format: "glb"})
React:
<Image publicId="DamagedHelmet3D" fetchFormat="glb">
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" fetchFormat="glb">
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" fetch-format="glb">
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.FetchFormat("glb").BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().fetchFormat("glb").generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setFetchFormat("glb").generate("DamagedHelmet3D")!, cloudinary: cloudinary)
Or, by specifying the .glb extension, as follows:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("DamagedHelmet3D", :format=>"glb")
PHP:
cl_image_tag("DamagedHelmet3D", array("format"=>"glb"))
Python:
CloudinaryImage("DamagedHelmet3D").image(format="glb")
Node.js:
cloudinary.image("DamagedHelmet3D", {format: "glb"})
Java:
cloudinary.url().format("glb").imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {format: "glb"}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {format: "glb"})
React:
<Image publicId="DamagedHelmet3D" format="glb">
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" format="glb">
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" format="glb">
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Format("glb").BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().format("glb").generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setFormat("glb").generate("DamagedHelmet3D")!, cloudinary: cloudinary)
USDZ (Universal Scene Description) is a file format for 3D models, introduced by Apple for its ARKit, to display 3D models on iPad, iPhone or Mac.
You can deliver an uploaded glTF file in the USDZ format either by setting the fetch_format
parameter to usdz
(f_usdz
in URLs), or by specifying the .usdz file extension (format
in SDKs).
For example, the DamagedHelmet3D.gltz
file can be requested as a USDZ file by setting the fetch_format
parameter to usdz
, as follows:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("DamagedHelmet3D", :fetch_format=>"usdz")
PHP:
cl_image_tag("DamagedHelmet3D", array("fetch_format"=>"usdz"))
Python:
CloudinaryImage("DamagedHelmet3D").image(fetch_format="usdz")
Node.js:
cloudinary.image("DamagedHelmet3D", {fetch_format: "usdz"})
Java:
cloudinary.url().fetch_format("usdz").imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {fetchFormat: "usdz"}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {fetch_format: "usdz"})
React:
<Image publicId="DamagedHelmet3D" fetchFormat="usdz">
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" fetchFormat="usdz">
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" fetch-format="usdz">
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.FetchFormat("usdz").BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().fetchFormat("usdz").generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setFetchFormat("usdz").generate("DamagedHelmet3D")!, cloudinary: cloudinary)
Or, by specifying the .usdz extension, as follows:
Using the URL syntax:
Using the SDK syntax:
Ruby:
cl_image_tag("DamagedHelmet3D", :format=>"usdz")
PHP:
cl_image_tag("DamagedHelmet3D", array("format"=>"usdz"))
Python:
CloudinaryImage("DamagedHelmet3D").image(format="usdz")
Node.js:
cloudinary.image("DamagedHelmet3D", {format: "usdz"})
Java:
cloudinary.url().format("usdz").imageTag("DamagedHelmet3D");
JS:
cloudinary.imageTag('DamagedHelmet3D', {format: "usdz"}).toHtml();
jQuery:
$.cloudinary.image("DamagedHelmet3D", {format: "usdz"})
React:
<Image publicId="DamagedHelmet3D" format="usdz">
</Image>
Vue.js:
<cld-image publicId="DamagedHelmet3D" format="usdz">
</cld-image>
Angular:
<cl-image public-id="DamagedHelmet3D" format="usdz">
</cl-image>
.NET:
cloudinary.Api.UrlImgUp.Format("usdz").BuildImageTag("DamagedHelmet3D")
Android:
MediaManager.get().url().format("usdz").generate("DamagedHelmet3D");
iOS:
imageView.cldSetImage(cloudinary.createUrl().setFormat("usdz").generate("DamagedHelmet3D")!, cloudinary: cloudinary)