Read this first, then the lessons page (/lessons). Be token-efficient. The owner presses Start. The bot never does.
* means unsaved changes. Ask the owner before discarding them, unless the owner names that project to discard.ps + awk and kill only that PID. Never pkill -f, because it can match other processes.nohup setsid lightburn <file> &) so it survives the shell.coins/ coin jobs (recovery, brass, lion_portrait, ...). The bot's work goes in grok/ subfolders.washers/ washer designs and colour tests.colortest/ colour calibration (ss245_rgb/ = 8-face RGB tester).tools/ scripts (below). libraries/ LightBurn libraries (grok/HD_fill_black.clb).calibration/ galvo and colour calibration kits. pre55/ backups from before the 55,55 recentre and old ss245 outputs.LASER_LESSONS.md (lessons, read before every job), INDEX.md / MANIFEST.csv (file index).recenter55.py recentres projects from 63,63 to 55,55 (keeps <name>.pre55.lbrn2). --dry audits without writing.to_ss245.py <file|folder> makes <name>_ss245.lbrn2 (24.5 mm polished stainless, centre 55,55, colours from the palette, deep stacks collapsed into one layer per colour). --map PATTERN=key overrides a role. --hd-black writes *_ss245_hdblack.lbrn2.est_time.py <files> gives a rough burn time (filled area / interval / speed x passes x crosshatch + 15%).dump_layers.py <folder> writes a _LAYERS.txt for every .lbrn2.brass_rules.py apply() adds the brass CLEAN/POLISH layers idempotently.ss_color_palette.json holds the stainless colour presets plus verification status and observed large-area colours.gen_ss245_rgb.py (in colortest/ss245_rgb) regenerates the RGB tester and its plan CSV._LAYERS.txt and an output-off FRAME layer.Brass/copper deep engraving: insert a CLEAN (20 %, 1500 mm/s, 100 kHz, 200 ns, 0.01 x2, crosshatch) after every 5 deep passes. The LAST layer is a full-surface POLISH (18 %, 2000 mm/s, 350 kHz, 10 ns, 0.01). Never use these on stainless, polished or anodized pieces.
Black-field brass order: (1) deep engraving + CLEANs + POLISH; (2) BLACK on the field only (40 %, 500, 40 kHz, 200 ns, 0.02 x2, untested); (3) final LETTER CLEAN on the raised letters and rings only (brass CLEAN settings, x1).
Stainless colour = surface mark: use one lean layer per colour, with a separate layer for each shade. Never copy brass deep stacks.
- HD fill black (14 purple layers + 2 blue facets, ~130 min per coin, glossy black) is used only on purpose.
- For black fields, use 4 passes of the HD-black purple setting (15 %, 567, 280 kHz, 80 ns, 0.004, crosshatch x2, angles 0/45/90/135), about 14 min.
- The hard blacks (20 %/567 and 30 %/300/200 ns) spark and burn on fields. Keep them for small marks and lines.
- Big areas run hotter and paler than test cells. Keep colour tests at 30 % or less.
- Anodized aluminium black: 12 %, 1500 mm/s, 50 kHz, 0.045, 1 pass. Brass colours are unverified, so flag heat and cool between passes.
| Preset | Settings (crosshatch, x2) | Test cell | Large field (2026-10-15) | Mapping confidence |
|---|---|---|---|---|
| purple R1-0106 | 15 %, 567, 280 kHz, 80 ns, 0.004 | deep purple-black | lavender / light mauve | medium |
| deep blue R1-0805 | 7.5 %, 700, 119 kHz, 60 ns, 0.005 | deep blue | slate blue-grey | medium-low |
| blue R1-0904 | 15 %, 1200, 230 kHz, 60 ns, 0.005 | good blue | pale grey-green / silver | medium |
| black (washer) | 20 %, 567, 280 kHz, 80 ns, 0.004 | black | brown-black, sparks, avoid on fields | high |
| black lines | 30 %, 300, 50 kHz, 200 ns, 0.01 | dark lines | brown-black, sparks | high |
| gold R1-1202 | 48.4 %, 317, 61.5 kHz, 60 ns, 0.0287 | untested | never fired (layer was off) | n/a |
| Energy-density model: E = W / (speed x interval) J/mm², W = power% x 60 W. Dose = E x 2 (crosshatch) x passes. |
/rules/ — public rules tree. HTML pages live at /rules/<page>/; raw markdown at /rules/<path>.md; machine index at /rules/index.json./lessons — combined lessons HTML; raw combined dump at /lessons.md./color/ — MOPA colour grids and data (b4_measured.json, color_settings.json, rounds)./projectaddons/ — motorized Z / camera / Pi+Pico add-ons (older copy also at /workup/)./settings/ — material settings index; /tools/ — tools index./plates/ — colour calibration plates; public JSON at /api/materials, /api/plates, /api/cite (see Colour plates API). Unified browser on /color/ and /colors/; cite Plate 31, A8./srv/web/laserview.hankelsner.tech/rules-src/. Publish with laser-rules-build.sublayers[] (HD fill black = 16).cut_settings + each sub-layer. Site browsers show/filter/edit them (Hank-gated writes).GET /api/library.clb exports one Entry per colour with sibling CutSettings per sub-layer.managed by laser-rules-build (/opt/laser-rules/build.py) · source editable via SSH as grokbot in rules-src · /rules/ · /lessons