Skip to main content

EnSight 2025 R2

Ansys glTF Extensions

Last update: 16.07.2025

Ansys specifc extensions to the glTF specification.

Ansys specifc extensions to the glTF specification.

Extensions

Note: This component is a work in progress and this documentation is incomplete/preliminary.

The GLTFWriter Library is a C++ library that is capable of writing geometry scenes in glTF format. The core glTF specification, while complete, does not meet all of the needs of Ansys applications. There are a collection of formal extensions to the specification that this library (and other aspects of the Ansys glTF ecosystem) use to place more specific information into the files.

GLTFWriter API Interface

These extensions have been designed to be specified using the ANSYS::AVZ::GLTFWriter::Value interface. Adding a line width specification to a ANSYS::AVZ::GLTFWriter::Mesh object is done like this:

auto line_width = GLTFWriter::Value::Create(gltf, "ANSYS_linewidth", 0.5);
mesh->AppendValue(line_width);

Extensions

The following extensions are supported:

Extension Datatype Object(s) Description
ANSYS_linewidth float ANSYS::AVZ::GLTFWriter::Scene, ANSYS::AVZ::GLTFWriter::Mesh Specifies the width of lines and size of points
ANSYS_material_name string ANSYS::AVZ::GLTFWriter::Material The name of the material
ANSYS_material_details string ANSYS::AVZ::GLTFWriter::Material JSON description of the material details
ANSYS_scene_timevalue float ANSYS::AVZ::GLTFWriter::Scene Time value for the scene

Examples

Examples of what is embedded in the glTF JSON block:

  • ANSYS_linewidth:
    "extensions": {
    "ANSYS_linewidth": {
    "linewidth" : 100.0
    }
    }
  • ANSYS_material_name:
    "extensions": {
    "ANSYS_material_name": {
    "name" : "sample_material_name"
    }
    }
  • ANSYS_material_details:
    "extensions": {
    "ANSYS_material_details": {
    "ensight/Metal/Gold": {
    "version": "2025 R1",
    "material_type": "SUBSURFACETHINGLASS",
    "color": [0.981126, 0.793495, 0.343545],
    "ambient": [0.981126, 0.793495, 0.343545],
    "ka": 0.001373,
    "diffuse": [0.981126, 0.793495, 0.343545],
    "kd": 0.000000,
    "specular": [1.000000, 0.808760, 0.350154],
    "ks": 1.000000,
    "reflective": [1.000000, 0.808760, 0.350154],
    "kr": 0.300000,
    "emissive": [1.000000, 1.000000, 1.000000],
    "ke": 0.000000,
    "shininess": 200.000000,
    "smoothness": 0.500000,
    "opacity": 1.000000,
    "gamma_corrected": false,
    "metallic": 1.000000,
    "speculartint": 1.000000,
    "eta": [0.070000, 0.370000, 1.500000],
    "kta": [3.700000, 2.300000, 1.700000]
    }
    }
    }
    The ANSYS_material_details is specifically the text of a JSON object description. The object keys are the material type. In the example, the material is in "ensight" format and is of the class "Metal" and subclass "Gold". It is legal for multiple specifications to be included. For example, both "ensight/Metal/Gold" and "MDL/omniverse/green glass" may both be included in the same JSON object.
  • ANSYS_scene_timevalue:
    "extensions": {
    "ANSYS_scene_timevalue": {
    "timevalue": 0.223
    }
    }

Users of the GLTFWriter API need only set the "ANSYS_*" named Value object on the appropriate target object type listed in the table to generate the extension blocks.

Connect with Ansys