{"id":42179772,"url":"https://github.com/guidodipietro/fmc","last_synced_at":"2026-01-26T22:01:36.426Z","repository":{"id":39575667,"uuid":"268139726","full_name":"GuidoDipietro/FMC","owner":"GuidoDipietro","description":"Everything I have about FMC (Rubik's Cube Fewest Moves Challenge WCA event)","archived":false,"fork":false,"pushed_at":"2025-08-23T01:03:37.000Z","size":2045,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-23T03:31:46.513Z","etag":null,"topics":["cubing","data-visualization","fewest-moves","fmc","fmc-solutions","rubik","speedcubing","wca"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GuidoDipietro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-05-30T18:43:11.000Z","updated_at":"2025-08-23T01:03:41.000Z","dependencies_parsed_at":"2024-06-04T01:40:34.822Z","dependency_job_id":"f6034a01-e131-4c63-a38a-fee363982d4e","html_url":"https://github.com/GuidoDipietro/FMC","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GuidoDipietro/FMC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuidoDipietro%2FFMC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuidoDipietro%2FFMC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuidoDipietro%2FFMC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuidoDipietro%2FFMC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GuidoDipietro","download_url":"https://codeload.github.com/GuidoDipietro/FMC/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuidoDipietro%2FFMC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28789720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cubing","data-visualization","fewest-moves","fmc","fmc-solutions","rubik","speedcubing","wca"],"created_at":"2026-01-26T22:00:42.593Z","updated_at":"2026-01-26T22:01:36.421Z","avatar_url":"https://github.com/GuidoDipietro.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"#### _Repository featured on the \u003ca href=\"https://archiveprogram.github.com/\"\u003eGithub Archive Project!\u003c/a\u003e_\n\n### Everything I have about FMC.\n\n- All my solutions\n- Some 'theory' that I found useful at some moment\n- Data visualization programs in Python\n- And whatnot.\n\n# So what the hell is FMC?\n\nFMC stands for \"Fewest Moves Challenge\" and is an official event recognized by the [World Cube Association](https://www.worldcubeassociation.org/), which involves solving a given scramble for a Rubik's Cube in the fewest moves as possible, with a one hour limit. Competitors shall hand in a written solution after the hour (just like an exam!)\n\n[I've](https://www.worldcubeassociation.org/persons/2013DIPI01) held the title for the Argentinian National Champion, the South American Champion, and held the South American Records for this event several times, being one of the world's top20 best at this event.\n\n---\n\n# What's in here?\n\n## `scripts` folder\n\nSome programs in Python that compute stats and stuff.\n\n- **histoplotter.py**  \n  Plots a histogram of all solutions + last by breakpoints.  \n  Example usage:  \n  `python histoplotter 25,50,75` -\u003e as many as you'd like  \n  or `python histoplotter` for default breakpoints (50,100,200).  \n  Also displays some other brief stats.\n  \u003cbr\u003e\u003cbr\u003e\u003cimg src=\"misc/program_caps/histoplotter.PNG\" width=650\u003e\u003cbr\u003e\u003cbr\u003e\n- **mo3s.py**  \n  Frequency plot of all rolling mo3s in the last N solutions (default: N = all) (using console arguments).  \n  \u003cbr\u003e\u003cbr\u003e\u003cimg src=\"misc/program_caps/mo3s.PNG\" width=700\u003e\u003cbr\u003e\u003cbr\u003e\n- **mo3-counter.py**  \n  Counts how many times you got / beat / got\u0026beat a given mo3 result.\n  \u003cbr\u003e\u003cbr\u003e\u003cimg src=\"misc/program_caps/mo3-counter.png\" width=700\u003e\u003cbr\u003e\u003cbr\u003e\n- **worst_of_X.py**  \n  Mean of worst solution (and 2nd and 3rd worst) by chunks. Partition and scan stats. Customizable sizes.\n  \u003cbr\u003e\u003cbr\u003e\u003cimg src=\"misc/program_caps/worst_of_X.PNG\" width=650\u003e\u003cbr\u003e\u003cbr\u003e\n- **splits.py**  \n  Computes mean of DR / HTR / finish (estimated) / all, and displays histograms of all those splits (except finish).\n  \u003cbr\u003e\u003cbr\u003e\u003cimg src=\"misc/program_caps/splits.PNG\" width=750\u003e\u003cbr\u003e\u003cbr\u003e\n- **odd-even**  \n  I noticed my histoplotter.py graphs was a bit strange... with some tendency towards odd results being much more likely than even. So I just checked it with this program and got shocked.  \n  **odd-even-reduced.py**  \n  This one measures it on the latest X to S attempts, decreasing by a step of S. For example, last 100, 75, 50, and 25 attempts.\n  \u003cbr\u003e\u003cbr\u003e\u003cimg src=\"misc/program_caps/odd-even-reduced.PNG\" width=650\u003e\u003cbr\u003e\u003cbr\u003e\n  **odd-even-sequential.py**  \n  This does the same but by partitioning the set on chunks of size S.\n  \u003cbr\u003e\u003cbr\u003e\u003cimg src=\"misc/program_caps/odd-even-sequential.PNG\" width=650\u003e\u003cbr\u003e\u003cbr\u003e\n- **moreplots.py**  \n  Ugly scatter plot with best-fit regression line, my first attempt at visualizing data here.\n\n## `data`\n\nText files with solutions and results used for computing stats, my own and foreign. Worth noting:\n\n- **\\_\\_FMC_all.txt**  \n  All my FMC solutions. Period.\n- **\\_\\_FMC.txt**  \n  All my FMC solutions, skipping the first 100 for more normalized reconstructions.\n- **\\_\\_FMC_num.txt**  \n  All my FMC results, numerical result only.\n- **\\_\\_FMC_sub30s.txt**  \n  All my FMC solutions that are under 30 moves. Created when these were rare, only kept as a tradition now.\n\n## `solutions`\n\nSome solutions I found especially nice (PBs / interesting solutions), both mine and foreign.\nAlso reconstructions of all my official FMC attempts (except World's 46).\n\n## `theory`\n\nThings I noticed or found worth pointing out. Some are algorithms, some are ways to solve certain cases, etc.\n\n## `misc`\n\nRandom pictures, screencaps, or other documents.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguidodipietro%2Ffmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguidodipietro%2Ffmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguidodipietro%2Ffmc/lists"}