=== SAVED CAST: portal_30_s91 ===
Normalized points: 63
Raw points: N/A

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.5925, 0.9311)
  [ 1]  (0.5738, 0.8248)
  [ 2]  (0.5505, 0.7188)
  [ 3]  (0.5296, 0.6124)
  [ 4]  (0.5169, 0.5049)
  [ 5]  (0.5119, 0.3966)
  [ 6]  (0.5089, 0.2883)
  [ 7]  (0.5925, 0.0000)
  [ 8]  (0.6911, 0.0481)
  [ 9]  (0.7459, 0.1432)
  [10]  (0.7127, 0.2407)
  [11]  (0.6013, 0.2459)
  [12]  (0.5871, 0.1494)
  [13]  (0.6852, 0.1163)
  [14]  (0.5925, 0.0854)
  [15]  (0.6129, 0.1848)
  [16]  (0.6312, 0.2846)
  [17]  (0.6459, 0.3851)
  [18]  (0.6606, 0.4855)
  [19]  (0.6735, 0.5862)
  [20]  (0.6852, 0.6870)
  [21]  (0.5925, 0.7593)
  [22]  (0.6599, 0.7974)
  [23]  (0.6831, 0.8769)
  [24]  (0.6537, 0.9530)
  [25]  (0.5796, 0.9463)
  [26]  (0.5613, 0.8718)
  [27]  (0.6134, 0.8140)
  [28]  (0.5925, 1.0000)
  [29]  (0.5101, 0.8489)
  [30]  (0.4255, 0.6990)
  [31]  (0.3366, 0.5517)
  [32]  (0.2541, 0.4007)
  [33]  (0.3576, 0.3378)
  [34]  (0.5297, 0.3367)
  [35]  (0.5925, 0.4299)
  [36]  (0.6730, 0.4573)
  [37]  (0.7084, 0.5311)
  [38]  (0.6622, 0.5870)
  [39]  (0.5861, 0.5600)
  [40]  (0.5647, 0.4904)
  [41]  (0.6372, 0.4539)
  [42]  (0.5925, 0.4359)
  [43]  (0.6708, 0.4932)
  [44]  (0.6515, 0.5777)
  [45]  (0.5557, 0.5711)
  [46]  (0.5217, 0.4992)
  [47]  (0.6089, 0.4584)
  [48]  (0.6761, 0.5254)
  [49]  (0.5925, 0.7411)
  [50]  (0.6704, 0.7794)
  [51]  (0.6942, 0.8597)
  [52]  (0.6069, 0.8750)
  [53]  (0.5344, 0.8239)
  [54]  (0.5304, 0.7517)
  [55]  (0.6104, 0.7321)
  [56]  (0.5925, 0.7321)
  [57]  (0.6652, 0.7480)
  [58]  (0.6640, 0.8197)
  [59]  (0.5995, 0.8652)
  [60]  (0.5577, 0.8090)
  [61]  (0.5895, 0.7453)
  [62]  (0.6640, 0.7443)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.5925, 0.0000)  angle=99.8 deg
  V1  (0.6911, 0.0481)  angle=34.1 deg
  V2  (0.7459, 0.1432)  angle=48.8 deg
  V3  (0.7127, 0.2407)  angle=68.5 deg
  V4  (0.6013, 0.2459)  angle=84.3 deg
  V5  (0.5871, 0.1494)  angle=79.8 deg
  V6  (0.6852, 0.1163)  angle=142.9 deg
  V7  (0.5925, 0.0854)  angle=120.1 deg
  V8  (0.6852, 0.6870)  angle=58.7 deg
  V9  (0.5925, 0.7593)  angle=112.6 deg
  V10  (0.6599, 0.7974)  angle=44.2 deg
  V11  (0.6831, 0.8769)  angle=37.4 deg
  V12  (0.6537, 0.9530)  angle=74.0 deg
  V13  (0.5796, 0.9463)  angle=71.1 deg
  V14  (0.5613, 0.8718)  angle=55.8 deg
  V15  (0.6134, 0.8140)  angle=144.4 deg
  V16  (0.5925, 1.0000)  angle=145.0 deg
  V17  (0.2541, 0.4007)  angle=87.3 deg
  V18  (0.3576, 0.3378)  angle=30.9 deg
  V19  (0.5297, 0.3367)  angle=56.4 deg
  V20  (0.5925, 0.4299)  angle=37.2 deg
  V21  (0.6730, 0.4573)  angle=45.6 deg
  V22  (0.7084, 0.5311)  angle=65.2 deg
  V23  (0.6622, 0.5870)  angle=70.0 deg
  V24  (0.5861, 0.5600)  angle=53.3 deg
  V25  (0.5647, 0.4904)  angle=80.4 deg
  V26  (0.6372, 0.4539)  angle=131.4 deg
  V27  (0.5925, 0.4359)  angle=165.7 deg
  V28  (0.6708, 0.4932)  angle=66.7 deg
  V29  (0.6515, 0.5777)  angle=81.1 deg
  V30  (0.5557, 0.5711)  angle=60.8 deg
  V31  (0.5217, 0.4992)  angle=90.2 deg
  V32  (0.6089, 0.4584)  angle=70.0 deg
  V33  (0.6761, 0.5254)  angle=66.2 deg
  V34  (0.5925, 0.7411)  angle=85.0 deg
  V35  (0.6704, 0.7794)  angle=47.4 deg
  V36  (0.6942, 0.8597)  angle=96.5 deg
  V37  (0.6069, 0.8750)  angle=45.1 deg
  V38  (0.5344, 0.8239)  angle=51.7 deg
  V39  (0.5304, 0.7517)  angle=79.4 deg
  V40  (0.6104, 0.7321)  angle=166.3 deg
  V41  (0.5925, 0.7321)  angle=167.7 deg
  V42  (0.6652, 0.7480)  angle=78.7 deg
  V43  (0.6640, 0.8197)  angle=53.8 deg
  V44  (0.5995, 0.8652)  angle=88.5 deg
  V45  (0.5577, 0.8090)  angle=63.2 deg
  V46  (0.5895, 0.7453)  angle=62.7 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
    }
),
