Baltor Get started

Gallery / Asset contracts

glTF semantic recovery against an asset specification

In your harnessAsset contractMIT

Recover what an asset means from the file alone (named parts, hierarchy, real dimensions in metres, pivots, part materials, clips with durations) and compare it with a declared asset specification, naming the likely cause of each mismatch.

Files, names only

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • asset_report.py
  • component.json
  • fixtures/bad_centimetres.gltf
  • fixtures/bad_flattened.gltf
  • fixtures/bad_no_clips.gltf
  • fixtures/bad_renamed_material.gltf
  • fixtures/bad_short_clip.gltf
  • fixtures/bad_spec_part_without_name.spec.json
  • fixtures/bad_unnamed_panel.gltf
  • fixtures/bad_z_up.gltf
  • fixtures/door.gltf
  • fixtures/door.spec.json
  • gltf_semantic_recovery.py
  • gltfio.py
  • pngio.py
  • schema_lite.py
  • test_gltf_semantic_recovery.py
  • test_package.py
  • verification/native.json

Full files in your harness.

What it takes and gives

Entry points
recover, compare, check, run, main
Proves
The named parts, parents, rest-pose world dimensions and pivots, part materials, material list and clip play lengths that a reader recovers from the file equal the specification within the stated tolerances.
Does not prove
That the geometry has the intended shape, that the clips move the parts plausibly, or that joints work. Dimensions are axis-aligned world boxes at the rest pose, not oriented or tight measurements.
Catches
asset_unreadable, specification_invalid, part_missing, part_ambiguous, part_parent_mismatch, part_dimensions_mismatch, part_pivot_mismatch, part_material_mismatch and 3 more

Limits. Parts are matched by exact node name; renamed parts are reported missing with similar names as a hint. Dimensions are axis-aligned boxes in world axes at the rest pose, so a rotated part measures larger than its own extents. Skinned meshes are measured at their bind pose without skinning. Unit and axis hints recognise one uniform factor (centimetres, millimetres, inches, feet, decimetres) or a Y and Z swap, not combinations.

Details

Kind
Asset contract
Engine
Python 3.10 or later
Files
22 files, 200.8 KB
Licence
MIT
Declared effects
reads files, runs commands
Checks
checker matches contract, godot recovers the same facts, blender recovers the same facts, comparator rejects altered engine facts
Techniques
glTF 2.0 specification: node hierarchy, TRS and matrix transforms, metres and +Y up, Axis-aligned bounding boxes transformed by their eight corners, Uniform scale factor detection by per-axis ratios
Tags
gltf, asset specification, semantic check, dimensions, units, hierarchy, animation clips, 3d asset
Identity
library.supply.creative_originals.b64bece851b5d45dd2d4b3af.a06c57aa28840f3f
Version
a06c57aa28840f3f002715c855f5856e15d6f9847f6d190d3e0a8093e5ac85a5

The version is the SHA-256 of the item your harness downloads; every file in it names its own checksum.

Something wrong with this item, its rights or its safety? Report it on the support page, or from your harness after a download.