[x3d-public] Including metadata within an HAnim model
Don Brutzman
don.brutzman at gmail.com
Fri Mar 13 11:54:28 PDT 2026
Dick, Aaron and I had good discussions during today's X3D Standards Working
Group meeting.
One topic of shared interest:
- Mantis 1527: Including metadata within an HAnim model.
- https://mantis.web3d.org/view.php?id=1527
The metadata structure in an HAnim is relatively simple:
- HAnimHumanoid *info *field: paired "name=value" string array
- All of the HAnim nodes have a simple *description *field
- HAnimArchitecture draft v2.1, clause 6 Object interfaces, 6.3 Humanoid
<https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/ObjectInterfaces.html#Humanoid>
- sequence<string> info []
- string description ""
- X3D Architecture, draft v4.1, 26.3.2 HAnimHumanoid
<https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/hanim.html#HAnimHumanoid>
- MFString [in,out] info []
- SFString [in,out] description ""
The X3D Architecture describes how to equivalently map the *info *field of
paired strings to a MetadataSet node.
As we continue to build humanoid models of greater sophistication, a likely
use case will be inclusion of paired (and hopefully typed) metadata within
any of the HAnim nodes. Some capability needs to be considered.
Perhaps a simple approach might be to use the *info *field equivalently in
all of the nodes.
Mapping definition for X3D HAnimHumanoid *info *field:
Metadata values from the *info* field can be equivalently encoded via a
single MetadataSet node with field *name="HAnimHumanoid.info"*
containing corresponding
MetadataString related X3DMetadataObject nodes. No more than one set of
such term=value pairs (via MFString *info* field or MetadataSet
*name="HAnimHumanoid.info"* node) shall be included at one time.
EXAMPLE 1 *info* field term=value pairs
HAnimHumanoid {
name "JinLOA1"
info [ "gender=female" "height=1.5" "weight=50" ]
}
EXAMPLE 2 MetadataSet node equivalent to EXAMPLE 1
HAnimHumanoid {
name "JinLOA1"
metadata MetadataSet {
name "HAnimHumanoid.info"
reference
"https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid"
value [
MetadataString {
name "gender"
value [ "female" ]
}
MetadataFloat {
name "height"
value [ 1.5 ]
}
MetadataFloat {
name "weight"
value [ 50 ]
}
]
}
}
I can see one editorial tweak to make in spec prose above: rather than
forbidding it, allow MetadataSet to contain either MetadataString or other
typed Metadata@ nodes for floats, booleans, etc. That will match the
intent shown in the second example, which includes two MetadataFloat nodes.
So... what do people think about adding an *info *field for all of the
HAnim nodes, not just HAnimHumanoid?
all the best, Don
--
X3D Graphics, Maritime Robotics, Distributed Simulation
Relative Motion Consulting https://RelativeMotion.info
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260313/5c2c8800/attachment.html>
More information about the x3d-public
mailing list