Skip to content

Claude/jolly brahmagupta gjpmxb - #215

Open
Cenvginer wants to merge 5 commits into
Flare-Animate:mainfrom
Cenvginer:claude/jolly-brahmagupta-gjpmxb
Open

Cenvginer wants to merge 5 commits into
Flare-Animate:mainfrom
Cenvginer:claude/jolly-brahmagupta-gjpmxb

Conversation

@Cenvginer

Copy link
Copy Markdown

What this changes

How it was checked

  • cargo fmt --all --check
  • cargo clippy --workspace --all-targets --locked -- -D warnings
  • cargo test --workspace --locked
  • New behaviour has a test, including what happens when it goes wrong
  • Docs changed in this PR if behaviour did

Notes for the reviewer

The last commit on main left four files unformatted and image_ops.rs with
clippy errors (chunks_exact_mut with a constant size, unwrap in tests), so
the pre-commit checks failed before any change. Formatting only, plus
as_chunks_mut and expect in the test module.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N9yLeqPvdKPLsTNWG9Kg4h
As in Animate: a Bone tool drag from one instance to another links them
with a bone and moves both to a new armature layer whose keyframes are
poses; a drag from an instance in an armature adds a bone below it. The
Selection tool poses: a joint, its instance or a bone (by its tip) is
pulled toward the pointer by cyclic coordinate descent within the
joints' rotation limits, and a root moves the whole armature. A pose made
inside a keyframe splits it so the first part tweens into it.

- flare-document: Content::Armature (rig of up to 256 joints, each
  carrying an instance, plus a per-key pose), RigEdit, validation (one
  rig per layer, instances counted once per layer, not on masks/guides).
- flare-eval: armature instances placed through their joint matrices,
  tweened between poses, keeping their symbol clock across poses; one
  level item per joint for publishers.
- flare-tools::bones: connect, reach, pose_joint, turn_joint, shift_root,
  set_limit, detach, release, picking and a report. A property test runs
  random pose/limit/detach sequences (it found that a limit must go with
  its bone on detach).
- Storage round-trips armatures; SWF keeps the instances as the same
  objects through poses; XFL writes each pose as posed instances, with a
  warning.
- Desktop and browser: Bone tool in the strip, bone overlay, live IK
  preview, Properties (turn, limits, Remove bone, Release armature), in
  all eight languages.
- CLI: flare bone add|pose|limit|detach|release, flare bones; info marks
  armature layers. MCP: add_bone, pose_bone, limit_joint, detach_bone,
  release_armature, list_bones.
- Docs: ARCHITECTURE, UI, SURFACES, ROADMAP, CHANGELOG, README and its
  translations (the roadmap item now names what remains: bones inside
  shapes and the Bind tool).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N9yLeqPvdKPLsTNWG9Kg4h
…heck reads

test_surfaces.py takes what is outside the parentheses as the answer, so
"yes, as a download ..." failed the check on main. The words are the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N9yLeqPvdKPLsTNWG9Kg4h
IMPORT_EXTENSIONS listed .fcp, .ppm, .kwz, OpenToonz (.tnz, .tlv, .pli,
.tzu) and Moho (.moho, .mh, .mohobackup) files, which no importer reads:
opening one failed with "not an XFL document". It also failed CI's
test_associations, because the macOS bundle, Linux MIME types and Windows
installer (rightly) do not offer them to Flare. Back to .fla, .xfl and
.swf; the classify test now checks the others are not claimed, and a
comment says they return with their importers (README already lists the
OpenToonz formats as planned).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N9yLeqPvdKPLsTNWG9Kg4h
@charlieduzstuf

Copy link
Copy Markdown
Contributor

@Cenvginer can you explain this PR? You've left no description or anything

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants