1. 11 May, 2026 1 commit
  2. 09 May, 2026 4 commits
  3. 08 May, 2026 3 commits
    • Andrey Filippov's avatar
      Claude: Demote INDX_VX/VY/STRENGTH/FRAC to method-local constants · 0868da8a
      Andrey Filippov authored
      These four constants described the layout of TDCorrTile.getMismatchVector()
      return values and had no business being class-level statics in CuasMotion.
      Moved to local scope in the two methods that use them: getTargetsFromCorr2d
      and refineMotionVectors.
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      0868da8a
    • Andrey Filippov's avatar
      Claude: Remove dead code from cuas package + fix targetsAnalyzeMCP · 115acc78
      Andrey Filippov authored
      Dead method/constant removal (21 methods across 5 files):
      - CuasMotion: addMotionVectors, clearFailByStrongerNeighbor, cloneTargetsSequence,
        filterByHorizon, filterMotionScans, findMatchingTarget, getKeyFrameVelocityScale,
        getTargetImages, getTargetsFromHyperAugment_2025, getVectorFieldHyper, showPxPyDs,
        subtractTargetSequence, trimSuffix; constants INDX_SPEED, INDX_CONFIDENCE, VF_TOP_TITLES
      - CorrectionFPN: calculateFPN_old
      - CuasCenterLma: getAverageRoll
      - CuasMotionLMA: applyWindowToData, copyMotion, getRR0, getFullParametersVector
      - CuasTile: setParentIndex, getParentIndex (were already commented out)
      
      targetsAnalyzeMCP fixes:
      - Correct PAR constants (add PAR_PXYAR=-2, shift others)
      - params array now accepts strings ("pxy","pxyar","vpxy","upxy", or LMA_TITLES names)
        in addition to integer indices; default remains ["pxy"]
      - Add missing PAR_PXYAR case (px, py, a, rmse, r)
      - Add amplitude to PAR_PXY case
      - Default case uses LMA_TITLES[npar] key instead of String.valueOf(npar)
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      115acc78
    • Andrey Filippov's avatar
      debugging · 5defee61
      Andrey Filippov authored
      5defee61
  4. 07 May, 2026 7 commits
    • Andrey Filippov's avatar
      Claude: Add temporal LPF to shiftAndRenderAccumulate and refineMotionVectors inputs · aac34c6a
      Andrey Filippov authored
      - Extract precorr_ra, accum_ra, cuas_gaussian_ra in locateAndFreezeTargetsMulti
      - Compute fpixels_accum (LPF with cuas_accum_ra) for shiftAndRenderAccumulate in both loops
      - Compute fpixels_refine (LPF with cuas_precorr_ra) for refineMotionVectors
      - Both use Gaussian or running-average depending on cuas_gaussian_ra flag
      - When ra==1, LPF is a no-op (passes fpixels_tum through unchanged)
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      aac34c6a
    • Andrey Filippov's avatar
      Claude: Fix NPE in refineMotionVectors debug CORR2D visualization · 7f0ce136
      Andrey Filippov authored
      corr_partial_dbg() NPEs on null layers when sequences are skipped
      (has_centered=false or no valid frame pairs). Fill null slots with
      empty double[num_tiles][] before calling the visualizer.
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      7f0ce136
    • Andrey Filippov's avatar
      Claude: FAIL_PENDING refactoring — migrate first loop from motion_sequence to target_sequence_multi · 1dfb402e
      Andrey Filippov authored
      - Add FAIL_PENDING=-1 sentinel constant to CuasMotionLMA
      - Add initFromMotionSequence(): clones motion entries into target_sequence_multi as sentinels
        (RSLT_FAIL=FAIL_PENDING, RSLT_CENTERED=CENTERED_NO, RSLT_QSCORE=initial RSLT_MSCORE)
      - Add syncMotionScoreToSentinels(): keeps sentinel QSCORE current after each getEffectiveStrengthMV
      - Decouple use_motion/select_new flags in filter5Targets from motion_sequence==null
      - Add motion==null paths in filter5Targets: prohibit setup and is-max ranking for FAIL_PENDING sentinels
      - Extend filter5Targets marking step to cover FAIL_PENDING sentinels (use_motion=true, motion==null)
      - Update extendMotionScan center-detection to accept FAIL_PENDING as valid center state
      - First loop in locateAndFreezeTargetsMulti: call initFromMotionSequence, syncMotionScoreToSentinels;
        pass null to filter5Targets; use applyFilter(target_sequence_multi); use getRemain(target_sequence_multi)
      - getRemain(target_sequence_multi): count FAIL_PENDING+CENTERED_NO in num_noncentered
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      1dfb402e
    • Andrey Filippov's avatar
      Claude: Fix filter5Targets select_new silently forced to false when motion_sequence=null · 70e96522
      Andrey Filippov authored
      Line 8734 was: select_new = (motion_sequence != null) ? select_new_in : false
      This caused pass 2 (filter5(null, tsm, false, true, ...)) to enter the
      !select_new path — finding best existing good tiles instead of untested
      non-centered tiles — so nothing was ever selected and the centered-mode
      loop was a no-op.
      
      Fix: decouple select_new from motion_sequence null-check; only use_motion
      is forced false when motion_sequence is null.
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      70e96522
    • Andrey Filippov's avatar
      Tested code that Claude fixed, minor additional fix. Still not fully · c9316c55
      Andrey Filippov authored
      operational because of filter5Targets().
      c9316c55
    • Andrey Filippov's avatar
      Claude: Fix correlatePairs to use per-tile motion-tracking TpTask centers · 4b7711ef
      Andrey Filippov authored
      Add targets_mv / frame_center_mv / corr_offset_mv overloads to
      correlatePairs() and correlatePair().  When targets_mv is non-null,
      GpuQuad.setRectilinearMovingTasks() generates per-tile TpTask centers
      that follow the target at each frame (cx0 + vx*offset_scale), so the
      GPU correlates tiles centered on the moving object and the result is the
      residual velocity rather than the full VX displacement.
      
      Callers that don't need this pass through the old uniform-grid overload
      unchanged.  Also reverts the wrong "fixed-destination / shifted-read"
      masking edit from the previous session; the masking was already correct
      (mask tracks the target per frame) before that edit.
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      4b7711ef
    • Andrey Filippov's avatar
      Claude: refineMotionVectors() — improved debug images · a57f2dfc
      Andrey Filippov authored
      - Masked frames: replace single-frame display with full fmin..fmax stack
        (scene_titles used as slice labels; scroll to watch target stay in place)
      - Source frame display removed (not needed alongside masked stack)
      - Single-tile corr2d block removed; replaced by full CORR2D multi-slice image
        after the nseq loop — one slice per keyframe, same tiled layout as *CORR2D.tiff,
        slice-labeled from scene_titles, uses corr_border_contrast from CLTParameters
      Co-Authored-By: 's avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      a57f2dfc
  5. 06 May, 2026 3 commits
  6. 05 May, 2026 1 commit
  7. 04 May, 2026 3 commits
  8. 03 May, 2026 1 commit
  9. 01 May, 2026 3 commits
  10. 30 Apr, 2026 4 commits
  11. 28 Apr, 2026 1 commit
  12. 26 Apr, 2026 1 commit
  13. 25 Apr, 2026 5 commits
  14. 23 Apr, 2026 1 commit
  15. 19 Apr, 2026 1 commit
  16. 17 Apr, 2026 1 commit