Package: cubescrambler
cubescramblerA Python package for generating scrambles of various twisty puzzles, including the Rubik's cube, 4x4x4 cube, and others, based onpyTwistyScrambler.
Thanks tocsTimerfor providing the bulk of the Javascript scrambling source code around which this project is a wrapper.
And thanks forpyTwistyScramblerfor the base code this wrapper is built on.ReasonpyTwistyScrambler is usingPyExecJSfor executing the JavaScript but it's EOL and it needs nodejs or any other js runtime on the system. My version usesdukpywhich doesn't have any external dependencies and is actively maintained. There are no other changes besides removing FTO and rex puzzles because I didn't need them.Example usagefromcubescramblerimportscrambler333,scrambler222,scrambler444,\megaminxScrambler,squareOneScramblerscrambler333.get_WCA_scramble()# D2 L F2 L2 F2 U2 L D2 F2 L' B' U2 F2 D' F D2 B' U2 R U'scrambler222.get_WCA_scramble()# R' F2 U2 R' U R2 F' U' F' U'scrambler444.get_WCA_scramble()# L2 F D2 R U Fw' Uw D L F Rw D' F L2 F' Rw' F Uw B' F' L2 B' U' Rw' F B R' D U2 L2 Fw' B D' Rw' Uw' B' Fw' R2 L2 UmegaminxScrambler.get_WCA_scramble()# R-- D-- R++ D++ R++ D++ R++ D++ R++ D++ U R-- D++ R-- D++ R-- D++ R-- D++ R-- D-- U' R-- D++ R-- D-- R-- D++ R-- D-- R-- D-- U' R++ D++ R-- D-- R++ D-- R-- D++ R-- D-- U' R-- D-- R++ D++ R++ D-- R++ D++ R++ D-- U' R-- D-- R++ D-- R++ D-- R++ D-- R++ D++ U R++ D-- R++ D-- R++ D++ R-- D-- R++ D++ UsquareOneScrambler.get_WCA_scramble()# (0, -1)/(4, 1)/(-4, 5)/(0, -3)/(1, -2)/(3, 0)/(2, 0)/(0, -3)/(4, -3)/(0, -4)/(2, 0)/(5, -2)/(4, 0)What scrambles can be generated?3x3x3 (Rubik's cube)Inscrambler333module:get_WCA_scramble()random state scramble (WCA)get_3BLD_scramble()BLD scrambleget_edges_scramble()edges-onlyget_corners_scramble()corners-onlyget_LL_scramble()LL (last layer)get_F2L_scramble()F2L (first two layers)get_easy_cross_scramble(n=4)easy cross (where cross can be solved innmoves)get_LSLL_scramble()LSLLget_ZBLL_scramble()ZBLLget_ZZLL_scramble()ZZLLget_ZBLS_scramble()ZBLSget_LSE_scramble()LSEget_CMLL_scramble()CMLLget_CLL_scramble()CLLget_ELL_scramble()ELLget_EOLine_scramble()EO Lineget_2genRU_scramble()2-gen with RU movesget_2genLU_scramble()2-gen with LU movesget_2genMU_scramble()2-gen with MU movesget_3genFRU_scramble()3-gen with FRU movesget_3genRUL_scramble()3-gen with RUL movesget_3genRrU_scramble()3-gen with RrU movesget_half_turns_scramble()half-turns only2x2x2Inscrambler222module:get_WCA_scramble()random scramble (WCA)get_optimal_scramble()optimal random state scramble4x4x4Inscrambler444module:get_WCA_scramble()random scramble (WCA) (note: this isslow)get_4BLD_scramble(n=40)alias ofget_random_state_scramble(n=40)get_SiGN_scramble(n=40)SiGN-notation scramble of lengthnget_random_state_scramble(n=40)random state scramble of lengthnget_edges_scramble(n=8)edges scramble5x5x5Inscrambler555module:get_WCA_scramble(n=60)random scramble (WCA) of lengthnget_5BLD_scramble(n=60)alias ofget_WCA_scrambleget_SiGN_scramble(n=60)SiGN-notation scramble of lengthnget_edges_scramble(n=8)edges scramble6x6x6Inscrambler666module:get_WCA_scramble(n=80)random scramble (WCA) of lengthnget_SiGN_scramble(n=80)SiGN-notation scramble of lengthnget_edges_scramble(n=8)edges scramble7x7x7Inscrambler777module:get_WCA_scramble(n=100)random scramble (WCA) of lengthnget_SiGN_scramble(n=100)SiGN-notation scramble of lengthnget_edges_scramble(n=8)edges scramblePyraminxInpyraminxScramblermodule:get_WCA_scramble()random scramble (WCA)get_optimal_scramble()optimal random state scrambleMegaminxInmegaminxScramblermodule:get_WCA_scramble(n=70)random scramble (WCA) of lengthnget_Carrot_scramble(n=70)Carrot-notation scramble of lengthnget_old_style_scramble(n=70)old-style scramble of lengthnSquare-1InsquareOneScramblermodule:get_WCA_scramble()random scramble (WCA)get_face_turn_metric_scramble(n=40)face-turn metric scramble of lengthnget_twist_metric_scramble(n=20)twist metric scramble of lengthnSkewbInskewbScramblermodule:get_WCA_scramble()random scramble (WCA)get_ULRB_scramble()ULRB scrambleClockInclockScramblermodule:get_WCA_scramble()Clock scramble (WCA notation)get_Jaap_scramble()Clock scramble (Jaap notation)get_concise_scramble()Clock scramble (concise notation)get_efficient_pin_order_scramble()Clock scramble (efficient pin order notation)Big cubesInbigCubesScramblermodule:get_8x8x8_scrambler(n=120)8x8x8 scramble (SiGN notation) of lengthnget_9x9x9_scrambler(n=120)9x9x9 scramble (SiGN notation) of lengthnget_10x10x10_scrambler(n=120)10x10x10 scramble (SiGN notation) of lengthnget_11x11x11_scrambler(n=120)11x11x11 scramble (SiGN notation) of lengthnCuboidsIncuboidsScramblermodule:get_1x1x2_scramble()1x1x2 cuboid scrambleget_1x3x3_scramble()1x3x3 cuboid (floppy cube) scrambleget_floppy_cube_scramble()alias ofget_1x3x3_scramble()get_super_floppy_cube_scramble()1x3x3 cuboid (super floppy cube) scrambleget_2x2x3_scramble()2x2x3 cuboid scrambleget_3x3x2_scramble()3x3x2 cuboid scrambleget_3x3x4_scramble()3x3x4 cuboid scrambleget_3x3x5_scramble(n=25)3x3x5 cuboid scramble, wherenis the length of the non-3x3 portion of the scrambleget_3x3x6_scramble()3x3x6 cuboid scrambleget_3x3x7_scramble(n=40)3x3x7 cuboid scramble, wherenis the length of the non-3x3 portion of the scrambleCopyright NoticeThis software includes third party open source software components:pyTwistyScramblerfromeuphwesandcsTimerfromcs0x7f. Each of these software components have their own license. Please see ./LICENSE, and ./cubescrambler/js_resources/LICENSE.