How should I store names/annotations inside glb file?

Dear Amazing People,

Currently, I am working on a project with regard to medical annotations for educational uses. For example, here is a lung.glb( was created from CT scan, DICOM files) file and I want it to have nodes or tags attached to each layer(e.g. airways). How should I do that? I heard that probably I could use 3DsMax or other platforms but my professor told me I could directly store it inside glb file or create a JSON file relates to gltf and should keep infidelity of the model. How should I store those names since those nodes/children are not from three.js but a bunch of deep learning codes? Can I convert it to Babylon.js or three.js? I think it will be more precise but maybe it could be more straightforward.

As for storing information / annotations, yes, you can of course store it in a JSON file and just load independently. If you’d like to embed info in glb file, you can use custom properties (that’s the name in Blender, not sure how they may be called in 3DSMax). You can then access these properties using userData after loading glb model in three.js:

Here’s a sample code of reading these properties from the model

Here’s a post with a short explanation by @swifterik


^Adding a bit to this, you can also set the .userData properties directly in three.js, and exporting with GLTFExporter will retain them. glTF, three.js, and Blender basically have different names for the same thing:

  • Blender “custom properties”
  • glTF “extras”
  • three.js “.userData”