Software: pattern player, web page with a design library, GRBL tools

- python3 -m sandtable web: local web page to play designs from a library of
  27 built-in patterns, upload .thr or .svg, pause/skip/stop, jog and calibrate.
  Reconnects by itself when the USB cable comes back.
- Plays .thr files and built-in generators with an erase spiral between them,
  constant ball speed, host-side homing on stock GRBL 1.1 (Uno + CNC shield),
  FluidNC for the ESP32 board.
- Home switch guard: patterns never press the switch, so a press means lost
  steps and stops the machine at once with an alert.
- lineart.py turns SVG line drawings into one continuous path.
- Tests against a GRBL simulator.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ckochandClaude Opus 5.5 committed 2026-11-01 13:40:23 -05:00
1 parent 1400cc8afd
commit 95ad4d25de
52 files changed
+388117

No files matched your search

+892
View File
@@ -0,0 +1,892 @@
# sandtable generator test_f
0.00000 0.00000
2.67795 0.00000
2.67795 0.00399
2.67795 0.00799
2.67795 0.01198
2.67795 0.01597
2.67795 0.01996
2.67795 0.02396
2.67795 0.02795
2.67795 0.03194
2.67795 0.03594
2.67795 0.03993
2.67795 0.04392
2.67795 0.04792
2.67795 0.05191
2.67795 0.05590
2.67795 0.05989
2.67795 0.06389
2.67795 0.06788
2.67795 0.07187
2.67795 0.07587
2.67795 0.07986
2.67795 0.08385
2.67795 0.08785
2.67795 0.09184
2.67795 0.09583
2.67795 0.09982
2.67795 0.10382
2.67795 0.10781
2.67795 0.11180
2.67795 0.11580
2.67795 0.11979
2.67795 0.12378
2.67795 0.12778
2.67795 0.13177
2.67795 0.13576
2.67795 0.13975
2.67795 0.14375
2.67795 0.14774
2.67795 0.15173
2.67795 0.15573
2.67795 0.15972
2.67795 0.16371
2.67795 0.16771
2.67795 0.17170
2.67795 0.17569
2.67795 0.17968
2.67795 0.18368
2.67795 0.18767
2.67795 0.19166
2.67795 0.19566
2.67795 0.19965
2.67795 0.20364
2.67795 0.20763
2.67795 0.21163
2.67795 0.21562
2.67795 0.21961
2.67795 0.22361
2.66207 0.22542
2.64646 0.22730
2.63110 0.22922
2.61601 0.23121
2.60117 0.23324
2.58660 0.23532
2.57228 0.23745
2.55822 0.23963
2.54442 0.24186
2.53087 0.24413
2.51757 0.24645
2.50452 0.24881
2.49172 0.25121
2.47917 0.25365
2.46685 0.25612
2.45478 0.25864
2.44293 0.26120
2.43132 0.26379
2.41994 0.26641
2.40878 0.26907
2.39784 0.27176
2.38711 0.27449
2.37660 0.27724
2.36630 0.28003
2.35619 0.28284
2.34629 0.28569
2.33659 0.28856
2.32708 0.29145
2.31775 0.29437
2.30861 0.29732
2.29965 0.30029
2.29087 0.30329
2.28226 0.30631
2.27381 0.30935
2.26553 0.31241
2.25742 0.31549
2.24946 0.31860
2.24165 0.32172
2.23400 0.32486
2.22649 0.32802
2.21913 0.33120
2.21191 0.33440
2.20482 0.33762
2.19787 0.34085
2.19105 0.34409
2.18435 0.34736
2.17778 0.35063
2.17134 0.35393
2.16501 0.35723
2.15880 0.36056
2.15270 0.36389
2.14671 0.36724
2.14084 0.37060
2.13506 0.37397
2.12940 0.37736
2.12383 0.38076
2.11836 0.38417
2.11299 0.38759
2.10771 0.39102
2.10252 0.39446
2.09742 0.39791
2.09241 0.40138
2.08749 0.40485
2.08265 0.40833
2.07789 0.41183
2.07322 0.41533
2.06862 0.41884
2.06410 0.42236
2.05965 0.42588
2.05527 0.42942
2.05097 0.43296
2.04674 0.43651
2.04257 0.44007
2.03848 0.44364
2.03444 0.44721
2.03048 0.45079
2.02657 0.45438
2.02273 0.45798
2.01894 0.46158
2.01522 0.46519
2.01155 0.46880
2.00793 0.47242
2.00438 0.47605
2.00087 0.47968
1.99742 0.48332
1.99402 0.48697
1.99068 0.49062
1.98738 0.49427
1.98413 0.49793
1.98092 0.50160
1.97777 0.50527
1.97466 0.50894
1.97159 0.51262
1.96857 0.51631
1.96559 0.52000
1.96265 0.52369
1.95975 0.52739
1.95690 0.53110
1.95408 0.53480
1.95130 0.53852
1.94856 0.54223
1.94586 0.54595
1.94319 0.54968
1.94056 0.55340
1.93797 0.55714
1.93541 0.56087
1.93288 0.56461
1.93039 0.56835
1.92793 0.57210
1.92550 0.57585
1.92311 0.57960
1.92074 0.58336
1.91840 0.58711
1.91610 0.59088
1.91382 0.59464
1.91157 0.59841
1.90935 0.60218
1.90716 0.60596
1.90499 0.60973
1.90286 0.61351
1.90074 0.61730
1.89866 0.62108
1.89660 0.62487
1.89456 0.62866
1.89255 0.63246
1.89056 0.63625
1.88859 0.64005
1.88665 0.64385
1.88473 0.64765
1.88284 0.65146
1.88096 0.65527
1.87911 0.65908
1.87728 0.66289
1.87547 0.66671
1.87368 0.67052
1.87191 0.67434
1.87016 0.67816
1.86843 0.68199
1.86672 0.68581
1.86503 0.68964
1.86336 0.69347
1.86170 0.69730
1.86007 0.70113
1.85845 0.70497
1.85685 0.70880
1.85526 0.71264
1.85370 0.71648
1.85215 0.72032
1.85061 0.72417
1.84910 0.72801
1.84759 0.73186
1.84611 0.73571
1.84464 0.73956
1.84318 0.74341
1.84174 0.74726
1.84032 0.75112
1.83891 0.75497
1.83751 0.75883
1.83613 0.76269
1.83476 0.76655
1.83341 0.77041
1.83206 0.77428
1.83074 0.77814
1.82942 0.78201
1.82812 0.78588
1.82683 0.78974
1.82555 0.79361
1.82429 0.79749
1.82304 0.80136
1.82180 0.80523
1.82057 0.80911
1.81935 0.81298
1.81815 0.81686
1.81696 0.82074
1.81577 0.82462
1.81106 0.82366
1.80634 0.82272
1.80161 0.82179
1.79686 0.82089
1.79211 0.82000
1.78735 0.81913
1.78257 0.81828
1.77779 0.81745
1.77299 0.81664
1.76819 0.81584
1.76338 0.81507
1.75856 0.81431
1.75373 0.81357
1.74889 0.81286
1.74404 0.81216
1.73919 0.81148
1.73432 0.81082
1.72945 0.81018
1.72457 0.80955
1.71969 0.80895
1.71479 0.80837
1.70989 0.80780
1.70499 0.80726
1.70007 0.80673
1.69515 0.80623
1.69023 0.80574
1.68529 0.80527
1.68036 0.80483
1.67541 0.80440
1.67046 0.80399
1.66551 0.80360
1.66055 0.80323
1.65559 0.80288
1.65063 0.80256
1.64566 0.80225
1.64068 0.80196
1.63571 0.80169
1.63072 0.80144
1.62574 0.80121
1.62075 0.80100
1.61577 0.80081
1.61078 0.80064
1.60578 0.80049
1.60079 0.80036
1.59579 0.80025
1.59079 0.80016
1.58580 0.80009
1.58080 0.80004
1.57580 0.80001
1.57080 0.80000
1.56580 0.80001
1.56080 0.80004
1.55580 0.80009
1.55080 0.80016
1.54580 0.80025
1.54081 0.80036
1.53581 0.80049
1.53082 0.80064
1.52583 0.80081
1.52084 0.80100
1.51585 0.80121
1.51087 0.80144
1.50589 0.80169
1.50091 0.80196
1.49594 0.80225
1.49097 0.80256
1.48600 0.80288
1.48104 0.80323
1.47608 0.80360
1.47113 0.80399
1.46618 0.80440
1.46124 0.80483
1.45630 0.80527
1.45137 0.80574
1.44644 0.80623
1.44152 0.80673
1.43661 0.80726
1.43170 0.80780
1.42680 0.80837
1.42191 0.80895
1.41702 0.80955
1.41214 0.81018
1.40727 0.81082
1.40241 0.81148
1.39755 0.81216
1.39270 0.81286
1.38786 0.81357
1.38303 0.81431
1.37821 0.81507
1.37340 0.81584
1.36860 0.81664
1.36380 0.81745
1.35902 0.81828
1.35425 0.81913
1.34948 0.82000
1.34473 0.82089
1.33998 0.82179
1.33525 0.82272
1.33053 0.82366
1.32582 0.82462
1.32112 0.82560
1.31643 0.82660
1.31175 0.82761
1.30708 0.82865
1.30243 0.82970
1.29779 0.83077
1.29316 0.83186
1.28854 0.83296
1.28393 0.83408
1.27934 0.83522
1.27476 0.83638
1.27019 0.83756
1.26564 0.83875
1.26109 0.83996
1.25656 0.84119
1.25205 0.84243
1.24755 0.84370
1.24306 0.84498
1.23858 0.84627
1.23412 0.84758
1.22967 0.84891
1.22524 0.85026
1.22082 0.85162
1.21642 0.85300
1.21203 0.85440
1.21642 0.85300
1.22082 0.85162
1.22524 0.85026
1.22967 0.84891
1.23412 0.84758
1.23858 0.84627
1.24306 0.84498
1.24755 0.84370
1.25205 0.84243
1.25656 0.84119
1.26109 0.83996
1.26564 0.83875
1.27019 0.83756
1.27476 0.83638
1.27934 0.83522
1.28393 0.83408
1.28854 0.83296
1.29316 0.83186
1.29779 0.83077
1.30243 0.82970
1.30708 0.82865
1.31175 0.82761
1.31643 0.82660
1.32112 0.82560
1.32582 0.82462
1.33053 0.82366
1.33525 0.82272
1.33998 0.82179
1.34473 0.82089
1.34948 0.82000
1.35425 0.81913
1.35902 0.81828
1.36380 0.81745
1.36860 0.81664
1.37340 0.81584
1.37821 0.81507
1.38303 0.81431
1.38786 0.81357
1.39270 0.81286
1.39755 0.81216
1.40241 0.81148
1.40727 0.81082
1.41214 0.81018
1.41702 0.80955
1.42191 0.80895
1.42680 0.80837
1.43170 0.80780
1.43661 0.80726
1.44152 0.80673
1.44644 0.80623
1.45137 0.80574
1.45630 0.80527
1.46124 0.80483
1.46618 0.80440
1.47113 0.80399
1.47608 0.80360
1.48104 0.80323
1.48600 0.80288
1.49097 0.80256
1.49594 0.80225
1.50091 0.80196
1.50589 0.80169
1.51087 0.80144
1.51585 0.80121
1.52084 0.80100
1.52583 0.80081
1.53082 0.80064
1.53581 0.80049
1.54081 0.80036
1.54580 0.80025
1.55080 0.80016
1.55580 0.80009
1.56080 0.80004
1.56580 0.80001
1.57080 0.80000
1.57580 0.80001
1.58080 0.80004
1.58580 0.80009
1.59079 0.80016
1.59579 0.80025
1.60079 0.80036
1.60578 0.80049
1.61078 0.80064
1.61577 0.80081
1.62075 0.80100
1.62574 0.80121
1.63072 0.80144
1.63571 0.80169
1.64068 0.80196
1.64566 0.80225
1.65063 0.80256
1.65559 0.80288
1.66055 0.80323
1.66551 0.80360
1.67046 0.80399
1.67541 0.80440
1.68036 0.80483
1.68529 0.80527
1.69023 0.80574
1.69515 0.80623
1.70007 0.80673
1.70499 0.80726
1.70989 0.80780
1.71479 0.80837
1.71969 0.80895
1.72457 0.80955
1.72945 0.81018
1.73432 0.81082
1.73919 0.81148
1.74404 0.81216
1.74889 0.81286
1.75373 0.81357
1.75856 0.81431
1.76338 0.81507
1.76819 0.81584
1.77299 0.81664
1.77779 0.81745
1.78257 0.81828
1.78735 0.81913
1.79211 0.82000
1.79686 0.82089
1.80161 0.82179
1.80634 0.82272
1.81106 0.82366
1.81577 0.82462
1.81695 0.82076
1.81814 0.81691
1.81933 0.81305
1.82054 0.80920
1.82176 0.80534
1.82300 0.80149
1.82424 0.79764
1.82550 0.79379
1.82677 0.78994
1.82805 0.78610
1.82934 0.78225
1.83065 0.77840
1.83197 0.77456
1.83330 0.77072
1.83464 0.76688
1.83600 0.76304
1.83738 0.75920
1.83876 0.75537
1.84016 0.75153
1.84158 0.74770
1.84301 0.74387
1.84446 0.74004
1.84592 0.73621
1.84739 0.73238
1.84888 0.72856
1.85039 0.72473
1.85191 0.72091
1.85345 0.71709
1.85500 0.71327
1.85658 0.70946
1.85817 0.70564
1.85977 0.70183
1.86140 0.69802
1.86304 0.69421
1.86470 0.69040
1.86637 0.68659
1.86807 0.68279
1.86979 0.67899
1.87152 0.67519
1.87328 0.67139
1.87505 0.66759
1.87685 0.66380
1.87866 0.66001
1.88050 0.65622
1.88236 0.65243
1.88424 0.64865
1.88614 0.64487
1.88806 0.64109
1.89001 0.63731
1.89198 0.63353
1.89397 0.62976
1.89599 0.62599
1.89803 0.62222
1.90010 0.61846
1.90219 0.61470
1.90431 0.61094
1.90646 0.60718
1.90863 0.60343
1.91082 0.59968
1.91305 0.59593
1.91530 0.59218
1.91759 0.58844
1.91990 0.58470
1.92224 0.58097
1.92461 0.57723
1.92702 0.57350
1.92945 0.56978
1.93192 0.56606
1.93442 0.56234
1.93695 0.55862
1.93951 0.55491
1.94211 0.55120
1.94475 0.54750
1.94742 0.54380
1.95013 0.54010
1.95288 0.53641
1.95566 0.53272
1.95848 0.52903
1.96134 0.52535
1.96425 0.52168
1.96719 0.51801
1.97018 0.51434
1.97320 0.51068
1.97628 0.50702
1.97939 0.50337
1.98256 0.49972
1.98576 0.49608
1.98902 0.49244
1.98162 0.49084
1.97416 0.48927
1.96666 0.48772
1.95912 0.48620
1.95152 0.48471
1.94388 0.48324
1.93619 0.48181
1.92846 0.48040
1.92068 0.47902
1.91286 0.47767
1.90499 0.47635
1.89709 0.47507
1.88913 0.47381
1.88114 0.47258
1.87311 0.47138
1.86503 0.47021
1.85692 0.46907
1.84876 0.46796
1.84057 0.46689
1.83234 0.46584
1.82408 0.46483
1.81577 0.46385
1.80744 0.46290
1.79907 0.46198
1.79067 0.46110
1.78223 0.46025
1.77377 0.45943
1.76528 0.45865
1.75675 0.45789
1.74820 0.45718
1.73963 0.45649
1.73103 0.45584
1.72240 0.45522
1.71375 0.45464
1.70508 0.45409
1.69639 0.45357
1.68769 0.45309
1.67896 0.45265
1.67021 0.45223
1.66146 0.45186
1.65268 0.45151
1.64390 0.45121
1.63510 0.45093
1.62629 0.45069
1.61748 0.45049
1.60866 0.45032
1.59983 0.45019
1.59100 0.45009
1.58216 0.45003
1.57332 0.45000
1.56448 0.45001
1.55565 0.45005
1.54681 0.45013
1.53798 0.45024
1.52915 0.45039
1.52033 0.45057
1.51152 0.45079
1.50272 0.45104
1.49393 0.45133
1.48515 0.45166
1.47638 0.45201
1.46763 0.45241
1.45889 0.45283
1.45017 0.45329
1.44147 0.45379
1.43279 0.45432
1.42413 0.45488
1.41549 0.45548
1.40688 0.45611
1.39829 0.45678
1.38972 0.45748
1.38118 0.45821
1.37267 0.45898
1.36419 0.45978
1.35574 0.46061
1.34732 0.46148
1.33893 0.46237
1.33058 0.46330
1.32226 0.46427
1.31397 0.46526
1.30572 0.46629
1.29751 0.46734
1.28933 0.46843
1.28119 0.46955
1.27310 0.47070
1.26504 0.47189
1.25702 0.47310
1.24905 0.47434
1.25702 0.47310
1.26504 0.47189
1.27310 0.47070
1.28119 0.46955
1.28933 0.46843
1.29751 0.46734
1.30572 0.46629
1.31397 0.46526
1.32226 0.46427
1.33058 0.46330
1.33893 0.46237
1.34732 0.46148
1.35574 0.46061
1.36419 0.45978
1.37267 0.45898
1.38118 0.45821
1.38972 0.45748
1.39829 0.45678
1.40688 0.45611
1.41549 0.45548
1.42413 0.45488
1.43279 0.45432
1.44147 0.45379
1.45017 0.45329
1.45889 0.45283
1.46763 0.45241
1.47638 0.45201
1.48515 0.45166
1.49393 0.45133
1.50272 0.45104
1.51152 0.45079
1.52033 0.45057
1.52915 0.45039
1.53798 0.45024
1.54681 0.45013
1.55565 0.45005
1.56448 0.45001
1.57332 0.45000
1.58216 0.45003
1.59100 0.45009
1.59983 0.45019
1.60866 0.45032
1.61748 0.45049
1.62629 0.45069
1.63510 0.45093
1.64390 0.45121
1.65268 0.45151
1.66146 0.45186
1.67021 0.45223
1.67896 0.45265
1.68769 0.45309
1.69639 0.45357
1.70508 0.45409
1.71375 0.45464
1.72240 0.45522
1.73103 0.45584
1.73963 0.45649
1.74820 0.45718
1.75675 0.45789
1.76528 0.45865
1.77377 0.45943
1.78223 0.46025
1.79067 0.46110
1.79907 0.46198
1.80744 0.46290
1.81577 0.46385
1.82408 0.46483
1.83234 0.46584
1.84057 0.46689
1.84876 0.46796
1.85692 0.46907
1.86503 0.47021
1.87311 0.47138
1.88114 0.47258
1.88913 0.47381
1.89709 0.47507
1.90499 0.47635
1.91286 0.47767
1.92068 0.47902
1.92846 0.48040
1.93619 0.48181
1.94388 0.48324
1.95152 0.48471
1.95912 0.48620
1.96666 0.48772
1.97416 0.48927
1.98162 0.49084
1.98902 0.49244
1.99233 0.48881
1.99568 0.48518
1.99908 0.48156
2.00254 0.47795
2.00605 0.47434
2.00961 0.47074
2.01323 0.46714
2.01690 0.46355
2.02063 0.45996
2.02442 0.45638
2.02827 0.45281
2.03218 0.44925
2.03615 0.44569
2.04019 0.44214
2.04429 0.43860
2.04846 0.43506
2.05270 0.43153
2.05701 0.42801
2.06138 0.42450
2.06583 0.42099
2.07036 0.41750
2.07496 0.41401
2.07964 0.41053
2.08440 0.40707
2.08924 0.40361
2.09417 0.40016
2.09918 0.39672
2.10428 0.39329
2.10947 0.38987
2.11475 0.38646
2.12012 0.38306
2.12559 0.37967
2.13116 0.37630
2.13682 0.37294
2.14260 0.36959
2.14847 0.36625
2.15446 0.36292
2.16055 0.35961
2.16676 0.35631
2.17308 0.35303
2.17953 0.34976
2.18609 0.34650
2.19278 0.34326
2.19959 0.34004
2.20654 0.33683
2.21362 0.33364
2.22083 0.33046
2.22819 0.32730
2.23568 0.32417
2.24333 0.32104
2.25112 0.31794
2.25907 0.31486
2.26717 0.31180
2.27543 0.30876
2.28386 0.30574
2.29245 0.30274
2.30122 0.29977
2.31016 0.29682
2.31928 0.29389
2.32858 0.29099
2.33807 0.28811
2.34774 0.28526
2.35762 0.28244
2.36769 0.27965
2.37796 0.27688
2.38844 0.27415
2.39913 0.27144
2.41003 0.26877
2.42116 0.26613
2.43250 0.26352
2.44407 0.26095
2.45586 0.25841
2.46789 0.25591
2.48016 0.25345
2.49266 0.25103
2.50540 0.24864
2.51839 0.24630
2.53163 0.24400
2.54512 0.24174
2.55885 0.23953
2.57284 0.23737
2.58709 0.23525
2.60159 0.23318
2.61635 0.23116
2.63136 0.22919
2.64664 0.22728
2.66216 0.22541
2.67795 0.22361
2.67795 0.21961
2.67795 0.21562
2.67795 0.21163
2.67795 0.20763
2.67795 0.20364
2.67795 0.19965
2.67795 0.19566
2.67795 0.19166
2.67795 0.18767
2.67795 0.18368
2.67795 0.17968
2.67795 0.17569
2.67795 0.17170
2.67795 0.16771
2.67795 0.16371
2.67795 0.15972
2.67795 0.15573
2.67795 0.15173
2.67795 0.14774
2.67795 0.14375
2.67795 0.13975
2.67795 0.13576
2.67795 0.13177
2.67795 0.12778
2.67795 0.12378
2.67795 0.11979
2.67795 0.11580
2.67795 0.11180
2.67795 0.10781
2.67795 0.10382
2.67795 0.09982
2.67795 0.09583
2.67795 0.09184
2.67795 0.08785
2.67795 0.08385
2.67795 0.07986
2.67795 0.07587
2.67795 0.07187
2.67795 0.06788
2.67795 0.06389
2.67795 0.05989
2.67795 0.05590
2.67795 0.05191
2.67795 0.04792
2.67795 0.04392
2.67795 0.03993
2.67795 0.03594
2.67795 0.03194
2.67795 0.02795
2.67795 0.02396
2.67795 0.01996
2.67795 0.01597
2.67795 0.01198
2.67795 0.00799
2.67795 0.00399
2.67795 0.00000