Transformations on 3D models

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]

Generating a 360 animated image from a 3D model

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 defining 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:
Copy to clipboard
cl_image_tag("DamagedHelmet3D", :transformation=>[
  {:fetch_format=>"gif"},
  {:aspect_ratio=>"1", :background=>"#a17ec5", :flags=>"animated", :height=>200, :crop=>"fill"}
  ])
PHP:
Copy to clipboard
cl_image_tag("DamagedHelmet3D", array("transformation"=>array(
  array("fetch_format"=>"gif"),
  array("aspect_ratio"=>"1", "background"=>"#a17ec5", "flags"=>"animated", "height"=>200, "crop"=>"fill")
  )))
Python:
Copy to clipboard
CloudinaryImage("DamagedHelmet3D").image(transformation=[
  {'fetch_format': "gif"},
  {'aspect_ratio': "1", 'background': "#a17ec5", 'flags': "animated", 'height': 200, 'crop': "fill"}
  ])
Node.js:
Copy to clipboard
cloudinary.image("DamagedHelmet3D", {transformation: [
  {fetch_format: "gif"},
  {aspect_ratio: "1", background: "#a17ec5", flags: "animated", height: 200, crop: "fill"}
  ]})
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation()
  .fetchFormat("gif").chain()
  .aspectRatio("1").background("#a17ec5").flags("animated").height(200).crop("fill")).imageTag("DamagedHelmet3D");
JS:
Copy to clipboard
cloudinary.imageTag('DamagedHelmet3D', {transformation: [
  {fetchFormat: "gif"},
  {aspectRatio: "1", background: "#a17ec5", flags: "animated", height: 200, crop: "fill"}
  ]}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("DamagedHelmet3D", {transformation: [
  {fetch_format: "gif"},
  {aspect_ratio: "1", background: "#a17ec5", flags: "animated", height: 200, crop: "fill"}
  ]})
React:
Copy to clipboard
<Image publicId="DamagedHelmet3D" >
  <Transformation fetchFormat="gif" />
  <Transformation aspectRatio="1" background="#a17ec5" flags="animated" height="200" crop="fill" />
</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="DamagedHelmet3D" >
  <cld-transformation fetchFormat="gif" />
  <cld-transformation aspectRatio="1" background="#a17ec5" flags="animated" height="200" crop="fill" />
</cld-image>
Angular:
Copy to clipboard
<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:
Copy to clipboard
cloudinary.Api.UrlImgUp.Transform(new Transformation()
  .FetchFormat("gif").Chain()
  .AspectRatio("1").Background("#a17ec5").Flags("animated").Height(200).Crop("fill")).BuildImageTag("DamagedHelmet3D")
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation()
  .fetchFormat("gif").chain()
  .aspectRatio("1").background("#a17ec5").flags("animated").height(200).crop("fill")).generate("DamagedHelmet3D");
iOS:
Copy to clipboard
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
  .setFetchFormat("gif").chain()
  .setAspectRatio("1").setBackground("#a17ec5").setFlags("animated").setHeight(200).setCrop("fill")).generate("DamagedHelmet3D")!, cloudinary: cloudinary)
Damaged Helmet 360 animated gif

Generating a 360 video from a 3D model

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 defining 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:
Copy to clipboard
cl_video_tag("docs/foyer-table", 
  :resource_type=>"image",
  :transformation=>[
    {:fetch_format=>"mp4"},
    {:background=>"#d5d2ca", :height=>300, :flags=>"animated", :crop=>"scale"}])
PHP:
Copy to clipboard
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:
Copy to clipboard
CloudinaryVideo("docs/foyer-table").video(resource_type = "image", 
 transformation = 
        [{'fetch_format': "mp4"},
         {'background': "#d5d2ca", 'height': 300, 'flags': "animated"}])
Node.js:
Copy to clipboard
cloudinary.video("docs/foyer-table",
    {resource_type: "image",
     transformation: [
       {fetch_format: "mp4"},
       {background: "#d5d2ca", height: 300, flags: "animated", crop: "scale"}]}
    )
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation()
    .fetch_format("mp4").chain()
    .background("#d5d2ca").height(300).flags("animated").crop("scale")).resourceType("image")
    .videoTag("docs/foyer-table");
JS:
Copy to clipboard
cloudinary.videoTag('docs/foyer-table', resource_type: "image", {transformation: [
  {fetchFormat: "mp4"},
  {background: "#d5d2ca", height: 300, flags: "animated", crop: "scale"}
  ]}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.video("docs/foyer-table", {resource_type: "image", transformation: [
  {fetch_format: "mp4"},
  {background: "#d5d2ca", height: 300, flags: "animated", crop: "scale"}
  ]})
React:
Copy to clipboard
<Video publicId="docs/foyer-table" resourceType="image">
  <Transformation fetchFormat="mp4" />
  <Transformation background="#d5d2ca" height="300" flags="animated" crop="scale" />
</Video>
Vue.js:
Copy to clipboard
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:
Copy to clipboard
<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:
Copy to clipboard
cloudinary.Api.UrlVideoUp.Transform(new Transformation()
    .FetchFormat("mp4").Chain()
    .Background("#d5d2ca").Height(300).Flags("animated").Crop("scale")).ResourceType("image")
    .BuildVideoTag("docs/foyer-table");
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation()
  .fetchFormat("mp4").chain()
  .background("#d5d2ca").height(300).flags("animated").crop("scale")).resourceType("image").generate("docs/foyer-table");
iOS:
Copy to clipboard
cloudinary.createUrl().setResourceType("image").setTransformation(CLDTransformation()
  .setFetchFormat("mp4").chain()
  .setBackground("#d5d2ca").setHeight(300).setFlags("animated").setCrop("scale")).generate("docs/foyer-table")

Generating an image from a 3D model

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 defining 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:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", :fetch_format=>"png")
    PHP:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", array("fetch_format"=>"png"))
    Python:
    Copy to clipboard
    CloudinaryImage("DamagedHelmet3D").image(fetch_format="png")
    Node.js:
    Copy to clipboard
    cloudinary.image("DamagedHelmet3D", {fetch_format: "png"})
    Java:
    Copy to clipboard
    cloudinary.url().fetch_format("png").imageTag("DamagedHelmet3D");
    JS:
    Copy to clipboard
    cloudinary.imageTag('DamagedHelmet3D', {fetchFormat: "png"}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("DamagedHelmet3D", {fetch_format: "png"})
    React:
    Copy to clipboard
    <Image publicId="DamagedHelmet3D" fetchFormat="png">
    
    </Image>
    Vue.js:
    Copy to clipboard
    js
    <cld-image publicId="DamagedHelmet3D" fetchFormat="png">
    
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="DamagedHelmet3D" fetch-format="png">
    
    </cl-image>
    .Net:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.FetchFormat("png").BuildImageTag("DamagedHelmet3D")
    Android:
    Copy to clipboard
    MediaManager.get().url().fetchFormat("png").generate("DamagedHelmet3D");
    iOS:
    Copy to clipboard
    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:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", :format=>"png")
    PHP:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", array("format"=>"png"))
    Python:
    Copy to clipboard
    CloudinaryImage("DamagedHelmet3D").image(format="png")
    Node.js:
    Copy to clipboard
    cloudinary.image("DamagedHelmet3D", {format: "png"})
    Java:
    Copy to clipboard
    cloudinary.url().format("png").imageTag("DamagedHelmet3D");
    JS:
    Copy to clipboard
    cloudinary.imageTag('DamagedHelmet3D', {format: "png"}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("DamagedHelmet3D", {format: "png"})
    React:
    Copy to clipboard
    <Image publicId="DamagedHelmet3D" format="png">
    
    </Image>
    Vue.js:
    Copy to clipboard
    js
    <cld-image publicId="DamagedHelmet3D" format="png">
    
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="DamagedHelmet3D" format="png">
    
    </cl-image>
    .Net:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.Format("png").BuildImageTag("DamagedHelmet3D")
    Android:
    Copy to clipboard
    MediaManager.get().url().format("png").generate("DamagedHelmet3D");
    iOS:
    Copy to clipboard
    imageView.cldSetImage(cloudinary.createUrl().setFormat("png").generate("DamagedHelmet3D")!, cloudinary: cloudinary)

Damaged Helmet single image

You can then apply further transformations to the image, for example:

Ruby:
Copy to clipboard
cl_image_tag("DamagedHelmet3D", :transformation=>[
  {:fetch_format=>"png"},
  {:angle=>90, :aspect_ratio=>"1", :background=>"#a17ec5", :gravity=>"auto", :height=>200, :crop=>"fill"}
  ])
PHP:
Copy to clipboard
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:
Copy to clipboard
CloudinaryImage("DamagedHelmet3D").image(transformation=[
  {'fetch_format': "png"},
  {'angle': 90, 'aspect_ratio': "1", 'background': "#a17ec5", 'gravity': "auto", 'height': 200, 'crop': "fill"}
  ])
Node.js:
Copy to clipboard
cloudinary.image("DamagedHelmet3D", {transformation: [
  {fetch_format: "png"},
  {angle: 90, aspect_ratio: "1", background: "#a17ec5", gravity: "auto", height: 200, crop: "fill"}
  ]})
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation()
  .fetchFormat("png").chain()
  .angle(90).aspectRatio("1").background("#a17ec5").gravity("auto").height(200).crop("fill")).imageTag("DamagedHelmet3D");
JS:
Copy to clipboard
cloudinary.imageTag('DamagedHelmet3D', {transformation: [
  {fetchFormat: "png"},
  {angle: 90, aspectRatio: "1", background: "#a17ec5", gravity: "auto", height: 200, crop: "fill"}
  ]}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("DamagedHelmet3D", {transformation: [
  {fetch_format: "png"},
  {angle: 90, aspect_ratio: "1", background: "#a17ec5", gravity: "auto", height: 200, crop: "fill"}
  ]})
React:
Copy to clipboard
<Image publicId="DamagedHelmet3D" >
  <Transformation fetchFormat="png" />
  <Transformation angle="90" aspectRatio="1" background="#a17ec5" gravity="auto" height="200" crop="fill" />
</Image>
Vue.js:
Copy to clipboard
<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:
Copy to clipboard
<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:
Copy to clipboard
cloudinary.Api.UrlImgUp.Transform(new Transformation()
  .FetchFormat("png").Chain()
  .Angle(90).AspectRatio("1").Background("#a17ec5").Gravity("auto").Height(200).Crop("fill")).BuildImageTag("DamagedHelmet3D")
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation()
  .fetchFormat("png").chain()
  .angle(90).aspectRatio("1").background("#a17ec5").gravity("auto").height(200).crop("fill")).generate("DamagedHelmet3D");
iOS:
Copy to clipboard
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)
Damaged Helmet single image with transformations

Applying Draco compression to glTF files

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:
Copy to clipboard
cl_image_tag("DamagedHelmet3D.gltz", :flags=>"draco")
PHP:
Copy to clipboard
cl_image_tag("DamagedHelmet3D.gltz", array("flags"=>"draco"))
Python:
Copy to clipboard
CloudinaryImage("DamagedHelmet3D.gltz").image(flags="draco")
Node.js:
Copy to clipboard
cloudinary.image("DamagedHelmet3D.gltz", {flags: "draco"})
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation().flags("draco")).imageTag("DamagedHelmet3D.gltz");
JS:
Copy to clipboard
cloudinary.imageTag('DamagedHelmet3D.gltz', {flags: "draco"}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("DamagedHelmet3D.gltz", {flags: "draco"})
React:
Copy to clipboard
<Image publicId="DamagedHelmet3D.gltz" >
  <Transformation flags="draco" />
</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="DamagedHelmet3D.gltz" >
  <cld-transformation flags="draco" />
</cld-image>
Angular:
Copy to clipboard
<cl-image public-id="DamagedHelmet3D.gltz" >
  <cl-transformation flags="draco">
  </cl-transformation>
</cl-image>
.Net:
Copy to clipboard
cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags("draco")).BuildImageTag("DamagedHelmet3D.gltz")
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation().flags("draco")).generate("DamagedHelmet3D.gltz");
iOS:
Copy to clipboard
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.

Delivering FBX files as glTF

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 defining 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:
    Copy to clipboard
    cl_image_tag("foyer-table", :format=>"gltf")
    PHP:
    Copy to clipboard
    cl_image_tag("foyer-table", array("format"=>"gltf"))
    Python:
    Copy to clipboard
    CloudinaryImage("foyer-table").image(format="gltf")
    Node.js:
    Copy to clipboard
    cloudinary.image("foyer-table", {format: "gltf"})
    Java:
    Copy to clipboard
    cloudinary.url().format("gltf").imageTag("foyer-table");
    JS:
    Copy to clipboard
    cloudinary.imageTag('foyer-table', {format: "gltf"}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("foyer-table", {format: "gltf"})
    React:
    Copy to clipboard
    <Image publicId="foyer-table" format="gltf">
    
    </Image>
    Vue.js:
    Copy to clipboard
    js
    <cld-image publicId="foyer-table" format="gltf">
    
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="foyer-table" format="gltf">
    
    </cl-image>
    .Net:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.Format("gltf").BuildImageTag("foyer-table")
    Android:
    Copy to clipboard
    MediaManager.get().url().format("gltf").generate("foyer-table");
    iOS:
    Copy to clipboard
    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:
    Copy to clipboard
    cl_image_tag("docs/foyer-table", :transformation=>[
    {:format=>"gltz"},
    {:flags=>"draco"}
    ])
    PHP:
    Copy to clipboard
    cl_image_tag("docs/foyer-table", array("transformation"=>array(
    array("format"=>"gltz"),
    array("flags"=>"draco")
    )))
    Python:
    Copy to clipboard
    CloudinaryImage("docs/foyer-table").image(transformation=[
    {'format': "gltz"},
    {'flags': "draco"}
    ])
    Node.js:
    Copy to clipboard
    cloudinary.image("docs/foyer-table", {transformation: [
    {format: "gltz"},
    {flags: "draco"}
    ]})
    Java:
    Copy to clipboard
    cloudinary.url().transformation(new Transformation()
    .format("gltz").chain()
    .flags("draco")).imageTag("docs/foyer-table");
    JS:
    Copy to clipboard
    cloudinary.imageTag('docs/foyer-table', {transformation: [
    {format: "gltz"},
    {flags: "draco"}
    ]}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("docs/foyer-table", {transformation: [
    {format: "gltz"},
    {flags: "draco"}
    ]})
    React:
    Copy to clipboard
    <Image publicId="docs/foyer-table" >
    <Transformation format="gltz" />
    <Transformation flags="draco" />
    </Image>
    Vue.js:
    Copy to clipboard
    js
    <cld-image publicId="docs/foyer-table" >
    <cld-transformation format="gltz" />
    <cld-transformation flags="draco" />
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="docs/foyer-table" >
    <cl-transformation format="gltz">
    </cl-transformation>
    <cl-transformation flags="draco">
    </cl-transformation>
    </cl-image>
    .Net:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.Transform(new Transformation()
    .Format("gltz").Chain()
    .Flags("draco")).BuildImageTag("docs/foyer-table")
    Android:
    Copy to clipboard
    MediaManager.get().url().transformation(new Transformation()
    .format("gltz").chain()
    .flags("draco")).generate("docs/foyer-table");
    iOS:
    Copy to clipboard
    imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
    .setFormat("gltz").chain()
    .setFlags("draco")).generate("docs/foyer-table")!, cloudinary: cloudinary)

Note
It is not possible to deliver a glTF file as FBX.

Delivering glTF files as GLB

GLB is the binary file format representation of 3D models saved in the GL Transmission Format (glTF).

You can deliver a glTF file in the GLB format either by setting the fetch_format parameter to glb (f_glb in URLs), or by defining 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:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", :fetch_format=>"glb")
    PHP:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", array("fetch_format"=>"glb"))
    Python:
    Copy to clipboard
    CloudinaryImage("DamagedHelmet3D").image(fetch_format="glb")
    Node.js:
    Copy to clipboard
    cloudinary.image("DamagedHelmet3D", {fetch_format: "glb"})
    Java:
    Copy to clipboard
    cloudinary.url().fetch_format("glb").imageTag("DamagedHelmet3D");
    JS:
    Copy to clipboard
    cloudinary.imageTag('DamagedHelmet3D', {fetchFormat: "glb"}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("DamagedHelmet3D", {fetch_format: "glb"})
    React:
    Copy to clipboard
    <Image publicId="DamagedHelmet3D" fetchFormat="glb">
    
    </Image>
    Vue.js:
    Copy to clipboard
    js
    <cld-image publicId="DamagedHelmet3D" fetchFormat="glb">
    
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="DamagedHelmet3D" fetch-format="glb">
    
    </cl-image>
    .Net:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.FetchFormat("glb").BuildImageTag("DamagedHelmet3D")
    Android:
    Copy to clipboard
    MediaManager.get().url().fetchFormat("glb").generate("DamagedHelmet3D");
    iOS:
    Copy to clipboard
    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:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", :format=>"glb")
    PHP:
    Copy to clipboard
    cl_image_tag("DamagedHelmet3D", array("format"=>"glb"))
    Python:
    Copy to clipboard
    CloudinaryImage("DamagedHelmet3D").image(format="glb")
    Node.js:
    Copy to clipboard
    cloudinary.image("DamagedHelmet3D", {format: "glb"})
    Java:
    Copy to clipboard
    cloudinary.url().format("glb").imageTag("DamagedHelmet3D");
    JS:
    Copy to clipboard
    cloudinary.imageTag('DamagedHelmet3D', {format: "glb"}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("DamagedHelmet3D", {format: "glb"})
    React:
    Copy to clipboard
    <Image publicId="DamagedHelmet3D" format="glb">
    
    </Image>
    Vue.js:
    Copy to clipboard
    js
    <cld-image publicId="DamagedHelmet3D" format="glb">
    
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="DamagedHelmet3D" format="glb">
    
    </cl-image>
    .Net:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.Format("glb").BuildImageTag("DamagedHelmet3D")
    Android:
    Copy to clipboard
    MediaManager.get().url().format("glb").generate("DamagedHelmet3D");
    iOS:
    Copy to clipboard
    imageView.cldSetImage(cloudinary.createUrl().setFormat("glb").generate("DamagedHelmet3D")!, cloudinary: cloudinary)