abse/smartwatch-flex-top-only
Three-panel flex smartwatch with two parallel R3.9 bends, all components flat-top, low-profile JST connector harnesses, split heartbeat optical windows and screw-retained PCB mounting. Modeled 39 × 50.5 × 14.5mm prototype; 100% routing, zero native DRC and shorts. Hardware qualification pending.
- Version
- 0.2.20
- License
- unset
- Stars
- 0
reports/copper-audit.json
{
"checkedAt": "2026-10-15T16:20:12.820Z",
"cachePath": "routing/final/cache.json",
"cacheSha256": "f5f02bb87a2f244f469c7b0a3bb8904b313a9db93e61eb6e256548752d2d35ae",
"sourcePath": "dist/index/circuit.json",
"sourceSha256": "3083348767c7efa82834aa0cbc04a003394f3f31e23fd696c5ae39e363d7b088",
"method": "Independent geometric union of actual pad polygons, routed copper capsules, all-layer through-via copper and generated BREP pours with clearance holes; no logical-net aliases used as continuity shortcuts.",
"netResults": [
{
"net": "source_net_0",
"padCount": 135,
"requiredPadCount": 135,
"copperShapeCount": 1601,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_1",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 35,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_2",
"padCount": 56,
"requiredPadCount": 56,
"copperShapeCount": 1054,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_3",
"padCount": 9,
"requiredPadCount": 9,
"copperShapeCount": 381,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_4",
"padCount": 9,
"requiredPadCount": 9,
"copperShapeCount": 319,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_5",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 12,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_6",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 17,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_7",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 24,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_8",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 246,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_9",
"padCount": 8,
"requiredPadCount": 8,
"copperShapeCount": 169,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_10",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 117,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_11",
"padCount": 11,
"requiredPadCount": 11,
"copperShapeCount": 167,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_12",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 226,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_13",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 289,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_14",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 139,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_15",
"padCount": 12,
"requiredPadCount": 12,
"copperShapeCount": 454,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_16",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 10,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_17",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 34,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_18",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 125,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_19",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 35,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_20",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 60,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_21",
"padCount": 15,
"requiredPadCount": 15,
"copperShapeCount": 263,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_22",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 14,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_23",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 6,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_24",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 99,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_25",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 7,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_26",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 138,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_27",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 77,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_28",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 59,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_29",
"padCount": 6,
"requiredPadCount": 6,
"copperShapeCount": 143,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_30",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 36,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_31",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 14,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_32",
"padCount": 5,
"requiredPadCount": 5,
"copperShapeCount": 209,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_33",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 97,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_34",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 18,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_35",
"padCount": 6,
"requiredPadCount": 6,
"copperShapeCount": 95,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_36",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 31,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_37",
"padCount": 4,
"requiredPadCount": 4,
"copperShapeCount": 99,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_38",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 26,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_39",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 156,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_40",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 114,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_41",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 174,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_42",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 7,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_43",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 12,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_44",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 3,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_45",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 5,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_46",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 11,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_47",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 35,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_48",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 197,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_49",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 209,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_50",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 316,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_51",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 162,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_52",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 25,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_53",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 5,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_54",
"padCount": 5,
"requiredPadCount": 5,
"copperShapeCount": 51,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_55",
"padCount": 6,
"requiredPadCount": 6,
"copperShapeCount": 348,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_56",
"padCount": 4,
"requiredPadCount": 4,
"copperShapeCount": 36,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_57",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 144,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_58",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 260,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_59",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 333,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_60",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 133,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_61",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 329,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_62",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 121,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_63",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 106,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_64",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 109,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_65",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 37,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_66",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 39,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_67",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 64,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_68",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 58,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_69",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 20,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_70",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 45,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_71",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 243,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_72",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 206,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_73",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 21,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_74",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 23,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_75",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 8,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_76",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 4,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_77",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 5,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_78",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 6,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_79",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 91,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_80",
"padCount": 7,
"requiredPadCount": 7,
"copperShapeCount": 125,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_81",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 64,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_82",
"padCount": 6,
"requiredPadCount": 6,
"copperShapeCount": 58,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_83",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 21,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_84",
"padCount": 4,
"requiredPadCount": 4,
"copperShapeCount": 49,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_85",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 40,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_86",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 67,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_87",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 38,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_88",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 75,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_89",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 76,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_90",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 9,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_91",
"padCount": 2,
"requiredPadCount": 2,
"copperShapeCount": 16,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_92",
"padCount": 4,
"requiredPadCount": 4,
"copperShapeCount": 90,
"connectedPadGroups": 1,
"missing": []
},
{
"net": "source_net_93",
"padCount": 3,
"requiredPadCount": 3,
"copperShapeCount": 6,
"connectedPadGroups": 1,
"missing": []
}
],
"connectivityFailures": [],
"orphanTraceIds": [],
"floatingGroundPourIds": [],
"viaCount": 621,
"viaOuterMM": 0.45,
"viaDrillMM": 0.3,
"minDrillGapMM": 0.201597448159375,
"minViaToPadCopperGapMM": 0.0019665000000000654,
"drillFailures": [],
"viaPadFailures": [],
"viaSizeFailures": []
}