aboutsummaryrefslogtreecommitdiff
path: root/src/speedcubing
diff options
context:
space:
mode:
Diffstat (limited to 'src/speedcubing')
-rw-r--r--src/speedcubing/figure-it-out/comm1.svg39
-rw-r--r--src/speedcubing/figure-it-out/comm2.svg39
-rw-r--r--src/speedcubing/figure-it-out/disassembled.jpgbin0 -> 61521 bytes
-rw-r--r--src/speedcubing/figure-it-out/edgecomm.svg39
-rw-r--r--src/speedcubing/figure-it-out/face.svg39
-rw-r--r--src/speedcubing/figure-it-out/figure-it-out.md371
-rw-r--r--src/speedcubing/figure-it-out/layer.svg39
-rw-r--r--src/speedcubing/figure-it-out/pair.svg39
-rw-r--r--src/speedcubing/figure-it-out/setup.svg39
-rw-r--r--src/speedcubing/figure-it-out/twist.svg39
-rw-r--r--src/speedcubing/speedcubing.md3
11 files changed, 686 insertions, 0 deletions
diff --git a/src/speedcubing/figure-it-out/comm1.svg b/src/speedcubing/figure-it-out/comm1.svg
new file mode 100644
index 0000000..6c41aad
--- /dev/null
+++ b/src/speedcubing/figure-it-out/comm1.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#FFFFFF" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#FFFFFF" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#FFA100" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#FFFFFF" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#FFFFFF" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#FFFFFF" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#FFFFFF" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#FFFFFF" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#0000F2" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#EE0000" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#FEFE00" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#EE0000" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#EE0000" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#EE0000" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#EE0000" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#EE0000" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#EE0000" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#00D800" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#00D800" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#EE0000" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#00D800" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#00D800" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#00D800" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#EE0000" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#00D800" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#00D800" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/figure-it-out/comm2.svg b/src/speedcubing/figure-it-out/comm2.svg
new file mode 100644
index 0000000..e69065b
--- /dev/null
+++ b/src/speedcubing/figure-it-out/comm2.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#FFFFFF" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#FFFFFF" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#FFA100" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#FFFFFF" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#FFFFFF" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#FFFFFF" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#FFFFFF" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#0000F2" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#EE0000" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#EE0000" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#FEFE00" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#EE0000" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#EE0000" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#EE0000" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#EE0000" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#EE0000" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#EE0000" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#00D800" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#00D800" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#00D800" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#00D800" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#00D800" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#FFFFFF" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#00D800" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#00D800" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/figure-it-out/disassembled.jpg b/src/speedcubing/figure-it-out/disassembled.jpg
new file mode 100644
index 0000000..eaf0b9d
--- /dev/null
+++ b/src/speedcubing/figure-it-out/disassembled.jpg
Binary files differ
diff --git a/src/speedcubing/figure-it-out/edgecomm.svg b/src/speedcubing/figure-it-out/edgecomm.svg
new file mode 100644
index 0000000..6cffd65
--- /dev/null
+++ b/src/speedcubing/figure-it-out/edgecomm.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#FFFFFF" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#FFFFFF" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#FFFFFF" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#FFFFFF" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#FFFFFF" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#EE0000" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#FFFFFF" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#FFFFFF" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#EE0000" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#00D800" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#EE0000" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#00D800" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#EE0000" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#EE0000" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#EE0000" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#EE0000" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#EE0000" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#00D800" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#00D800" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#00D800" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#FFFFFF" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#00D800" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#FFA100" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#00D800" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#00D800" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#00D800" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/figure-it-out/face.svg b/src/speedcubing/figure-it-out/face.svg
new file mode 100644
index 0000000..fec1a3d
--- /dev/null
+++ b/src/speedcubing/figure-it-out/face.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#FFFFFF" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#FFFFFF" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#FFFFFF" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#FFFFFF" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#FFFFFF" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#FFFFFF" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#FFFFFF" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#FFFFFF" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#FFA100" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#EE0000" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#00D800" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#404040" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#404040" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#404040" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#404040" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#404040" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#404040" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#00D800" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#0000F2" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#0000F2" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#404040" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#404040" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#404040" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#404040" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#404040" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#404040" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/figure-it-out/figure-it-out.md b/src/speedcubing/figure-it-out/figure-it-out.md
new file mode 100644
index 0000000..4690c76
--- /dev/null
+++ b/src/speedcubing/figure-it-out/figure-it-out.md
@@ -0,0 +1,371 @@
1# Rubik's cube: how to figure it out
2
3So you decided to try and solve a
4[Rubik's Cube](https://en.wikipedia.org/wiki/Rubik%27s_Cube). Maybe it
5is for a bet. Maybe your parents grounded you for playing too much
6Minecraft and now you have to find an off-line hobby. Maybe you have
7been fascinated by this toy since you were a kid and now that you have
8retired from work you finally have the time to try and solve it.
9
10Of course it is and all you have to do it to learn how to solve
11this puzzle is asking your favorite search engine (or AI? I guess search
12engines are *so* 2021...). Sure you can do that, and you will find plenty
13of tutorials that teach you how to build it up *layer by layer*, and with
14the help of some pre-mmemorized sequences of moves you can easily learn
15it in a few hours (or days). Also, there are probably apps that can take a
16picture of a scrambled cube and tell you how to solve it move by move.
17
18But that feels a bit like cheating, doesn't it? What if you want to
19figure it out on your own, without relying on someone else's instructions?
20
21This is where this page comes in. Here I will try to explain just enough
22about the Rubik's cube so that you can try and tackle it alone. After
23explaining some basics about how the cube works as a 3D puzzle, I will
24introduce a couple of general-purpose techniques to help you move the
25pieces around, without telling you directly what steps to take.
26
27So, let's dive in!
28
29## How it works
30
31The first thing you should do to understand how the cube works is taking
32it all apart and inspect the pieces it is made of and the mechanism
33holding them together.
34
35Well actually don't do it, just look at the picture below:
36
37![A disassembled Rubik's cube](disassembled.jpg)
38
39As you can see, there are three types of pieces:
40
41* **The core**, consisting of 3 axes intersecting in the center. Some
42screws and springs keep the **6 center pieces** attached to it, in such
43a way that they can spin. This is what makes the faces turn.
44* **Edge pieces**, with only two colored faces each. When the cube is
45assembled, they lie between two center pieces. There are 12 of them.
46* **Corner pieces**, with three colored faces each. When the cube is
47assembled, each corner piece is adjacent to 3 edge pieces, and it
48touches 3 center pieces "diagonally". There are 8 corner pieces.
49
50So far so good. But what does this tell us about solving the cube
51by turning its sides?
52
53First of all, the fact that the centers are attached to the core implies
54that their relative position does not change, ever. In other words, you
55can think of the **centers as fixed** pieces, and **build the rest
56around them**.
57
58Another important thing that is made clear by looking at the disassembled
59cube is that **you should think about pieces, not stickers** or colors.
60When naïvely attempting to solve the cube without a clue, many would
61think about "moving this color there". But what you have to always keep
62in mind is that you can never move a single colored sticker: the other
63colored stickers attached to the same piece, be it an edge or a corner,
64will always move with it.
65
66Now we are ready to move on to some fundamental techniques. If you have
67actually disassebled your cube, put it back together *in a solved state*:
68if you don't, there is a good chance (11 out 12) that you will reassamble
69it in an **unsolvable state**, just like a
70[15 puzzle](https://en.wikipedia.org/wiki/15_Puzzle) with the
71last two number swapped.
72
73## Building blocks
74
75Most methods to solve a Rubik's cube a divided into steps, where:
76
77* In the first few steps, you put together blocks of pieces. This is
78also known as **blockbuilding**. These steps are often "intuitive",
79which means that they do not require memorizing sequences of moves
80to apply blindly.
81* In the last few steps, you need to move around a few remaining pieces
82without destroying the progress made in the previous steps. Most of the
83time steps like these rely on memorized sequences of moves that are known
84to only affect the position of certain pieces; but there are alternative
85approaches, as we will see later.
86
87So, what do we mean exactly by "block of pieces"? To be precise we could
88say that two or more adjacent pieces form a block when adjacent stickers
89of different pieces have the same color. For example, the simplest kind
90of block is a **pair**, that you can see in the picture below:
91
92![A corner-edge pair](pair.svg)
93
94To be precise, the one above is a coner-edge pair. There are also center-edge
95pairs, consisting of a center and an edge, but they are rarely referred to
96as "pairs". In any case, they do fit our definition of "block".
97
98A more complex example of a block is a **layer**, which is the result of
99the first two steps of the classic "layer by layer" method. This one is
100a correctly solved layer:
101
102![A layer](layer.svg)
103
104On the other hand, this is **not a layer**:
105
106![A non-solved layer, but with a solve "face"](face.svg)
107
108It is worth pausing here to reflect a bit. The last two pictures both
109clearly show a solved white face, don't they? For a most people, they
110could look equivalent. But remember what we said earlier: you should
111think about *pieces*, not *stickers*. In the last picture, the pieces
112have all white on top, but their side colors do not match (except for
113the blue-white edge and the blue-orange-white corner). So they do not
114form a block, which means that their **relative position** is incorrect.
115By contrast, the second to last picture shows a block: all side colors
116match, not only the white top. This means that the pieces are in correct
117relative position with respect to each other.
118
119With this in mind, you can starting making your own way through
120the first few steps of your solving method: try to build multiple
121blocks of pieces and put them together to make even bigger blocks.
122
123If you want some more hints, Ryan Heise's website contains some nice
124examples about building blocks in his
125[fundamental techniques page](https://www.ryanheise.com/cube/fundamental_techniques.html).
126
127## Commutators
128
129*In the rest of this page I am going to use the standard
130[Rubik's cube notation](../notation) to write down sequences of moves.
131You should familiarize with it at least a bit before continuing. Don't
132worry, it's very easy.*
133
134The more blocks you build, the harder it becomes to make progress. The
135reason for this is that you want to avoid destroying the blocks you
136have already built, so your options become more and more restricted
137as you go. This is completely normal.
138
139The most common speedsolving methods go around this issue by
140prescribing the use of memorized sequences, somewhat improperly
141called "algorithms". For example the layer by layer method relies
142on blockbuilding to build the first layer, but on at least 5
143"algorithms" to complete the last two layers. The more advanced
144[CFOP](https://www.speedsolving.com/wiki/index.php/CFOP_method) method
145uses blockbuilding for the first two layers, but it then requires
14678 different "algorithms" to complete the last layer.
147
148Here I am going to outline an alternative, more flexible approach,
149based on
150[commutators](https://www.speedsolving.com/wiki/index.php?title=Commutator).
151They are generally considered an advanced technique, I believe that
152they are perfectly fine to learn as a beginner. Ryan Heise's page that
153I linked above has a
154[section about them](https://www.ryanheise.com/cube/commutators.html),
155too.
156
157If you have not done it already, you should have a look at my page on
158[the Rubik's cube notation](../notation) before continuing.
159
160### Corner commutators
161
162Suppose that you manage, via blockbuilding, to reach the following state:
163
164![A commutator](comm1.svg)
165
166First of all, this would be an amazing achievement! The whole cube is
167solved except for three corners. The bottom-left corner (only one red
168sticker visible) is white-green-red, and it should go to the place where
169the white-red-blue corner is right now. The latter should in turn take
170the place of the corner on the right whose visible stickers are orange
171and yellow (the hidden sticker being green). In Mathematical terms, these
1723 corner form a **permutation cycle of 3 pieces**, or 3-cycle for short.
173
174Commutators are a general technique to solve 3-cycles of pieces. They
175can be decomposed in 4 small steps:
176
1771. **Interchange**: a single move that interchanges two of the three
178pieces.
1792. **Insertion**: a sequence of moves (usually 3) that inserts the third
180piece into the place of one of the other two, without affecting the
181"interchange" face of the cube in any other way.
1823. **Inverse interchange**: the inverse of the move done in step 1.
1834. **Inverse insertion**: the inverse of the sequence of moves done in step 2.
184
185**Note:** step 1 and 2 can appear in the other order; if they do, steps
1863 and 4 should also be swapped.
187
188Let's look at an example. From the position in the picture above, you
189can interchange the top two corners using the move U. More precisely, U
190brings the orange-yellow-green corner into the position currently occupied
191by the white-red-blue corner. The move U' also works, as it moves the
192white-red-blue corner to the position of the orange-yellow-green one.
193
194An interchange move is worth nothing without a compatible insertion
195sequence. In this case, you can use R' D R as insertion: this sequence
196of 3 moves moves the red-green-white corner to the place currently
197occupied by the white-red-blue one and, very importantly, **it does not
198affect any other piece in the U layer**. To put it in another way,
199**the interchange and the insertion only "clash" on one corner**.
200
201The last thing to decide before we put all of this together is which
202one should go first: the interchange or the insertion? This is not hard
203to figure out: I described both of them as "moving a certain piece into
204a certain position"; only one of the two moves a piece in its correct
205final position, and that is the sequence that must go first. In our case
206it is the insertion, because the red-green-white corner's final position
207is the one occupied by the white-red-blue one.
208
209So our commutator looks like this: R' D R U R' D' R' U'. Let's split
210this up to review it:
211
212* **R' D R**: the insertion sequence, moving the red-green-white corner
213to the position of the white-red-blue one.
214* **U**: the interchange move, moving the orange-yellow-green corner
215to the position now occupied by the red-green-white one.
216* **R' D' R**: the inverse of the insertion sequence. To invert a sequence
217of moves, you have to **read it backwards inverting every single move**.
218Here we start with R', because it is the inverse of R, the last move of
219the insertion sequence; then we have D', the inverse of the second move;
220and finally R, the inverse of the first move of the insertion sequence.
221* **U'**: the inverse of the interchange move.
222
223To help understanding all of this, you can visualize this commutator
224[alg.cubing.net](https://alg.cubing.net/?setup=%5BU,_R-DR%5D&alg=R-_D_R_%2F%2FInsertion%0AU_%2F%2FInterchange%0AR-_D-_R_%2F%2FInverse_insertion%0AU-_%2F%2FInverse_interchange).
225
226**Note:** looking at the position of the pieces is not enough to
227determine a correct commutator to permute them. Their **orientation**
228is also important. For example, consider the following case:
229
230![Another commutator](comm2.svg)
231
232The three corners are permuted in exactly the same way, so everything
233we said above could be repeated word by word, move by move. However,
234if you apply the commutator we constructed to this case, you'll get
235something like this:
236
237![Two twisted corners](twist.svg)
238
239What's wrong here? Well, obviously the cube is not solved. All the pieces
240are in their correct position, but two corners are twisted in place!
241
242To avoid situations like this when creating your commutators, you need to
243keep track of **which sticker goes where**. I know, I know: I said at the
244beginning that *pieces* are important, not *stickers*. This is still true,
245but sometimes it is important to keep track of both.
246
247Let's highlight the difference between the two 3-cycles. In the first one:
248
249![A commutator](comm1.svg)
250
2511. The red-green-white corner must go to the place of the white-red-blue one,
252*with the white sticker of the first going to the place of the white sticker
253of the latter*.
2542. The white-red-blue corner must go to the place of the
255orange-yellow-green one, *with the white sticker of the former going to
256the place of the orange sticker of the latter*.
2573. The orange-yellow-green corner must go to the place of the red-green-white
258one, *with the orange sticker of the former going to the place of the
259white sticker of the latter*.
260
261While in the second case:
262
263![Another commutator](comm2.svg)
264
2651. The red-green-white corner must go to the place of the white-red-blue one,
266*with the white sticker of the first going to the place of the* **blue** *sticker
267of the latter*.
2682. The white-red-blue corner must go to the place of the
269orange-yellow-green one, *with the* **blue** *sticker of the former going to
270the place of the* **green** *sticker of the latter*.
2713. The orange-yellow-green corner must go to the place of the red-green-white
272one, *with the* **green** *sticker of the former going to the place of the
273white sticker of the latter*.
274
275The main point here is that not only interchange and insertion moves
276should swap the correct pieces around, but they must also move each
277"reference sticker" to the position of the next "reference sticker".
278For example, using the commutator R' D R U R' D' R U' for the second
279case does not work, because the insertion sequence R' D R moves the
280white sticker of the red-green-white corner to the position of the
281red sticker of the white-red-blue one, while it should move it
282to the position of the blue sticker!
283
284I won't repeat the whole construction for the second commutator,
285but you can visualize a solution
286[here](https://alg.cubing.net/?setup=%5BR-,_UL-U-%5D&alg=U_L-_U-_%2F%2FInsertion%0AR-_%2F%2FInterchange%0AU_L_U-_%2F%2FInverse_insertion%0AR_%2F%2FInverse_interchange).
287
288### Edge commutators
289
290So far I have only talked about *corner* commutators, but what if you
291are also left with some unsolved edges? For example, consider this case:
292
293![A edge 3-cycle](edgecomm.svg)
294
295The picture shows a 3-cycle of edges. You might think that the same
296reasoning can be applied and that you can use commutators to solve
297edge 3-cycles of edges. This is exactly the case, and this is why this
298subsection is so short.
299
300Let's see how to solve the case above. As interchange move, you can use
301the **inner-layer move** E' (check out the [notation page](../notation)
302if you are unfamiliar with these). The insertion sequence to be used
303with it is L' U2 L. Putting everything together, you get
304[E' L' U2 L E L' U2 L](https://alg.cubing.net/?setup=%5BL-U2L,E-%5D&alg=E-_%2F%2FInterchange%0AL-_U2_L_%2F%2FInsertion%0AE_%2F%2FInverse_interchange%0AL-_U2_L_%2F%2FInverse_insertion).
305
306### Commutators with set-up moves
307
308At this point I have good news and bad news.
309
310The good news is that commutators are so powerful that you could solve
311the whole cube using just commutators and at most one single move (this
312sentence might sound a bit strange, but it is Mathematically correct -
313the best kind of correct). Although it would not be very efficient, you
314could avoid blockbuilding altogether and move pieces around
315only with commutators - this is how advanced
316[blindsolving](https://www.speedsolving.com/wiki/index.php?title=Blindfolded_Solving)
317methods work.
318
319The bad news is that not every 3-cycle can be solved directly with a
320commutator, at least not one of the form I described above. Sometimes
321you need to use **set-up moves**, also known as
322[conjugates](https://www.ryanheise.com/cube/conjugates.html).
323
324Consider the following case:
325
326![A 3-cycle of corners requiring a set-up move](setup.svg)
327
328No matter how much you try, you are not going to find valid interchange
329and insertion moves as above. The fundamental problem is that you would
330like to use U (or U', or U2) as an interchange move, but this move affects
331all 3 of the corners. You might think of using R or F as interchange; they
332do affect only two of the pieces, but they do not move the the stickers in
333the correct position: any commutator based on R or F as interchange move
334would lead not to a solved cube, but to some corners twisted in place.
335
336So, how can we deal with this case? The solution is to use one or more
337moves to set up a better case. These moves will be done at the
338beginning and then undone at the end.
339
340For example in this case you can start by doing L as a setup move.
341This has the effect of moving the white-red-green corner out of the U
342layer, so that you can then use U (or rather, U') as interchange move.
343The insertion sequence that makes it all work here is R D2 R', and
344putting it all together you get:
345
346* Set-up: L
347* Interchange: U'
348* Insertion: R D2 R'
349* Inverse interchange: U
350* Inverse insertion: R D2 R'
351* Inverse set-up: L'
352
353**Note:** in this case the insertion coincides with its inverse. This
354can happen and there is nothing particular about it.
355
356As usual, you can visualize the final result on
357[alg.cubing.net](https://alg.cubing.net/?setup=L2B2R-F-RB2R-FRL2&alg=L_%2F%2FSet%26%2345%3Bup%0AU-_%2F%2FInterchange%0AR_D2_R-_%2F%2FInsertion%0AU_%2F%2FInverse_interchange%0AR_D2_R-_%2F%2FInverse_insertion%0AL-_%2F%2FInverse_set%26%2345%3Bup)
358
359## Conclusion
360
361With what you have learned so far, you can now try and solve the Rubik's
362cube on your own, without further help. Granted, it won't be a walk
363in the park: this short tutorial is not meant to explain everything. I
364could have given you advice on which blocks to build first or on when to
365stop building blocks and start using commutators, I could have shown you
366many more examples, I could have told you how to address tricky cases
367like permutation parity or pieces twisted in place. But I think it can
368be more fun to try and figure all of this out by yourself - and if you
369disagree, just look for a more complete tutorial online.
370
371Happy cubing!
diff --git a/src/speedcubing/figure-it-out/layer.svg b/src/speedcubing/figure-it-out/layer.svg
new file mode 100644
index 0000000..8645680
--- /dev/null
+++ b/src/speedcubing/figure-it-out/layer.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#FFFFFF" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#FFFFFF" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#FFFFFF" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#FFFFFF" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#FFFFFF" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#FFFFFF" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#FFFFFF" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#FFFFFF" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#EE0000" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#EE0000" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#EE0000" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#404040" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#404040" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#404040" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#404040" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#404040" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#404040" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#00D800" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#00D800" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#00D800" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#404040" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#404040" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#404040" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#404040" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#404040" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#404040" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/figure-it-out/pair.svg b/src/speedcubing/figure-it-out/pair.svg
new file mode 100644
index 0000000..01f8912
--- /dev/null
+++ b/src/speedcubing/figure-it-out/pair.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#404040" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#404040" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#404040" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#404040" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#404040" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#404040" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#404040" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#404040" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#0000F2" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#EE0000" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#404040" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#404040" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#EE0000" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#404040" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#404040" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#404040" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#404040" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#404040" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#404040" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#404040" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#404040" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#404040" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#FFFFFF" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#404040" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#404040" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#404040" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/figure-it-out/setup.svg b/src/speedcubing/figure-it-out/setup.svg
new file mode 100644
index 0000000..fa2360a
--- /dev/null
+++ b/src/speedcubing/figure-it-out/setup.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#FFFFFF" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#FFFFFF" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#FFFFFF" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#FFFFFF" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#FFFFFF" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#FFFFFF" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#FFFFFF" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#FFFFFF" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#0000F2" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#EE0000" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#FFA100" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#EE0000" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#EE0000" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#EE0000" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#EE0000" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#EE0000" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#EE0000" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#EE0000" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#00D800" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#EE0000" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#00D800" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#00D800" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#00D800" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#00D800" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#00D800" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#00D800" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/figure-it-out/twist.svg b/src/speedcubing/figure-it-out/twist.svg
new file mode 100644
index 0000000..79e0a02
--- /dev/null
+++ b/src/speedcubing/figure-it-out/twist.svg
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="150" height="150" viewBox="-0.9 -0.9 1.8 1.8">
4 <rect fill="#FFFFFF" x="-0.9" y="-0.9" width="1.8" height="1.8"/>
5 <g style="stroke-width:0.1;stroke-linejoin:round;opacity:1">
6 <polygon fill="#000000" stroke="#000000" points="-4.9165444344952E-17,-0.71734170954349 0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 -0.70405037145575,-0.41272706360467"/>
7 <polygon fill="#000000" stroke="#000000" points="6.3108540577985E-17,-0.021725090572532 0.70405037145575,-0.41272706360467 0.62948028357061,0.36901272915735 5.5589468959362E-17,0.81107056444244"/>
8 <polygon fill="#000000" stroke="#000000" points="-0.70405037145575,-0.41272706360467 6.3108540577985E-17,-0.021725090572532 5.5589468959362E-17,0.81107056444244 -0.62948028357061,0.36901272915735"/>
9 </g>
10 <g style="opacity:1;stroke-opacity:0.5;stroke-width:0;stroke-linejoin:round">
11 <polygon fill="#FFFFFF" stroke="#000000" points="-4.9439549272153E-17,-0.74757064564692 0.19598754651203,-0.66277461469571 -1.6979580126642E-17,-0.57123720961754 -0.19598754651203,-0.66277461469571"/>
12 <polygon fill="#FFFFFF" stroke="#000000" points="0.23200530924361,-0.64654708450724 0.44357407294753,-0.55500967942906 0.24823152717746,-0.45589370157761 0.03601776273158,-0.55500967942906"/>
13 <polygon fill="#0000F2" stroke="#000000" points="0.48258385553552,-0.53743199405155 0.71166883865722,-0.4383160162001 0.51778341539206,-0.3306396536664 0.28724130976545,-0.43831601620009"/>
14 <polygon fill="#FFFFFF" stroke="#000000" points="-0.23200530924361,-0.64654708450724 -0.03601776273158,-0.55500967942906 -0.24823152717746,-0.45589370157761 -0.44357407294753,-0.55500967942906"/>
15 <polygon fill="#FFFFFF" stroke="#000000" points="-1.1906711768916E-17,-0.53743199405155 0.21221376444588,-0.43831601620009 1.3125827139793E-17,-0.3306396536664 -0.21221376444588,-0.43831601620009"/>
16 <polygon fill="#FFFFFF" stroke="#000000" points="0.25135344771691,-0.4192120352454 0.48189555334352,-0.31153567271171 0.27050899589682,-0.1941398664099 0.03913968327103,-0.31153567271171"/>
17 <polygon fill="#FFFFFF" stroke="#000000" points="-0.48258385553552,-0.53743199405155 -0.28724130976545,-0.43831601620009 -0.51778341539206,-0.3306396536664 -0.71166883865722,-0.43831601620009"/>
18 <polygon fill="#FFFFFF" stroke="#000000" points="-0.25135344771691,-0.4192120352454 -0.03913968327103,-0.31153567271171 -0.27050899589682,-0.1941398664099 -0.48189555334352,-0.31153567271171"/>
19 <polygon fill="#00D800" stroke="#000000" points="1.9219742927126E-17,-0.29069716027551 0.23136931262579,-0.1733013539737 6.3251582941518E-17,-0.044807908897155 -0.23136931262579,-0.1733013539737"/>
20 <polygon fill="#FFFFFF" stroke="#000000" points="0.019572311898468,-0.01096266104553 0.25094162452426,-0.13945610612208 0.24139184674777,0.12672756322786 0.019572311898468,0.26171620101574"/>
21 <polygon fill="#EE0000" stroke="#000000" points="0.28930534489087,-0.16171652284677 0.50069190233757,-0.27911232914857 0.48317508531013,-0.019324131300046 0.27975556711438,0.10446714650317"/>
22 <polygon fill="#FFFFFF" stroke="#000000" points="0.53586287162127,-0.29952357725519 0.72974829488643,-0.40719993978888 0.70556381569579,-0.15366705164652 0.51834605459384,-0.039735379406663"/>
23 <polygon fill="#EE0000" stroke="#000000" points="0.018796486168384,0.30740091161998 0.24061602101769,0.1724122738321 0.23182332941007,0.41749346528561 0.018796486168384,0.55752511994163"/>
24 <polygon fill="#EE0000" stroke="#000000" points="0.27748498154717,0.14913168479738 0.48090449974292,0.025340406994164 0.46472097442439,0.26535483831193 0.26869228993956,0.39421287625089"/>
25 <polygon fill="#EE0000" stroke="#000000" points="0.51482272047627,0.0039202514920256 0.70204048157822,-0.11001142074783 0.6796261786066,0.12496419825545 0.49863919515774,0.24393468280979"/>
26 <polygon fill="#EE0000" stroke="#000000" points="0.018079821190449,0.59957070958542 0.23110666443214,0.4595390549294 0.22298446134887,0.68593152923737 0.018079821190449,0.82982754001392"/>
27 <polygon fill="#EE0000" stroke="#000000" points="0.26659321028119,0.43546258559693 0.46262189476603,0.30660454765797 0.44762501691219,0.52902006212629 0.25847100719792,0.6618550599049"/>
28 <polygon fill="#EE0000" stroke="#000000" points="0.49537315323635,0.28438159074811 0.67636013668521,0.16541110619376 0.65552852022793,0.38379496484358 0.4803762753825,0.50679710521643"/>
29 <polygon fill="#00D800" stroke="#000000" points="-0.73033661801848,-0.40664800069716 -0.53645119475332,-0.29897163816347 -0.51893437772588,-0.039183440314942 -0.70615213882784,-0.1531151125548"/>
30 <polygon fill="#00D800" stroke="#000000" points="-0.50139487638912,-0.27854802283962 -0.29000831894242,-0.16115221653782 -0.28045854116593,0.10503145281212 -0.48387805936169,-0.018759824991097"/>
31 <polygon fill="#EE0000" stroke="#000000" points="-0.25178425197513,-0.13888300088285 -0.020414939349334,-0.010389555806295 -0.020414939349334,0.26228930625497 -0.24223447419864,0.12730066846709"/>
32 <polygon fill="#00D800" stroke="#000000" points="-0.70259025607703,-0.10956681966126 -0.51537249497507,0.0043648525785978 -0.49918896965654,0.24437928389636 -0.68017595310541,0.12540879934202"/>
33 <polygon fill="#00D800" stroke="#000000" points="-0.48155663212918,0.025787474064964 -0.27813711393343,0.14957875186818 -0.26934442232581,0.39465994332169 -0.46537310681065,0.26580190538273"/>
34 <polygon fill="#00D800" stroke="#000000" points="-0.24139184674777,0.17285724590871 -0.019572311898468,0.30784588369658 -0.019572311898468,0.55797009201823 -0.23259915514016,0.41793843736221"/>
35 <polygon fill="#00D800" stroke="#000000" points="-0.67687496656198,0.16576684053069 -0.49588798311312,0.28473732508503 -0.48089110525928,0.50715283955335 -0.6560433501047,0.38415069918051"/>
36 <polygon fill="#00D800" stroke="#000000" points="-0.46322848371637,0.30695545587912 -0.26719979923154,0.43581349381808 -0.25907759614827,0.66220596812605 -0.44823160586253,0.52937097034744"/>
37 <polygon fill="#00D800" stroke="#000000" points="-0.23182332941007,0.45988002752827 -0.018796486168384,0.59991168218429 -0.018796486168384,0.83016851261279 -0.2237011263268,0.68627250183624"/>
38 </g>
39</svg> \ No newline at end of file
diff --git a/src/speedcubing/speedcubing.md b/src/speedcubing/speedcubing.md
index ee2fe4b..93d1945 100644
--- a/src/speedcubing/speedcubing.md
+++ b/src/speedcubing/speedcubing.md
@@ -27,6 +27,9 @@ Below you can find some links
27 27
28* [Rubik's cube notation](notation), good to know before reading any 28* [Rubik's cube notation](notation), good to know before reading any
29text-based tutorial. 29text-based tutorial.
30* [Figure it out](figure-it-out): a "tutorial" on how to figure out
31the Rubik's cube by yourself, without spoilers. It will not teach you
32how to solve it step by step, but it will point you in the right direction.
30 33
31## Software 34## Software
32 35

Generated with cgit - Back to sebastiano.tronto.net