loop op• Data kinds: rgbvideo → table
• Call: import fullseye as fs; fs.ledger.perpetual_loop_seam(video: 'np.ndarray') -> 'dict' (to call the implementation directly, import perpetual; perpetual.perpetual_loop_seam(video: 'np.ndarray') -> 'dict'; from the registry, opsgenerative.get("perpetual_loop_seam"))
Quantifies the seam of a looping video as numbers (table).
seam = difference from the last frame → the first frame, typical = median of the frame-to-frame differences. In a seamless video ratio = seam / typical is close to 1 (the last crossing cannot be told apart from the other crossings). The point to read here is that 1, not 0, is the right answer -- 0 would mean "the motion has stopped".
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_endless_zoom_and_turning_solids — py -3.11 examples/poc_endless_zoom_and_turning_solids.py
• poc_illusions_and_perpetual_drawing — py -3.11 examples/poc_illusions_and_perpetual_drawing.py
• poc_periodic_video_boundary — py -3.11 examples/poc_periodic_video_boundary.py
table as input)perpetual_step · perpetual_render
loop)*Provenance: perpetual.py — GENERATIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.