← Commit history

Jon Chung nameplate: self-hosted 3D viewer, Z-up model, README.html

John Lauer ·5f39bd946b ·3mo ago ·parent ae2a009
3 files changed +103−79
README.html+24
@@ -138,4 +138,28 @@ from parametric tscircuit source. Board size, pin box, LED count and silkscreen from the name's ink box, so a new name is one command:</p> <p><code>scripts/make-nameplate.sh "Jon Chung"</code></p> +<script>+(function () {+  // The wiki renders README.html inside an iframe that does not know our+  // height, so it has to be told. Without this the page is clipped to the+  // default frame height and everything below the 3D viewer is unreachable.+  var wrap = document.getElementById('wrap');+  var last = 0;+  function post() {+    var h = wrap.offsetHeight + 24;+    if (h !== last) { last = h; parent.postMessage({ type: 'readme-height', height: h }, '*'); }+  }+  post();+  addEventListener('load', post);+  addEventListener('resize', post);+  // Images and the lazily-loaded viewer iframe land after first paint and each+  // one changes our height, so re-post as they arrive.+  document.querySelectorAll('img, iframe').forEach(function (el) {+    el.addEventListener('load', post);+  });+  if (window.ResizeObserver) new ResizeObserver(post).observe(wrap);+  // Belt and braces for late web-font swaps.+  [100, 400, 1200, 3000].forEach(function (t) { setTimeout(post, t); });+})();+</script> </div></body></html>\ No newline at end of file
viewer/circuit.json+77−77
@@ -65082,11 +65082,23 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_uzxhYMhlqk",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_SH91PuNYS9",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#644 name=\".R4\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_28",-    "pcb_component_id": "pcb_component_30",+    "message": "<capacitor#540 name=\".C2\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C1525 (copper IoU 0.7249).",+    "source_component_id": "source_component_9",+    "pcb_component_id": "pcb_component_9",+    "subcircuit_id": "subcircuit_source_group_0",+    "supplier_name": "jlcpcb",+    "supplier_part_number": "C1525",+    "footprint_copper_intersection_over_union": 0.7249+  },+  {+    "type": "supplier_footprint_mismatch_warning",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_A2QeJWd1ew",+    "warning_type": "supplier_footprint_mismatch_warning",+    "message": "<resistor#605 name=\".R1\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_25",+    "pcb_component_id": "pcb_component_27",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65094,11 +65106,11 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_Yzn0D9F5mu",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_wYG61TsiLV",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#657 name=\".R5\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_29",-    "pcb_component_id": "pcb_component_31",+    "message": "<resistor#787 name=\".R15\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_39",+    "pcb_component_id": "pcb_component_41",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65106,19 +65118,19 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_Ai9WIsxvCG",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_2KSc7faxF1",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<capacitor#540 name=\".C2\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C1525 (copper IoU 0.7249).",-    "source_component_id": "source_component_9",-    "pcb_component_id": "pcb_component_9",+    "message": "<resistor#644 name=\".R4\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_28",+    "pcb_component_id": "pcb_component_30",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",-    "supplier_part_number": "C1525",-    "footprint_copper_intersection_over_union": 0.7249+    "supplier_part_number": "C25082",+    "footprint_copper_intersection_over_union": 0.7741   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_LPpfjJCsL9",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_U7da5BUZvX",     "warning_type": "supplier_footprint_mismatch_warning",     "message": "<resistor#683 name=\".R7\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",     "source_component_id": "source_component_31",@@ -65130,23 +65142,23 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_jcxtO35zzU",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_q6dTXnoYl4",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#502 name=\".R_CC1\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25900 (copper IoU 0.7741).",-    "source_component_id": "source_component_6",-    "pcb_component_id": "pcb_component_6",+    "message": "<resistor#774 name=\".R14\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_38",+    "pcb_component_id": "pcb_component_40",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",-    "supplier_part_number": "C25900",+    "supplier_part_number": "C25082",     "footprint_copper_intersection_over_union": 0.7741   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_Stz9NHDVXX",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_EodIzU9rTO",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#722 name=\".R10\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_34",-    "pcb_component_id": "pcb_component_36",+    "message": "<resistor#735 name=\".R11\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_35",+    "pcb_component_id": "pcb_component_37",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65154,11 +65166,11 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_su4Rbt3dYY",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_3NQS41fZCe",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#774 name=\".R14\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_38",-    "pcb_component_id": "pcb_component_40",+    "message": "<resistor#631 name=\".R3\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_27",+    "pcb_component_id": "pcb_component_29",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65166,11 +65178,11 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_Syd2MLrcb3",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_bm276a6zNa",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#787 name=\".R15\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_39",-    "pcb_component_id": "pcb_component_41",+    "message": "<resistor#722 name=\".R10\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_34",+    "pcb_component_id": "pcb_component_36",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65178,11 +65190,11 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_9EA5lNVEO0",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_wfCsaH3wdA",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#696 name=\".R8\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_32",-    "pcb_component_id": "pcb_component_34",+    "message": "<resistor#618 name=\".R2\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_26",+    "pcb_component_id": "pcb_component_28",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65190,11 +65202,11 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_fbeb6295xf",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_bmtXxoKK1D",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#605 name=\".R1\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_25",-    "pcb_component_id": "pcb_component_27",+    "message": "<resistor#696 name=\".R8\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_32",+    "pcb_component_id": "pcb_component_34",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65202,11 +65214,11 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_nRvMWGLOLp",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_yL49nIWw2D",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#618 name=\".R2\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_26",-    "pcb_component_id": "pcb_component_28",+    "message": "<resistor#748 name=\".R12\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_36",+    "pcb_component_id": "pcb_component_38",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65214,7 +65226,7 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_GKI2bOcPs8",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_JnfYSXY9wT",     "warning_type": "supplier_footprint_mismatch_warning",     "message": "<resistor#670 name=\".R6\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",     "source_component_id": "source_component_30",@@ -65226,35 +65238,35 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_FoAIuiT11S",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_FXYPwJVvPQ",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#735 name=\".R11\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_35",-    "pcb_component_id": "pcb_component_37",+    "message": "<resistor#515 name=\".R_CC2\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25900 (copper IoU 0.7741).",+    "source_component_id": "source_component_7",+    "pcb_component_id": "pcb_component_7",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",-    "supplier_part_number": "C25082",+    "supplier_part_number": "C25900",     "footprint_copper_intersection_over_union": 0.7741   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_aJohwSNPnm",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_MEtgwMYe0j",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#709 name=\".R9\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_33",-    "pcb_component_id": "pcb_component_35",+    "message": "<resistor#502 name=\".R_CC1\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25900 (copper IoU 0.7741).",+    "source_component_id": "source_component_6",+    "pcb_component_id": "pcb_component_6",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",-    "supplier_part_number": "C25082",+    "supplier_part_number": "C25900",     "footprint_copper_intersection_over_union": 0.7741   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_z1gWPGUi4C",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_MgpUuZFiSK",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#748 name=\".R12\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_36",-    "pcb_component_id": "pcb_component_38",+    "message": "<resistor#709 name=\".R9\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_33",+    "pcb_component_id": "pcb_component_35",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65262,11 +65274,11 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_Gts9Xcwnam",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_aMPPpBgzxZ",     "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#631 name=\".R3\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",-    "source_component_id": "source_component_27",-    "pcb_component_id": "pcb_component_29",+    "message": "<resistor#657 name=\".R5\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",+    "source_component_id": "source_component_29",+    "pcb_component_id": "pcb_component_31",     "subcircuit_id": "subcircuit_source_group_0",     "supplier_name": "jlcpcb",     "supplier_part_number": "C25082",@@ -65274,7 +65286,7 @@   },   {     "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_nxVGgcqc8L",+    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_HCrQoOqsbI",     "warning_type": "supplier_footprint_mismatch_warning",     "message": "<resistor#761 name=\".R13\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25082 (copper IoU 0.7741).",     "source_component_id": "source_component_37",@@ -65284,20 +65296,8 @@     "supplier_part_number": "C25082",     "footprint_copper_intersection_over_union": 0.7741   },-  {-    "type": "supplier_footprint_mismatch_warning",-    "supplier_footprint_mismatch_warning_id": "supplier_footprint_mismatch_warning_1a26ExSpmL",-    "warning_type": "supplier_footprint_mismatch_warning",-    "message": "<resistor#515 name=\".R_CC2\" /> footprint \"0402\" does not match supplier footprint jlcpcb:C25900 (copper IoU 0.7741).",-    "source_component_id": "source_component_7",-    "pcb_component_id": "pcb_component_7",-    "subcircuit_id": "subcircuit_source_group_0",-    "supplier_name": "jlcpcb",-    "supplier_part_number": "C25900",-    "footprint_copper_intersection_over_union": 0.7741-  },   {     "type": "source_project_metadata",-    "source_filesystem_md5_hash": "5159975a36709c543705eb49d193f608"+    "source_filesystem_md5_hash": "a63c39491d273ab194213ee52e65098c"   } ]\ No newline at end of file
viewer/walkthrough.json+2−2
@@ -1,8 +1,8 @@ {   "_meta": {-    "circuit_json_sha256": "4988534cea8e55a4bebfdc8fd77183f189af25250ed0bc5d53a46ff0e1d6701e",+    "circuit_json_sha256": "e8acbe6c1e2c781aa305bda16e1a3f1bc6b445a1f04722c0d09db447000b52bf",     "do_not_edit_by_hand": "steps are authored in scripts/gen-walkthrough.py; _meta (incl. circuit_json_sha256) comes from `adom-tsci walkthrough-gen` so staleness detection still works. Re-run scripts/gen-walkthrough.py after changing the board.",-    "generated_at": "2026-08-07T11:09:43.631708278+00:00",+    "generated_at": "2026-08-07T11:34:11.097824420+00:00",     "generated_by": "adom-tsci walkthrough-gen",     "package_name": "jon-chung-nameplate",     "project_name": "jon-chung-nameplate",