

With a hexagonal grid, you can take large triangular sections and fit 6 of these sections together seamlessly. But, for tiling an icosahedron or sphere, it seems useful to fit 5 of these sections together. It's possible to slightly warp the hex grid to make the triangular sections 72 degrees each at the corner where the 5 meet.
The problem is that the hexagons don't match at the seams. You can easily make 4 of the seams match the color pattern, but the 5th seam will be wrong. However, this can be fixed! (And in a rotationally symmetric way, with colors being permuted). You can make each seam nearly match the pattern of the two triangles it separates, so that only two adjacent colors are swapped. Then, in the dual graph, simply delete some edges along the seam to resolve conflicts. This introduces some sizing constraints along the seam, but there is still some flexibility.
Below are the dual graph (white arrows correspond to edges that must be curved) and graph (black lines indicate that the edge/diagonal must have unit length).



Cool, limiting the rigid EDs seems to work great. The first graph I got was unstable, but the simulator likes this second one! So, that's great news for a solution existing.
The SAT formula has 485708 clauses, so I'm not sure how much bigger I can make the "template". The template is the left image, but with all triangles.
The SAT rules allow freedom to pick colors, and delete edges in the template. BUT, the solver isn't allowed to delete consecutive edges (from the perspective of a vertex in the template). This simplifies the SAT formula and doesn't seem too useful anyways.
Our manual attempts used a template with fewer vertices, so that can be something to try.
sphere radius = 9.5
a = (√5 - 1)/4 = 0.30901699437
b = .5
c = (√5 + 1)/4 = 0.80901699437
| a b c|
m0 = |-b c -a|
|-c -a b|
| 1 0 0|
m1 = | 0 -1 0|
| 0 0 -1|
|-1 0 0|
m2 = | 0 -1 0|
| 0 0 1|
|-b -c -a|
m3 = | c -a -b|
| a -b c|
M = m3^{0,1,2} * m2^{0,1} * m1^{0,1} * m0^{0,1,2,3,4} (60 matrices)
0: -3.775502479886 -0.057755691602 -8.717353113443
1: -4.115594485945 -0.540276579254 -8.545173096267
2: -4.636369962558 -0.326640417681 -8.285371422443
3: -3.389649875341 -0.205518565223 -8.872318515583
4: -3.424607719004 -0.712025969777 -8.832614617954
5: -3.917713528010 -0.858587611227 -8.611872504066
6: -2.527022643533 -0.437393706490 -9.147286116909
7: -2.872030488212 -1.040381501783 -8.995501498278
8: -3.242768502831 -1.060915707624 -8.866166606734
9: -3.036074193596 -0.105570809550 -9.001172606675
10: -1.975053504086 -0.874316210924 -9.251201804053
11: -2.197460459890 -1.370901829389 -9.140120114167
12: -2.702599970790 -1.398290466226 -8.999485383617
13: -2.478290418082 -0.447511031765 -9.160120658599
14: -1.315245616588 -1.164806721767 -9.336131654437
15: -1.565987228982 -1.774423749588 -9.200494788628
16: -2.079581675235 -1.749000684638 -9.103094894659
17: -1.650929244381 -0.881843043715 -9.313795438826
18: -3.745985055863 0.522144094227 -8.714640641249
19: -2.945159086021 0.408386212935 -9.022707944908
20: -3.223906287806 0.755140498571 -8.904279368644
21: -2.159940393296 -0.093573522135 -9.250724376683
22: -2.311081892314 0.537647410998 -9.198904051487
23: -1.520648006529 -0.317683875115 -9.372123910605
24: -1.648306545055 0.034256320852 -9.355849081618
25: -0.769955002642 -0.453791807837 -9.457866688056
26: -0.952513372773 -1.128255863250 -9.384548842738
27: -1.037573972589 -0.220304171877 -9.440598832874
28: -3.189080866314 0.913118148957 -8.902021033123
29: -2.778580421177 1.393358312113 -8.977084351677
30: -1.626256731648 0.538709203262 -9.344253926188
31: -2.005431752708 0.820657483870 -9.249581870517
32: -1.079758640714 0.485942813779 -9.425920690285
33: -0.226589771619 -0.030792491646 -9.497247437961
34: -0.600738708153 -0.390601155144 -9.472937439999
35: -0.388709862990 0.422179192564 -9.482650967519
36: -1.897684831964 1.034006173411 -9.250925548932
37: -2.396344206321 1.525023883788 -9.065419824735
38: -1.084041687873 1.093046820461 -9.374438770787
39: -1.450767159590 1.368917898479 -9.288236562226
40: -0.149288985120 0.850661057040 -9.460660049117
41: -0.628441712052 1.377052825729 -9.378634577043
42: 0.051338519746 0.875636556901 -9.459419906982
43: -2.048391466278 1.993586747350 -9.059785001956
44: -1.476955960123 1.854550524543 -9.199415385978
45: -1.687565110410 1.994324838359 -9.133717339464
46: -0.525125607650 1.638718292095 -9.342849964296
47: -0.829735822405 2.040490441277 -9.241100433610
48: 0.241523070694 1.289536413656 -9.408972443587
49: -0.116219713083 1.731325939410 -9.340182196821
50: 0.748898830968 1.364198888912 -9.371665376680
51: -1.524059351148 2.696465575844 -8.980886175232
52: -1.822191295133 2.933250571571 -8.850178527483
53: -0.796420429437 2.425225267159 -9.150628224505
54: -1.058281062994 2.736571199776 -9.035553068864
55: 0.106446495132 2.109436692428 -9.262232235499
56: -0.257406614078 2.546863687641 -9.148618867983
57: 0.738572833116 1.936537421595 -9.271155968106
58: 0.433019226446 2.242547778909 -9.221359650769
59: -0.883379115332 3.245577013054 -8.884586157550
60: -0.127559401664 2.981005495815 -9.019275737717
61: -0.462834052749 3.319859645624 -8.888999750983did you ever work out how many stitches per edge you need to go up to before those ranges start to overlap




Starting with an icosahedron to tile, assign 6 colors to the 12 icovertices. Each pair of diametrically opposite icovertices get the same color. The 7th color, cyan, is unused here. These colors aren't directly used, but only control how colors will get permuted.
Now, all tiles placed will have 60 copies, following icosahedronic symmetry. Colors for the copies are relative to the chosen icovertex colors.
We want each face of the icosahedron to have a honeycomb pattern of tiles. We only have freedom to play on one icoface, and the others will be forced.
In the above image, the isolated red, blue, and yellow dots correspond to icovertices of those colors. It so happens that only 2 different honeycomb pattern permutations are possible. (One of them is shown above)
We can change the offset of the honeycomb pattern. For now, let's choose a red dot in the hex pattern to go to the red icovertex (which is the case in the above image). Now, let's pick a blue vertex to assign to the blue icovertex.Let's say we pick this oneNow, we really only care about two of these hex patterns and how they'll map here:The two hex patterns must have a seam between them, and that seam must be symmetrical.Now I just rotated the image and adjusted the position of the seam between the two hex patters, so that it's halfway between the blue and red vertex.
Now all the dual graph vertices on the icosahedron (or the tiles of the Goldberg polyhedron) are defined and colored. Just the edges near the blue/red vertices may need special handling.
If the blue/red vertex distance is very small, then this structure doesn't make too much sense, but following it approximately can still give very nice results.

























