{"id":21236682,"url":"https://github.com/maxg87/lernkarten-fridrich","last_synced_at":"2026-01-02T00:52:40.017Z","repository":{"id":231103513,"uuid":"716744559","full_name":"MaxG87/lernkarten-fridrich","owner":"MaxG87","description":"LaTex-Projekt für Lernkarten für die Zauberwürfellösungsmethode nach Fridrich","archived":false,"fork":false,"pushed_at":"2024-04-02T12:13:15.000Z","size":233,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-21T18:50:12.199Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaxG87.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-11-09T19:29:06.000Z","updated_at":"2023-11-11T20:20:12.000Z","dependencies_parsed_at":"2024-04-02T13:45:13.479Z","dependency_job_id":null,"html_url":"https://github.com/MaxG87/lernkarten-fridrich","commit_stats":null,"previous_names":["maxg87/lernkarten-fridrich"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxG87%2Flernkarten-fridrich","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxG87%2Flernkarten-fridrich/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxG87%2Flernkarten-fridrich/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxG87%2Flernkarten-fridrich/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaxG87","download_url":"https://codeload.github.com/MaxG87/lernkarten-fridrich/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243676775,"owners_count":20329434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-21T00:13:20.890Z","updated_at":"2026-01-02T00:52:40.011Z","avatar_url":"https://github.com/MaxG87.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lernkarten for Rubik's Cube - Fridrich Method\n\n![Example OLL](\u003c./oll/S1 - 5.svg\u003e)\n![Example PLL](\u003c./pll-with-arrows/Ra.svg\u003e)\n![Example PLL](\u003c./big-cubes/5x5x5 Parity.svg\u003e)\n\nThis project provides Lernkarten (German for learning cards) for memorizing the algorithms\nneeded to solve a Rubik's Cube using the Fridrich Method (CFOP). Two kinds of\ncards are provided:\n\n* Anki flashcards for spaced repetition learning\n* physical printable cards for offline study\n\nThe icons will be generated from provided algorithms, so that the icons are\nguaranteed to match the algorithms exactly.\n\nAll SVGs, CSVs and PDFs are easily regenerable using the provided scripts.\nHowever, they are added here so that users can directly use them without\ngetting into technical details.\n\n## Structure of the Repository\n\nThe repository is structured into folders for each type of algorithm.\n\n| Algorithm Set | Example | Description |\n|---------------|---------|-------------|\n| **2-look-oll** | ![2LookOLL](\u003c./2LookOLL/2LOLL 5.svg\u003e) | Lernkarten for the eight 2-Look OLL algorithms (omitting edge orientation) |\n| **oll** | ![OLL](\u003c./oll/I3 - 55.svg\u003e) | Lernkarten for the 57 OLL (Orientation of the Last Layer) algorithms |\n| **pll** | ![PLL](\u003c./pll-with-arrows/Y.svg\u003e) | Lernkarten for the 21 PLL (Permutation of the Last Layer) algorithms including rotation arrows.\u003cbr\u003e\u003cbr\u003e**Note:** The icons show the cube you get by applying the algorithm repeatedly with the blue face in front.|\n| **big-cube** | ![Big Cubes](\u003c./big-cubes/4x4x4 OLL Parity.svg\u003e) | Lernkarten for some big cube algorithms (4x4 and larger) |\n\nAdditionally, there is the `lernkarten_scripts` folder containing a Python\nprogram for regeneration of the icons, CSVs and PDFs.\n\n## Using the Lernkarten\n\n### Anki Flashcards\n\n\u003cimg src=\"./docs/images/screenshot_anki_Ja.png\" alt=\"Anki Card Browser Example\" width=\"256\"/\u003e\n\nEach flashcard folder contains icons and a file `ankiCardSet.csv`. In order to import them\ninto Anki, follow these steps:\n\n* copy the SVG files into Anki's media collection folder (see\n  [here](https://superuser.com/q/963526/913769) for how to find it)\n* import the `ankiCardSet.csv` file using Anki's import function\n\nNow you should see the cards in your Anki collection.\n\n### Physical Printable Cards\n\nThe printable cards are provided as PDF files. They are designed to be printed\ntwo-sided ([short edge\ntumble](https://superuser.com/questions/221343/lpr-printing-tumble-mode)). Then\nthe algorithms will be on the back of the corresponding icons.\n\nThe PDFs are designed to be cuttable in batches, allowing for more convenient\npreparation.\n\n## How to Regenerate the Lernkarten\n\nEverything required to regenerate the Lernkarten is provided by the Python\nprogram in `lernkarten_scripts/`. In order to run it, one needs to have\n[`uv`](https://docs.astral.sh/uv/) and Python 3 installed. One ad-hoc way to\ninstall `uv` is to run\n\n```bash\npipx install uv\n```\n\n, but make sure to check the [official installation\ninstructions](https://docs.astral.sh/uv/getting-started/installation/) and your\nplatform's best practices. For instance, on [Arch\nLinux](https://archlinux.org/), `uv` can be installed via `pacman`.\n\nAfter that, the script can be executed by running\n\n```bash\nuv run generate-algorithm-cards --help\n```\n\n, which will show the available options.\n\n### How to regenerate Anki flashcards\n\nIn order to regenerate the Anki flashcards for algorithm set OLL, run the\nfollowing command from the project's root folder:\n\n```bash\nuv run generate-algorithm-cards --algorithm-set oll oll-output-dir\n```\n\nThis will regenerate\n\n* the SVG icons using\n  [visualcube.api.cubing.net](https://visualcube.api.cubing.net)\n* the `ankiCardSet.csv` file for Anki import\n* a `Makefile` and `Lernkarten.tex` file for generating printable cards\n\nRegarding Anki, this is all that is needed.\n\n### How to regenerate physical printable cards\n\nIn order to regenerate the printable cards, the $\\LaTeX$ file needs to be\ncompiled to a PDF file. Ideally, this can be done using the Makefile:\n\n```bash\n# Regenerate printable Lernkarten for OLL. Replace \"oll\" with any other\n# algorithm set folder name as needed.\nmake -C oll-output-dir\n```\n\nUnfortunately, the Makefile is not portable across different systems. If it\ncannot be used, the following steps need to be done manually:\n\n* All SVG files need to be converted to PDF files with the same name. For\n  instance, the file `pll/Ja.svg` needs to be converted to `pll/Ja.pdf`.\n* The `Lernkarten.tex` file needs to be compiled using `lualatex`. The\n  time-honoured `pdflatex` will not work.\n\n\n### How to change algorithms\n\nIn order to change the algorithms used for generating the Lernkarten, the\nfile `lernkarten_scripts/algorithms.py` needs to be edited. There, the\nalgorithms are defined in Python lists. Since the icons are generated from the\nalgorithms, changing the algorithms and regenerating the Lernkarten will\nautomatically update the icons as well. This works very well for OLL and\n2-Look OLL.\n\n**Attention:** The arrows and setup rotations for PLL algorithms are not\ngenerated automatically. They need to be adjusted manually too. They are\ndefined right next to the algorithm.\n\n\n## A Note on Deck Usage\n\nWhen using the Lernkarten in Anki, it is recommended to set up a big deck\ncontaining all the cards. This allows for better spaced repetition learning\nacross all algorithm sets. This is in line with [the recommendations of Anki\nitself](https://docs.ankiweb.net/editing.html#using-decks-appropriately).\n\nThe author started with four decks (OLL, PLL, F2L and Big Cubes) only to be\noverburdened by tracking progress on multiple decks. Switching to a single deck\nhands over the bookkeeping to Anki. In particular, limits for new cards are\nconsolidated across all algorithm sets. Without that, after learning some new\ncards for one deck Anki would have you learn new cards for another deck, which\nis counterproductive and overburdening.\n\nInstead of multi-deck usage, the tags can be used to create filtered decks for\nfocused study sessions on a particular algorithm set. With that, one can still\nlearn some cards first, e.g. 2-Look OLL or PLL, before moving on to the full\nset.\n\n\n## Acknowledgements\n\nI want to thank Andy Klise of https://www.kungfoomanchu.com/ for providing\nexcellent guides. Without these I wouldn't have started learning the\nFridrich Method in the first place.\n\nAnother great source of algorithms was Feliks Zemdegs project\nhttps://www.cubeskills.com/. The provided algorithms there allowed me to fine\ntune the algorithms used in this project.\n\nWhile there are some cube visualization tools available online, none of them\nmatch the brilliance of\n[visualcube.api.cubing.net](https://visualcube.api.cubing.net). It is\nfeature-rich, scriptable and produces impressive icons.\n\nLast but not least I want to thank the anonymous contributor of Anki cubing\nflashcards found [here](https://ankiweb.net/shared/by-author/916788332).\nThey were a great starting point for creating my own Anki cards.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxg87%2Flernkarten-fridrich","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxg87%2Flernkarten-fridrich","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxg87%2Flernkarten-fridrich/lists"}