=== SAVED CAST: invisibility_7_s51 ===
Normalized points: 60
Raw points: N/A

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.7254, 1.0000)
  [ 1]  (0.7210, 0.9682)
  [ 2]  (0.7165, 0.9363)
  [ 3]  (0.7120, 0.9045)
  [ 4]  (0.7075, 0.8726)
  [ 5]  (0.7030, 0.8408)
  [ 6]  (0.7000, 0.8088)
  [ 7]  (0.6975, 0.7767)
  [ 8]  (0.6950, 0.7446)
  [ 9]  (0.6925, 0.7126)
  [10]  (0.6900, 0.6805)
  [11]  (0.6875, 0.6484)
  [12]  (0.7254, 0.3169)
  [13]  (0.7091, 0.2886)
  [14]  (0.6927, 0.2602)
  [15]  (0.6763, 0.2318)
  [16]  (0.6599, 0.2034)
  [17]  (0.6448, 0.1744)
  [18]  (0.6296, 0.1453)
  [19]  (0.6145, 0.1163)
  [20]  (0.5994, 0.0872)
  [21]  (0.5842, 0.0581)
  [22]  (0.5691, 0.0291)
  [23]  (0.5540, 0.0000)
  [24]  (0.7254, 0.0626)
  [25]  (0.7403, 0.1043)
  [26]  (0.7551, 0.1460)
  [27]  (0.7696, 0.1878)
  [28]  (0.7820, 0.2303)
  [29]  (0.7945, 0.2728)
  [30]  (0.8069, 0.3153)
  [31]  (0.8193, 0.3578)
  [32]  (0.8317, 0.4003)
  [33]  (0.8441, 0.4427)
  [34]  (0.8572, 0.4850)
  [35]  (0.8730, 0.5263)
  [36]  (0.7254, 0.6242)
  [37]  (0.6852, 0.6286)
  [38]  (0.6449, 0.6329)
  [39]  (0.6046, 0.6373)
  [40]  (0.5644, 0.6417)
  [41]  (0.5241, 0.6461)
  [42]  (0.4838, 0.6505)
  [43]  (0.4435, 0.6549)
  [44]  (0.4033, 0.6592)
  [45]  (0.3630, 0.6636)
  [46]  (0.3228, 0.6682)
  [47]  (0.2825, 0.6730)
  [48]  (0.7254, 0.8396)
  [49]  (0.6712, 0.8496)
  [50]  (0.6170, 0.8595)
  [51]  (0.5627, 0.8695)
  [52]  (0.5085, 0.8794)
  [53]  (0.4542, 0.8891)
  [54]  (0.3997, 0.8977)
  [55]  (0.3453, 0.9064)
  [56]  (0.2908, 0.9151)
  [57]  (0.2364, 0.9237)
  [58]  (0.1819, 0.9324)
  [59]  (0.1270, 0.9366)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.7254, 0.3169)  angle=36.5 deg
  V1  (0.5540, 0.0000)  angle=137.6 deg
  V2  (0.7254, 0.0626)  angle=50.4 deg
  V3  (0.8730, 0.5263)  angle=77.3 deg
  V4  (0.2825, 0.6730)  angle=152.6 deg
  V5  (0.7254, 0.8396)  angle=149.0 deg

--- SUGGESTED DOT TEMPLATE FORMAT ---
// Paste into SpellGestureTracker.java getDotTemplates():
new DotTemplate(DetectedPattern.SPELL_NAME, "description",
    new double[][] {
        // pick key dots from vertices above
    },
    new int[][] {
        // define connections between dots
    }
),
