[x3d-public] conversion of glTF metadata to X3D metadata
Andreas Plesch
andreasplesch at gmail.com
Sun Oct 8 15:14:14 PDT 2023
glTF can contain rich metadata, on the toplevel and very targeted at
any sublevel.
At any level, there is an "extras" property which can contain any
value including objects with arbitrary key:value pairs.
At the toplevel, there is an asset object which has a set of defined
keys such as "copyright" (as well as its own "extras" property).
In addition to this unstructured metadata for core glTF, there is a
metadata extension for more structured metadata, extensible through
namespaces:
https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_xmp_json_ld/README.md
There are many ways to map glTF metadata to X3D metadata. How should
we manage this ? It may make sense to coordinate systematic behaviour.
x3dom uses the WorldInfo node for toplevel metadata:
- asset object properties go into the info field as key:value string pairs.
- asset.extras go into a WorldInfo MetadataSet "asset_extras"
- scene.extras go into a WorldInfo MetadataSet "scene_extras"
In addition, "extras" at lower levels go into MetadataSets of
corresponding nodes, using the json value types for Metadata types.
How do other browsers translate "extras" ?
x3dom should also support the KHR_xmp_json_ld extension, by staying
very close and literal to the glTF data.
One feature of the extension is that sets (packets) of metadata are
defined once at the toplevel, and then referenced (instantiated) from
any other level. This seems to map well into DEF/USE. A large
"KHR_XMP_GLTF" root MetadataSet would contain all metadata and just
referenced by USE from Shapes/Material etc. I think this could work
well. I think json property names can become Metadata name values, and
json value types can be mapped into Metadata types.
If there have been thoughts or attempts to implement the glTF metadata
extension, any ideas or feedback would be great. Would it be useful to
start to think about a xml Metadata schema which follows the glTF
extension requirements and recommendations ? This may not be feasible
due to the extensible nature of the extension..
Cheers, Andreas
--
Andreas Plesch
Waltham, MA 02453
More information about the x3d-public
mailing list