Skip to content

Pose jump gate, round-arena cell clip, new circle tool, frame export - #244

Merged
gbradham merged 1 commit into
mainfrom
feat/pose-jump-gate
Nov 3, 2026
Merged

gbradham merged 1 commit into
mainfrom
feat/pose-jump-gate

Conversation

@gbradham

@gbradham gbradham commented Nov 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Jump gate (vision/arena_gate.py): the arena gate now blanks single-animal keypoint teleports. Each keypoint track is cut wherever a step would need more than max_speed_cm_s (default 200 cm/s); islands up to max_excursion_s (default 1 s) are blanked shortest first, so the position the animal holds longest wins. Settings and keypoints_jumped / jumped_by_keypoint are stored in the arena_gate block; blocks written before this read as max_speed_cm_s: None so they don't pool with jump-gated files.
  • Round-arena cell fill (gui/review/viewer.py): visited exploration cells are clipped to the arena outline, so circle and plus arenas no longer show a filled bounding square.
  • Circle tool (gui/dialogs/arena_dialog.py): drag out from the centre (click drops a default circle), drag inside to move, four rim handles stretch one axis with the opposite rim fixed (Shift keeps it round, Ctrl rotates), wheel scales, Undo clears. Existing ellipses reopen unchanged.
  • Frame export (gui/behavior/analysis_window.py): Export ▾ → "Current frame (PNG)…" renders the current frame at video resolution with whatever overlays are on, without the frame caption.

Notes

  • CSVs already gated at inference time can't be re-gated in place; re-run inference (or re-gate from _raw) to apply the jump gate.
  • Not yet tried in the running app.

Test plan

  • New tests: TestJumps (6), TestCircleTool (11), TestRenderFrame (4), round-arena cell clip test
  • Full suite: everything passes except test_every_pi_section_fits_480, which also fails on main
  • ruff + black clean

…export

- Arena gate now also blanks single-animal keypoint teleports: a track is
  cut wherever a step needs more than max_speed_cm_s (200), and islands up
  to max_excursion_s (1 s) are blanked shortest first. Settings and counts
  are recorded in the gate block; pre-jump blocks read as having no jump gate.
- Session Review clips the visited-cell fill to the arena outline, so round
  and plus arenas no longer show a filled square.
- Circle arena tool: drag out from the centre, drag inside to move, rim
  handles stretch (Shift keeps it round, Ctrl rotates), wheel scales.
- Session Review Export menu gains "Current frame (PNG)…", rendered at video
  resolution with the active overlays.
@gbradham
gbradham merged commit 3d0a18d into main Nov 3, 2026
3 of 4 checks passed
@gbradham
gbradham deleted the feat/pose-jump-gate branch November 3, 2026 22:41
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.

1 participant