Skip to content

EXT_structural_metadata: Properties for structured data#2151

Open
javagl wants to merge 8 commits intoKhronosGroup:mainfrom
CesiumGS:proposal-EXT_structural_metadata
Open

EXT_structural_metadata: Properties for structured data#2151
javagl wants to merge 8 commits intoKhronosGroup:mainfrom
CesiumGS:proposal-EXT_structural_metadata

Conversation

@javagl
Copy link
Contributor

@javagl javagl commented Apr 25, 2022

The EXT_structural_metadata extension defines how fine-grained metadata can be stored within a glTF asset. It allows the definition of a metadata schema that describes the structure of metadata entities as classes, and their properties, including type definitions for these properties. The metadata storage defines how the metadata entities themself are stored inside the glTF asset. This is accomplished by storing the values as binary data in buffer views, using tables or attributes, or by storing the binary data in property textures.


Relation of this extension to EXT_mesh_features

The proposal "EXT_mesh_features: Features and Properties for structured data" presented an extension that allowed storing structured metadata that is associated with geometry and subcomponents of geometry within a glTF asset. The feedback from this PR suggested that there is a demand for separating the functionalities:

  • Assigning IDs to features of a glTF asset like (vertices or texels)
  • Associating features within a glTF asset with structural metadata

Therefore, the original EXT_mesh_features extension has been updated to only handle the definition of feature IDs for features within a glTF asset. The definition of metadata storage and its structure is now defined in a new EXT_structural_metadata extension that is presented here, and which has largely been extracted from the original EXT_mesh_features extension proposal.

The extensions are still designed to be interoperable, insofar that the IDs that are assigned to the mesh features with the EXT_mesh_features extension can be used for looking up the structural metadata that is defined via the EXT_structural_metadata extension.

Extracted from the original EXT_mesh_features proposal
@JMLX42
Copy link

JMLX42 commented Jun 15, 2025

Excellent idea!

If you don't mind me asking, what is the rationale against using XMP/JSON-LD like the KHR_xmp_json_ld extension does?

There are at least 2 reasons for using XMP/JSON-LD:

  1. Having one single standard used to define rich metadata would be more convenient for implementation.
  2. Unlike JSON Schema, the XMP/JSON-LD is not just a format/notation system. It builds on the semantic Web standards. As such, it already features a rich ecosystem that the proposed feature could leverage. Examples:

@javagl
Copy link
Contributor Author

javagl commented Jun 15, 2025

I added a response in the other PR. Maybe for the first iteration, this can be kept in one place.

@lilleyse
Copy link
Contributor

lilleyse commented Aug 27, 2025

A couple high level questions:

@CLAassistant
Copy link

CLAassistant commented Jan 13, 2026

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants