What this component contains
ATTRIBUTION.mdLICENSEREADME.mdarticulation_manifest_godot_builder.pyasset_report.pycomponent.jsonfixtures/bad_axis_zero.articulation.jsonfixtures/bad_duplicate_names.gltffixtures/bad_joint_type.articulation.jsonfixtures/bad_limits_reversed.articulation.jsonfixtures/bad_node_jointed_twice.articulation.jsonfixtures/bad_node_missing.articulation.jsonfixtures/bad_record_type.articulation.jsonfixtures/door.articulation.jsonfixtures/door.gltffixtures/toolbox.articulation.jsonfixtures/toolbox.gltfgltfio.pygodot/articulated_asset.gdgodot/articulation_probe.gdpngio.pyschema.jsonschema_lite.pytest_articulation_manifest_godot_builder.pytest_package.pyverification/native.json
How it works
- Entry points
- read_manifest, joint_motion, pose, predictions, check, run, main, godot/articulated_asset.gd and 2 more
- Proves
- Every joint names exactly one node, no node carries two joints, axes are unit vectors, pivots are finite, and limits are ordered around the rest value; the reported poses are the forward kinematics of the manifest.
- Does not prove
- That the motion is free of collisions, that the limits match the real object, or that a physics engine would behave the same way (the Godot node sets transforms; it adds no physics joints).
- Catches
- asset_unreadable, manifest_invalid, joint_type_invalid, node_missing, node_ambiguous, node_jointed_twice, axis_invalid, pivot_invalid and 2 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_contractschema_agrees_with_jsonschemagodot_moves_each_joint_to_its_limitsgodot_joint_player_reaches_each_limitgodot_reopens_the_built_scenegodot_builder_refuses_each_known_wrong_bindingblender_finds_every_bound_node
Limits to consider
Hinges and sliders only; no ball, planar or coupled joints. Axes and pivots are in the moving node's own frame at rest. The Godot node moves nodes by transform, not with physics joints, and its clips approximate a hinge arc with ten linear steps (exact at every step). Node names are matched exactly against the glTF names, so a renamed node breaks the binding. The saved scene embeds meshes and materials as sub-resources.