hardware
Alex — Adom Molecule LED Nameplate
Public Made by Adomby adom
Alex's name etched out of the soldermask over the top-layer ground plane, lit by side-view LEDs firing inward across the board. A real Adom molecule: large machine pins on the 32 mm base-scaffold grid, USB-C powered. Every LED returns its current through the letters, so there is no second ground path.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
// GENERATED by scripts/gen-name-geometry.py — do not edit by hand.
//
// "Alex" set in Familjen Grotesk Bold (700), the Adom brand headline face.
// Ink height 40.0 mm, ink width 112.59 mm.
// Each letter is decomposed into simple polygons whose UNION is the letter;
// counters (the holes in a/e/e/d) are excluded by the decomposition, so they
// stay covered in soldermask. Coordinates are mm, origin = centre of the name.
export type NamePolygon = { x: number; y: number }[]
export const NAME_TEXT = "Alex"
export const NAME_INK_HEIGHT_MM = 40.0
export const NAME_INK_WIDTH_MM = 112.589
export const NAME_LETTERS: { char: string; shapes: NamePolygon[] }[] = [
{ char: "A", shapes: [
[{x:-56.2945,y:-18.9693}, {x:-46.7239,y:-9.6933}, {x:-45.0061,y:-3.5092}, {x:-44.7607,y:19.0184}],
[{x:-48.5399,y:-19.2638}, {x:-28.7116,y:-19.2638}, {x:-30.4294,y:-9.6933}, {x:-46.7239,y:-9.6933}, {x:-56.2945,y:-18.9693}, {x:-56.2945,y:-19.2638}],
[{x:-28.7116,y:-19.2638}, {x:-20.2699,y:-19.2638}, {x:-20.2699,y:-18.9693}, {x:-31.8527,y:19.0184}, {x:-30.4294,y:-9.6933}],
[{x:-44.7607,y:19.0184}, {x:-45.0061,y:-3.5092}, {x:-32.1472,y:-3.5092}, {x:-31.8527,y:19.0184}],
[{x:-32.1472,y:-3.5092}, {x:-30.4294,y:-9.6933}, {x:-31.8527,y:19.0184}],
] },
{ char: "l", shapes: [
[{x:-14.1072,y:-18.9455}, {x:-13.8405,y:-19.2638}, {x:-5.3497,y:-19.2638}, {x:-5.6191,y:-18.678}, {x:-5.8778,y:-18.3735}, {x:-15.0123,y:-17.589}, {x:-14.8103,y:-17.9406}, {x:-14.5921,y:-18.2839}, {x:-14.3578,y:-18.6189}],
[{x:-5.3497,y:-19.2638}, {x:-5.3497,y:-18.9693}, {x:-5.6191,y:-18.678}],
[{x:-8.3926,y:-9.6442}, {x:-8.3926,y:20.0}, {x:-16.3435,y:20.0}],
[{x:-16.3435,y:20.0}, {x:-16.3435,y:-10.4785}, {x:-16.3379,y:-11.1139}, {x:-16.321,y:-11.7242}, {x:-16.2927,y:-12.3094}, {x:-16.2532,y:-12.8697}, {x:-16.2024,y:-13.4049}, {x:-16.1404,y:-13.9151}, {x:-16.067,y:-14.4002}, {x:-15.0123,y:-17.589}, {x:-7.9838,y:-14.0606}, {x:-8.0923,y:-13.5283}],
[{x:-15.0123,y:-17.589}, {x:-16.067,y:-14.4002}, {x:-15.9823,y:-14.8604}, {x:-15.8864,y:-15.2955}, {x:-15.7791,y:-15.7055}, {x:-15.6581,y:-16.0989}, {x:-15.521,y:-16.4839}, {x:-15.3676,y:-16.8606}, {x:-15.198,y:-17.229}],
[{x:-8.3843,y:-10.3737}, {x:-8.3926,y:-9.6442}, {x:-16.3435,y:20.0}],
[{x:-8.3592,y:-11.0704}, {x:-8.3843,y:-10.3737}, {x:-16.3435,y:20.0}],
[{x:-8.3175,y:-11.7342}, {x:-8.3592,y:-11.0704}, {x:-16.3435,y:20.0}],
[{x:-15.0123,y:-17.589}, {x:-5.8778,y:-18.3735}, {x:-6.1256,y:-18.0557}],
[{x:-8.2591,y:-12.3652}, {x:-8.3175,y:-11.7342}, {x:-16.3435,y:20.0}],
[{x:-15.0123,y:-17.589}, {x:-6.1256,y:-18.0557}, {x:-6.3627,y:-17.7247}],
[{x:-8.184,y:-12.9632}, {x:-8.2591,y:-12.3652}, {x:-16.3435,y:20.0}],
[{x:-15.0123,y:-17.589}, {x:-6.3627,y:-17.7247}, {x:-6.5889,y:-17.3804}],
[{x:-8.0923,y:-13.5283}, {x:-8.184,y:-12.9632}, {x:-16.3435,y:20.0}],
[{x:-15.0123,y:-17.589}, {x:-6.5889,y:-17.3804}, {x:-6.8044,y:-17.0228}],
[{x:-15.0123,y:-17.589}, {x:-6.8044,y:-17.0228}, {x:-7.0091,y:-16.652}],
[{x:-15.0123,y:-17.589}, {x:-7.0091,y:-16.652}, {x:-7.2029,y:-16.268}],
[{x:-7.8586,y:-14.56}, {x:-7.9838,y:-14.0606}, {x:-15.0123,y:-17.589}],
[{x:-15.0123,y:-17.589}, {x:-7.2029,y:-16.268}, {x:-7.386,y:-15.8707}],
[{x:-7.7168,y:-15.0265}, {x:-7.8586,y:-14.56}, {x:-15.0123,y:-17.589}],
[{x:-15.0123,y:-17.589}, {x:-7.386,y:-15.8707}, {x:-7.5583,y:-15.4601}],
[{x:-7.5583,y:-15.4601}, {x:-7.7168,y:-15.0265}, {x:-15.0123,y:-17.589}],
] },
{ char: "e", shapes: [
[{x:-2.6496,y:-1.7286}, {x:4.9571,y:-1.3988}, {x:5.0481,y:-0.7099}, {x:-2.5345,y:-0.8628}],
[{x:-2.4684,y:-8.5207}, {x:4.9571,y:-6.4049}, {x:17.227,y:-1.3988}, {x:4.9571,y:-1.3988}, {x:-2.6496,y:-1.7286}, {x:-2.7318,y:-2.6218}, {x:-2.7811,y:-3.5426}, {x:-2.7975,y:-4.4908}, {x:-2.761,y:-5.894}, {x:-2.6513,y:-7.2373}],
[{x:1.6233,y:-16.6209}, {x:10.1239,y:-19.9583}, {x:8.8896,y:-13.8712}, {x:8.4427,y:-13.6363}, {x:-2.4684,y:-8.5207}, {x:-2.2125,y:-9.7443}, {x:-1.8834,y:-10.908}, {x:-1.4812,y:-12.0118}, {x:-1.0059,y:-13.0557}, {x:-0.4574,y:-14.0398}, {x:0.1642,y:-14.9639}, {x:0.8589,y:-15.8282}],
[{x:10.1239,y:-19.9583}, {x:1.6233,y:-16.6209}, {x:2.454,y:-17.3301}, {x:3.3509,y:-17.9558}, {x:4.3141,y:-18.4982}, {x:5.3436,y:-18.9571}, {x:6.4393,y:-19.3325}, {x:7.6012,y:-19.6245}, {x:8.8295,y:-19.8331}],
[{x:16.5831,y:-19.3026}, {x:20.7976,y:-16.9325}, {x:15.9433,y:-12.1664}, {x:15.7114,y:-12.4633}, {x:10.1239,y:-19.9583}, {x:11.4847,y:-20.0}, {x:12.2955,y:-19.9858}, {x:13.0788,y:-19.9431}, {x:13.8346,y:-19.8719}, {x:14.563,y:-19.7723}, {x:15.2638,y:-19.6442}, {x:15.9372,y:-19.4876}],
[{x:20.7976,y:-16.9325}, {x:16.5831,y:-19.3026}, {x:17.2015,y:-19.0891}, {x:17.7924,y:-18.8471}, {x:18.3558,y:-18.5767}, {x:18.8933,y:-18.2832}, {x:19.4062,y:-17.972}, {x:19.8945,y:-17.6432}, {x:20.3583,y:-17.2967}],
[{x:23.4415,y:-13.4272}, {x:17.0307,y:-9.8405}, {x:16.9328,y:-10.1993}, {x:20.7976,y:-16.9325}, {x:21.2123,y:-16.5507}, {x:21.6025,y:-16.1512}, {x:21.9681,y:-15.734}, {x:22.3092,y:-15.2991}, {x:22.6258,y:-14.8466}, {x:22.9193,y:-14.3813}, {x:23.1912,y:-13.9082}],
[{x:17.0307,y:-9.8405}, {x:23.4415,y:-13.4272}, {x:23.6702,y:-12.9384}, {x:23.8773,y:-12.4417}, {x:24.0628,y:-11.9372}, {x:24.2268,y:-11.4248}, {x:24.3691,y:-10.9045}, {x:24.4898,y:-10.3764}, {x:24.589,y:-9.8405}],
[{x:24.8412,y:-1.8032}, {x:17.227,y:-1.3988}, {x:4.9571,y:-6.4049}, {x:24.9816,y:-6.4049}, {x:24.9816,y:-4.7362}, {x:24.9465,y:-3.2324}],
[{x:21.4724,y:6.9448}, {x:13.8945,y:10.7612}, {x:14.56,y:4.7178}, {x:14.9183,y:4.4417}, {x:24.8412,y:-1.8032}, {x:24.6658,y:-0.4486}, {x:24.4201,y:0.8314}, {x:24.1043,y:2.0368}, {x:23.7183,y:3.1676}, {x:23.2621,y:4.2238}, {x:22.7357,y:5.2054}, {x:22.1392,y:6.1124}],
[{x:13.8945,y:10.7612}, {x:21.4724,y:6.9448}, {x:20.7399,y:7.7001}, {x:19.946,y:8.376}, {x:19.0908,y:8.9723}, {x:18.1742,y:9.4891}, {x:17.1963,y:9.9264}, {x:16.1571,y:10.2842}, {x:15.0565,y:10.5625}],
[{x:6.4128,y:10.2488}, {x:1.3674,y:7.3119}, {x:6.9939,y:3.8773}, {x:7.3333,y:4.2083}, {x:13.8945,y:10.7612}, {x:12.6712,y:10.8805}, {x:11.3865,y:10.9202}, {x:10.4876,y:10.9016}, {x:9.6167,y:10.8456}, {x:8.7738,y:10.7524}, {x:7.9588,y:10.6218}, {x:7.1718,y:10.454}],
[{x:1.3674,y:7.3119}, {x:6.4128,y:10.2488}, {x:5.6817,y:10.0064}, {x:4.9787,y:9.7266}, {x:4.3036,y:9.4096}, {x:3.6565,y:9.0552}, {x:3.0385,y:8.6665}, {x:2.4511,y:8.2464}, {x:1.894,y:7.7948}],
[{x:-1.7453,y:2.3254}, {x:5.1642,y:-0.0569}, {x:5.3053,y:0.5602}, {x:1.3674,y:7.3119}, {x:0.8712,y:6.7975}, {x:0.4054,y:6.2518}, {x:-0.0299,y:5.6746}, {x:-0.4348,y:5.066}, {x:-0.8093,y:4.426}, {x:-1.1534,y:3.7546}, {x:-1.4658,y:3.0537}],
[{x:5.1642,y:-0.0569}, {x:-1.7453,y:2.3254}, {x:-1.9919,y:1.5696}, {x:-2.2056,y:0.7863}, {x:-2.3865,y:-0.0245}, {x:-2.5345,y:-0.8628}, {x:5.0481,y:-0.7099}],
[{x:20.7976,y:-16.9325}, {x:16.9328,y:-10.1993}, {x:16.8157,y:-10.5492}],
[{x:1.3674,y:7.3119}, {x:5.3053,y:0.5602}, {x:5.4714,y:1.1416}],
[{x:20.7976,y:-16.9325}, {x:16.8157,y:-10.5492}, {x:16.6795,y:-10.8903}],
[{x:1.3674,y:7.3119}, {x:5.4714,y:1.1416}, {x:5.6626,y:1.6871}],
[{x:20.7976,y:-16.9325}, {x:16.6795,y:-10.8903}, {x:16.5242,y:-11.2226}],
[{x:1.3674,y:7.3119}, {x:5.6626,y:1.6871}, {x:5.8788,y:2.1968}],
[{x:20.7976,y:-16.9325}, {x:16.5242,y:-11.2226}, {x:16.3497,y:-11.546}],
[{x:1.3674,y:7.3119}, {x:5.8788,y:2.1968}, {x:6.12,y:2.6707}],
[{x:20.7976,y:-16.9325}, {x:16.3497,y:-11.546}, {x:16.1561,y:-11.8606}],
[{x:1.3674,y:7.3119}, {x:6.12,y:2.6707}, {x:6.3863,y:3.1087}],
[{x:20.7976,y:-16.9325}, {x:16.1561,y:-11.8606}, {x:15.9433,y:-12.1664}],
[{x:1.3674,y:7.3119}, {x:6.3863,y:3.1087}, {x:6.6776,y:3.5109}],
[{x:1.3674,y:7.3119}, {x:6.6776,y:3.5109}, {x:6.9939,y:3.8773}],
[{x:10.1239,y:-19.9583}, {x:15.7114,y:-12.4633}, {x:15.4604,y:-12.7514}],
[{x:10.1239,y:-19.9583}, {x:15.4604,y:-12.7514}, {x:15.1902,y:-13.0307}],
[{x:13.8945,y:10.7612}, {x:7.3333,y:4.2083}, {x:7.6938,y:4.5045}],
[{x:10.1239,y:-19.9583}, {x:15.1902,y:-13.0307}, {x:14.9014,y:-13.2918}],
[{x:13.8945,y:10.7612}, {x:7.6938,y:4.5045}, {x:8.0754,y:4.7659}],
[{x:10.1239,y:-19.9583}, {x:14.9014,y:-13.2918}, {x:14.5944,y:-13.5254}],
[{x:13.8945,y:10.7612}, {x:8.0754,y:4.7659}, {x:8.4781,y:4.9924}],
[{x:10.1239,y:-19.9583}, {x:14.5944,y:-13.5254}, {x:14.2692,y:-13.7315}],
[{x:13.8945,y:10.7612}, {x:8.4781,y:4.9924}, {x:8.9019,y:5.184}],
[{x:10.1239,y:-19.9583}, {x:14.2692,y:-13.7315}, {x:13.9259,y:-13.9102}],
[{x:13.8945,y:10.7612}, {x:8.9019,y:5.184}, {x:9.3468,y:5.3409}],
[{x:10.1239,y:-19.9583}, {x:13.9259,y:-13.9102}, {x:13.5644,y:-14.0613}],
[{x:13.8945,y:10.7612}, {x:9.3468,y:5.3409}, {x:9.8128,y:5.4628}],
[{x:10.1239,y:-19.9583}, {x:13.5644,y:-14.0613}, {x:13.1848,y:-14.185}],
[{x:13.8945,y:10.7612}, {x:9.8128,y:5.4628}, {x:10.2999,y:5.5499}],
[{x:10.1239,y:-19.9583}, {x:13.1848,y:-14.185}, {x:12.787,y:-14.2812}],
[{x:13.8945,y:10.7612}, {x:10.2999,y:5.5499}, {x:10.8081,y:5.6022}],
[{x:10.1239,y:-19.9583}, {x:12.787,y:-14.2812}, {x:12.3711,y:-14.3499}],
[{x:13.8945,y:10.7612}, {x:10.8081,y:5.6022}, {x:11.3374,y:5.6196}],
[{x:10.1239,y:-19.9583}, {x:12.3711,y:-14.3499}, {x:11.9369,y:-14.3912}],
[{x:13.8945,y:10.7612}, {x:11.3374,y:5.6196}, {x:11.8744,y:5.6012}],
[{x:10.1239,y:-19.9583}, {x:11.9369,y:-14.3912}, {x:11.4847,y:-14.4049}],
[{x:13.8945,y:10.7612}, {x:11.8744,y:5.6012}, {x:12.3858,y:5.546}],
[{x:10.1239,y:-19.9583}, {x:11.4847,y:-14.4049}, {x:10.9176,y:-14.3836}],
[{x:13.8945,y:10.7612}, {x:12.3858,y:5.546}, {x:12.8717,y:5.454}],
[{x:10.1239,y:-19.9583}, {x:10.9176,y:-14.3836}, {x:10.3745,y:-14.3195}],
[{x:13.8945,y:10.7612}, {x:12.8717,y:5.454}, {x:13.332,y:5.3252}],
[{x:10.1239,y:-19.9583}, {x:10.3745,y:-14.3195}, {x:9.8555,y:-14.2128}],
[{x:13.8945,y:10.7612}, {x:13.332,y:5.3252}, {x:13.7669,y:5.1595}],
[{x:10.1239,y:-19.9583}, {x:9.8555,y:-14.2128}, {x:9.3605,y:-14.0633}],
[{x:13.8945,y:10.7612}, {x:13.7669,y:5.1595}, {x:14.1762,y:4.9571}],
[{x:10.1239,y:-19.9583}, {x:9.3605,y:-14.0633}, {x:8.8896,y:-13.8712}],
[{x:13.8945,y:10.7612}, {x:14.1762,y:4.9571}, {x:14.56,y:4.7178}],
[{x:-2.4684,y:-8.5207}, {x:8.4427,y:-13.6363}, {x:8.0199,y:-13.3588}],
[{x:24.8412,y:-1.8032}, {x:14.9183,y:4.4417}, {x:15.2511,y:4.1288}],
[{x:-2.4684,y:-8.5207}, {x:8.0199,y:-13.3588}, {x:7.6211,y:-13.0385}],
[{x:24.8412,y:-1.8032}, {x:15.2511,y:4.1288}, {x:15.5583,y:3.7791}],
[{x:-2.4684,y:-8.5207}, {x:7.6211,y:-13.0385}, {x:7.2464,y:-12.6756}],
[{x:24.8412,y:-1.8032}, {x:15.5583,y:3.7791}, {x:15.84,y:3.3961}],
[{x:-2.4684,y:-8.5207}, {x:7.2464,y:-12.6756}, {x:6.8957,y:-12.2699}],
[{x:24.8412,y:-1.8032}, {x:15.84,y:3.3961}, {x:16.0962,y:2.9831}],
[{x:-2.4684,y:-8.5207}, {x:6.8957,y:-12.2699}, {x:6.5716,y:-11.827}],
[{x:24.8412,y:-1.8032}, {x:16.0962,y:2.9831}, {x:16.3269,y:2.5401}],
[{x:-2.4684,y:-8.5207}, {x:6.5716,y:-11.827}, {x:6.2763,y:-11.3521}],
[{x:24.8412,y:-1.8032}, {x:16.3269,y:2.5401}, {x:16.532,y:2.0672}],
[{x:-2.4684,y:-8.5207}, {x:6.2763,y:-11.3521}, {x:6.0101,y:-10.8454}],
[{x:24.8412,y:-1.8032}, {x:16.532,y:2.0672}, {x:16.7117,y:1.5644}],
[{x:-2.4684,y:-8.5207}, {x:6.0101,y:-10.8454}, {x:5.7728,y:-10.3067}],
[{x:24.8412,y:-1.8032}, {x:16.7117,y:1.5644}, {x:16.8658,y:1.0317}],
[{x:-2.4684,y:-8.5207}, {x:5.7728,y:-10.3067}, {x:5.5644,y:-9.7362}],
[{x:24.8412,y:-1.8032}, {x:16.8658,y:1.0317}, {x:16.9944,y:0.469}],
[{x:-2.4684,y:-8.5207}, {x:5.5644,y:-9.7362}, {x:5.385,y:-9.1337}],
[{x:24.8412,y:-1.8032}, {x:16.9944,y:0.469}, {x:17.0974,y:-0.1237}],
[{x:-2.4684,y:-8.5207}, {x:5.385,y:-9.1337}, {x:5.2346,y:-8.4994}],
[{x:24.8412,y:-1.8032}, {x:17.0974,y:-0.1237}, {x:17.175,y:-0.7463}],
[{x:-2.4684,y:-8.5207}, {x:5.2346,y:-8.4994}, {x:5.1131,y:-7.8331}],
[{x:24.8412,y:-1.8032}, {x:17.175,y:-0.7463}, {x:17.227,y:-1.3988}],
[{x:-2.4684,y:-8.5207}, {x:5.1131,y:-7.8331}, {x:5.0206,y:-7.135}],
[{x:-2.4684,y:-8.5207}, {x:5.0206,y:-7.135}, {x:4.9571,y:-6.4049}],
] },
{ char: "x", shapes: [
[{x:35.9755,y:-3.9509}, {x:27.043,y:-18.9693}, {x:27.043,y:-19.2638}, {x:35.2884,y:-19.2638}, {x:40.6871,y:-8.9571}, {x:41.3742,y:1.3497}],
[{x:47.5583,y:-3.7546}, {x:41.865,y:-8.9571}, {x:47.4601,y:-19.2638}, {x:56.2945,y:-19.2638}, {x:56.2945,y:-18.9693}],
[{x:42.5522,y:1.3497}, {x:47.5583,y:-3.7546}, {x:55.0675,y:9.8896}, {x:55.0675,y:10.184}, {x:47.0675,y:10.184}],
[{x:35.9755,y:-3.9509}, {x:41.3742,y:1.3497}, {x:36.6626,y:10.184}, {x:27.9755,y:10.184}, {x:27.9755,y:9.8896}],
[{x:41.3742,y:1.3497}, {x:40.6871,y:-8.9571}, {x:41.865,y:-8.9571}, {x:47.5583,y:-3.7546}, {x:42.5522,y:1.3497}],
] },
]
export const NAME_POLYGONS: NamePolygon[] = NAME_LETTERS.flatMap((l) => l.shapes)