Articulation loss checker for exports that drop joint information
In your harnessAsset contractMIT
Catch exports that keep every mesh but lose what joints need: parts joined into their parent, origins moved off the hinge, node frames rotated, hierarchies flattened, and joint records in custom properties left out by a default export.
ATTRIBUTION.mdLICENSEREADME.mdarticulation_loss_checker.pyasset_report.pycomponent.jsonfixtures/bad_manifest.articulation.jsonfixtures/door_reference.articulation.jsonfixtures/door_reference.gltffixtures/door_reordered.gltffixtures/export_extras_mismatch.gltffixtures/export_flattened.gltffixtures/export_frame_rotated.gltffixtures/export_joined.gltffixtures/export_origin_to_geometry.gltffixtures/export_without_extras.gltfgltfio.pypngio.pyschema_lite.pytest_articulation_loss_checker.pytest_package.pyverification/native.json
Full files in your harness.
What it takes and gives
- Entry points
- joint_facts, compare, check, run, main
- Proves
- Each joint's node exists exactly once with geometry at or below it; with a reference, its world pivot, world axis and parent are unchanged within tolerance (1 mm, 0.5 degrees by default); with extras required, its node carries a joint record equal to the manifest.
- Does not prove
- That the joint moves the right geometry, or that the joint values are sensible. A reference export must itself be right: the tool compares, it does not judge the reference.
- Catches
- asset_unreadable, reference_unreadable, manifest_invalid, joint_node_missing, joint_node_ambiguous, joint_node_without_geometry, pivot_moved, joint_axis_changed and 3 more
Limits. Nodes are found by exact name, so a renamed node reads as missing. The extras record is read from extras.joint and compared on type, axis, pivot and limits. Pivot and axis checks need a reference export. The reference and the export are compared in their own scene roots; a change of the whole asset's root transform shows as moved pivots.
Details
- Kind
- Asset contract
- Engine
- Python 3.10 or later
- Files
- 22 files, 187.9 KB
- Licence
- MIT
- Declared effects
- reads files, runs commands
- Checks
- checker matches contract, godot sees the same joint facts, blender sees the same joint facts, each blender loss is caught, godot reads the carried joint record
- Techniques
- World pivot as the world matrix applied to the local pivot, World axis as the world rotation applied to the local axis, compared by angle, glTF 2.0 extras on nodes; Blender custom properties exported as extras, Blender object origin set to geometry and object join as sources of joint loss
- Tags
- articulation, joints, export, gltf, blender, pivot, extras, regression check
- Identity
library.supply.creative_originals.482848e5d7855191bf04a2c8.10e6f512870999ce- Version
10e6f512870999ce7dca61cdf67d196bc1657cd8e7e728974dd8e12bcca322f0
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.