6 Commits

Author SHA1 Message Date
Axel Meyer
62b57d7832 docs: CR-4 — README+init.lua auf v0.5.0 synct (atlas-handle bone draw, M.2 load_textures, bone_world_transform, anchor)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 14:32:38 +00:00
Axel Meyer
b20a1b0443 docs(puppet): README sync to v0.4.4 (set_play_speed API) 2026-05-19 00:29:48 +02:00
Axel Meyer
f7fa24965b docs(puppet): README sync to v0.4.3 + multi-target/slerp/inherit_scale/virtual/sprite_rot APIs
Updates README to reflect the Subterrain-runtime-control model adopted
across v0.3.1–v0.4.3. Previous README described the original v0.3.0
substrate-port state and omitted all v0.4.x features.

Added to API section: set_look_target (multi-target, named target_id),
clear_look_target (per-target or all), write_bone (per-channel conflict
guard description). Updated description of bone_world_transform (returns
radians, not angle). Added conventions note on camera.begin/finish
requirement for render.

CHANGELOG entries added for v0.3.1, v0.3.2, v0.3.3, v0.4.0, v0.4.1,
v0.4.2, v0.4.3 covering all intermediate fixes and the model pivot.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 23:00:38 +02:00
Axel Meyer
96ccb410d3 feat(puppet): v0.3.0 — idle-return locomotion + version bump
- apply_locomotion idle-return: after (now - last_move_time) >
  idle_return_delay, the most-displaced planted leg steps back to its
  current hip position (over idle_step_duration). Group-stagger via
  bumping last_move_time forward by idle_return_stagger.
- M.move_to tracks p.last_move_time when position actually changes.
- README v0.3.0 changelog entry.
2026-05-18 18:34:42 +02:00
Axel Meyer
cff7986cde feat: add load_textures + extend load_rig with asset_aliases
puppet.load_textures(rig, asset_aliases):
- Resolves bone.texture atlas-ids to texture-handles via the asset-
  lib indirection. Reads asset_aliases[rig.asset_pack] to get the
  asset-lib id, loads the lib's atlas.json, looks up the atlas-entry
  by id, then calls engine.asset.load_texture on the resolved file
  path.
- Resolves bone.anchor from the atlas entry unless the bone has an
  explicit anchor override.
- Raises clear errors when alias/atlas-pack/atlas-id is missing.

puppet.load_rig(path, asset_aliases?) now optionally calls
load_textures after build_rig if asset_aliases is supplied.

README updated with new API entries (load_rig signature, load_textures,
bone_world_transform, write_bone_test_only) and CHANGELOG v0.2.0 entry.
2026-05-18 03:09:26 +02:00
Axel Meyer
e62671060e feat: initial implementation with build_rig + build_animation
Validates and cooks rig + animation data into internal representations:
- build_rig: parses bones (with parent-resolution to object refs) and
  tracks (with bone-uniqueness validation). Converts rest angles
  from JSON degrees to radians.
- build_animation: validates each keyframe references only bones in
  the animation's declared track. Converts keyframe angles from
  degrees to radians.

Remaining functions (sample_animation, spawn, update, look-at,
procedural, render, lifecycle) follow in subsequent commits.
2026-05-17 19:54:27 +02:00