What this component contains
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
How it works
- 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
Recorded checks
blender_and_godot blender 5.2.1 LTS (hash 9e2066aef7ef built 2026-08-25 02:12:34); godot 4.7.2.stable.official.ed1daf0bf
checker_matches_contractgodot_sees_the_same_joint_factsblender_sees_the_same_joint_factseach_blender_loss_is_caughtgodot_reads_the_carried_joint_record
Limits to consider
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.