by adom
0603 SMD Green LED · 3.2 V drop · 25 mA max
master
John Lauer
Datasheet-true STEP height (0.55 mm), side MPN mark re-applied; GLBs, hero rebuilt without Z stretch
2e9a25d
20d ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
{
"schema": "adom/led-colour-pass@1",
"mpn": "IN-S63BTG",
"date": "2026-09-30",
"purpose": "Coloured-lens STEP as the default model the AI retrieves; the originally shipped STEP kept as the optional -uncoloured file; page GLBs and hero rebuilt from the coloured STEP.",
"colour": {
"slug": "in-s63btg",
"mpn": "IN-S63BTG",
"family": "kicad-chip",
"dominant_wavelength_nm": 527,
"cie_xy": null,
"datasheet": "IN-S63BT series p.3, lambda_D typ",
"spectral_oklab_hue_deg": 156.6,
"oklch": [
0.74,
0.1368,
156.6
],
"srgb": [
0.3293,
0.7696,
0.5289
],
"hex": "#54C487",
"note": "hue = OKLab hue (156.6 deg) of the lambda_d-exact gamut-edge colour for 527 nm"
},
"colour_method_doc": "tools/led_colour.py docstring (OKLCh, 65 % of gamut-cusp chroma, datasheet typical lambda_d)",
"step": {
"coloured": {
"file": "IN-S63BTG.step",
"sha256": "281302bae10a6b31e5832cf3718689f06344c8a9106870387de70956a6a3beef",
"bytes": 415000,
"content": "coloured library model (unchanged geometry) + one laser_etch part: a flat virtual MPN mark on the -Y side face"
},
"uncoloured": {
"file": "IN-S63BTG-uncoloured.step",
"sha256": "2fcd359e81170f712c6f300360ef1e61f8cc15c4cdb8afb515d6b635ca4f3734",
"bytes": 233679,
"note": "plain model (library colours, no mark), height-corrected to 0.55 mm; no longer byte-identical to the originally shipped file, which is kept as provenance/IN-S63BTG-kicad-original.step",
"matches_published_original": false
},
"colouring": {
"src": "IN-S63BTG-uncoloured.step",
"out": "IN-S63BTG.coloured.step",
"family": "kicad-chip",
"faces": 50,
"faces_by_class": {
"lens": 5,
"substrate": 7,
"terminal": 34,
"cathode_mark": 4
},
"faces_recoloured": 5,
"colours_srgb": {
"lens": [
0.3293,
0.7696,
0.5289
],
"substrate": [
0.895,
0.891,
0.813
],
"terminal": [
0.859,
0.738,
0.496
],
"cathode_mark": [
0.34,
0.68,
0.445
]
},
"classification": {
"z_top_mm": 0.55,
"z_substrate_top_mm": 0.235
},
"kept_comment_block": true
},
"geometry_check": "verify_geom.py: same product name, face count, volume and centroid in both files; only XCAF face colours differ (ColorSurf + ColorGen set on every recoloured face)"
},
"page_glbs": {
"meaning": "<MPN>.glb and <MPN>.insertion.glb are the page's composite LED scenes (FR4 board, pads, silk, solder fillets, the LED, an emissive LED_lit skin, FOV cone and a point light). The README's inline viewer (Colby's viewer + Static / Pick&Place additions) loads <MPN>.insertion.glb and animates the LED being inserted (placed) into its footprint; <MPN>.glb is the older static composite with the earlier silkscreen. Only the LED geometry/colours were replaced; every other node is copied unchanged.",
"files": {
"IN-S63BTG.glb": {
"sha256": "ecd5d38c1a7d483255beb1075761d4cfd1cc01b2ab4150fa8b6e86eb526e162d",
"bytes": 147216,
"bytes_before": 877664,
"tris_before": 10324,
"tris_after": 1978,
"build": {
"out": "IN-S63BTG.glb",
"bytes": 147216,
"sha256": "ecd5d38c1a7d483255beb1075761d4cfd1cc01b2ab4150fa8b6e86eb526e162d",
"led_node": "IN-S63BTG",
"old_led_tris": 8780,
"new_led_tris": 434,
"old_mesh_top_m": 0.0010999999940395355,
"new_mesh_top_m": 0.0005500327989596573,
"old_node_scale_z": 0.545,
"new_node_scale_z": 1.0,
"rendered_height_mm": 0.55,
"laser_etch": {
"tris": 186,
"z_mm": [
0.3356,
0.4494
]
},
"lens_material": {
"name": "lens_green",
"baseColor_linear": [
0.0886,
0.5536,
0.2418,
1
],
"replaced": "lens_green",
"old_baseColor": [
0.06,
0.42,
0.14,
1
]
}
}
},
"IN-S63BTG.insertion.glb": {
"sha256": "ec44b3adbdbf3443e7ee15f87368b48ec770ee12754ea586389a5cce277171fe",
"bytes": 113356,
"bytes_before": 901360,
"tris_before": 10604,
"tris_after": 2258,
"build": {
"out": "IN-S63BTG.insertion.glb",
"bytes": 113356,
"sha256": "ec44b3adbdbf3443e7ee15f87368b48ec770ee12754ea586389a5cce277171fe",
"led_node": "IN-S63BTG",
"old_led_tris": 8780,
"new_led_tris": 434,
"old_mesh_top_m": 0.0010999999940395355,
"new_mesh_top_m": 0.0005500327989596573,
"old_node_scale_z": 0.545,
"new_node_scale_z": 1.0,
"rendered_height_mm": 0.55,
"laser_etch": {
"tris": 186,
"z_mm": [
0.3356,
0.4494
]
},
"lens_material": {
"name": "lens_green",
"baseColor_linear": [
0.0886,
0.5536,
0.2418,
1
],
"replaced": "lens_green",
"old_baseColor": [
0.06,
0.42,
0.14,
1
]
}
}
}
},
"animation_fix": "2026-09-30: the pick-and-place insertion animation (sampler keyframe accessors) is carried over unchanged; the earlier rebuilds of this pass had dropped those accessors, leaving the animation pointing at geometry data",
"z_stretch": "none any more: the STEP is datasheet-true, the LED node Z scale is 1; the LED_lit glow skin sits 2 um above the lens top"
},
"hero_glb": {
"file": "in-s63btg-hero.glb",
"sha256": "f2d501f994e6c2605af8fb9a83f9675d7f1e80f8f342d2397f27b157873474f6",
"bytes": 34964,
"built_like": "john/eee-fk1v470p hero (component-reference-overlay.py + finalize.py); the side MPN mark is the Adom.LaserEtch.MPN node (finalize.py etch_rgb match)",
"base": "step2glb convert of IN-S63BTG.step, no Z scale (the STEP is datasheet-true, 0.55 mm)",
"footprint": {
"file": "IN-S63BTG.kicad_mod",
"sha256": "46504c39bb90b7135a820eeea8cbe7e8fcc75d70ca7a7658711c6d0b8856d804",
"note": "the page's current footprint, with the cathode silkscreen bracket on pad 1 (K)"
},
"overlay_report": {
"font_file": "JetBrainsMono-Regular.ttf",
"font_sha256": "c1bfaf2ccf7c56dc25af0cc595c4c6a064a8ebf88930d4543805a9d90692e581",
"generator_sha256": "aad792e4550350dc175c098711cc77e6574a2b1191191bcf57865fa882580e18",
"source_glb_sha256": "b7fa7aa7f0af37c7c19ed12dc4fa44152324d473ff40fd6235098be851565a65",
"footprint_sha256": "46504c39bb90b7135a820eeea8cbe7e8fcc75d70ca7a7658711c6d0b8856d804",
"derivative_sha256": "c2cde704e1b212c2b68d9ee1f8b8830c735d582d364215037a97fbff64137880",
"manufacturer_geometry_buffer_prefix_unchanged": true,
"units": "metre",
"upAxis": "Z",
"plane_z_mm": -0.02,
"pad_outline": "copper perimeter, not solder mask or paste",
"dash_mm": 0.07,
"gap_mm": 0.045,
"silkscreen_path_count": 3,
"silkscreen_opacity": 0.3,
"pad_outline_opacity": 0.5,
"pad_outline_color": "teal #00E6DC",
"uninstantiated_reference_placeholder": "omitted from component display",
"pad_name_opacity": 0.5,
"pad_label_height_mm": 0.25,
"pad_names": "signal names resolved through canonical pin-to-pad mapping; active-low overbars preserved",
"library_sha256": "ffd9a10a71560e664cfc3fffa05ba7f2aabf38ee4a5e9f7d6067061f5f0b6ab0",
"pads": [
{
"number": "1",
"drill_boundary_drawn": false,
"signal_name": "K",
"display_name": "K",
"pad_number_fallback": false,
"active_low_overbar": false,
"center_mm": [
-0.8,
-0.0
],
"copper_size_mm": [
0.9,
1.0
],
"copper_outline_bounds_mm": [
[
-1.25,
-0.5
],
[
-0.35000000000000003,
0.5
]
],
"label_position_mm": [
-1.6566666666666667,
-0.0
]
},
{
"number": "2",
"drill_boundary_drawn": false,
"signal_name": "A",
"display_name": "A",
"pad_number_fallback": false,
"active_low_overbar": false,
"center_mm": [
0.8,
-0.0
],
"copper_size_mm": [
0.9,
1.0
],
"copper_outline_bounds_mm": [
[
0.35000000000000003,
-0.5
],
[
1.25,
0.5
]
],
"label_position_mm": [
1.6533333333333333,
-0.0
]
}
],
"overlay_nodes": 3,
"limitations": [
"Nonphysical reference lines, not a manufacturing layer or manufacturer STEP geometry.",
"Silkscreen text follows source text/placement but uses the supplied display font.",
"Physical body can occlude artwork on the seating plane; inspect underside or hide the body."
]
},
"finalize_spec": {
"component_label": "IN-S63BTG (coloured model)",
"component_tooltip": "IN-S63BTG\nGreen lens colour (dominant wavelength 527 nm); the real lens is clear",
"label_tooltip": "Pad labels (signal names)\nreference art, not part of the component",
"tooltips": {
"IN-S63BTG (STEP body)": "IN-S63BTG\nGreen lens colour (dominant wavelength 527 nm); the real lens is clear"
},
"asset_extras": {
"adomHero": {
"mpn": "IN-S63BTG",
"kind": "component + footprint reference art",
"board_use": false
}
}
}
},
"hero_png": {
"file": "screenshots/hero.png",
"sha256": "977f7c0c5f29d0b42b03ca3609009d01a80aede3545b93db659786e1f3cc333f",
"template": "hero-proposals/_tools/hero_template.html (Ray layout, shared with the other basic-part heroes), LED copy tools/hero_template_led.html (optional lens-reflection control only)",
"render": {
"glb": "/work/IN-S63BTG.hero-base.glb",
"dir": [
-0.9,
-1.3,
1.1
],
"dist": 7.6,
"title": "Green SMD LED 0603",
"mpn": "IN-S63BTG",
"cat": "0603 SMD Green LED · 3.2 V drop · 25 mA max",
"mfr": "Inolux Corporation • 0603",
"pill": "ADOM BASIC PART",
"foot": "Manufacturer datasheet · KiCad library CAD, coloured lens · virtual MPN mark on the side · Adom Wiki",
"lens": "#54C487",
"emis": 0.0,
"lensEnv": 0.25,
"noToneMap": false,
"exposure": 0.62
},
"before": "../before/in-s63btg/before-hero.png (outside the page copy)"
},
"laser_etch": {
"date": "2026-09-30",
"request": "John: MPN laser etch on every component page; on LEDs on the side so it does not ruin the LED window",
"tool": "adom-aiflow etch_part.py --face side (tools/ in this folder), adom-chip-laser service POST /etch (0.1.0)",
"text": "IN-S63BTG",
"face": "side -Y (seating frame), the lens/body band above the PCB substrate; the top window is clear",
"side_face_region_mm_in_turned_frame": [
-0.5000001,
-0.040000100000000094,
0.5000001,
0.2750001
],
"frac": 0.8135,
"font_mm": 0.151,
"mark_rgb_linear": [
0.012,
0.012,
0.012
],
"mark_colour_reason": "auto: dark on the lens colour by contrast ratio",
"fits": [
{
"frac": 0.55,
"fontMm": 0.102,
"mark_mm": [
0.5355,
0.077
],
"region_mm": [
1.0,
0.315
],
"scale_to_fill": 1.494,
"moved_mm": [
-0.0018,
0.1157
],
"mark_region": [
-0.2677,
0.079,
0.2677,
0.156
]
},
{
"frac": 0.8135,
"fontMm": 0.151,
"mark_mm": [
0.792,
0.1139
],
"region_mm": [
1.0,
0.315
],
"scale_to_fill": 1.0101,
"moved_mm": [
-0.0026,
0.1148
],
"mark_region": [
-0.396,
0.0605,
0.396,
0.1745
]
}
],
"checks": [
"mark bbox inside the side face band (asserted by etch_part.py)",
"seated on the real surface under the text (seat_mark.py, 5 um lift)",
"original model frame kept (bbox unchanged); the uncoloured STEP untouched"
],
"in_glbs": "separate node Adom.LaserEtch.MPN, child of the LED node with the inverse Z scale, so glyph height is true while the body is scaled to the datasheet height",
"limitations": [
"virtual identification mark; the real part is unmarked"
]
},
"height": {
"date": "2026-09-30",
"datasheet": "IN-S63BT series (2022-03-10) p.1, Figure 2 package dimensions: 0.55 mm overall height (0.19 mm PCB base); the features list rounds it to \"0603 0.6mm\"",
"step_height_before_mm": 1.1,
"step_height_after_mm": 0.55,
"z_scale": 0.5,
"method": "xcaf_scale_axis.py: the originally shipped KiCad model scaled in Z only about the seating plane (BRepBuilderAPI_GTransform per shape through XCAF; names, part and face colours kept), then coloured and side-etched again so the glyphs are not stretched",
"kicad_original": {
"file": "provenance/IN-S63BTG-kicad-original.step",
"sha256": "98343205ec260ec165026ba2d44329a23096779ac36c553ea84aa7b370242e6d",
"note": "the file this page shipped before the colour pass, byte for byte"
}
}
}