Lucas Garron
Administrator
It's pretty clear that the WCA scramblers need to be replaced with a new system. tnoodle is the leading candidate for this, but it still hasn't been adopted. I decided to see if I could make something that is a more straightforward replacement. So:
Mark 2
A new tool to generate competition-style scrambles in your browser.
If you print the page directly to PDF, you get something like this.
Some features:
I'm interested in submitting this to the WCA to be approved as an official scrambler.
It has a few issues, mainly that it's a little slow for 3x3x3 and Square-1 scrambles. However, it gives you updates as it's generating, and it should finish in a reasonable time in a decent browser.
Feedback?
If you'd like to help, run the benchmark, and post the results here in a spoiler (along with specs like your OS and browser), like below.
Try to generate a Print Preview, and see if every scramble set fits on a page, properly formatted (like the example link at the top).
Tell me if anything goes wrong, and if you have any ideas why.
Mac OSX Lion, 2.3GHz, 8GB RAM, Google Chrome 15
If you have generated official scrambles for a competition before (and please, only if you've had the experience of actually doing so):
- Would you use Mark 2 if it were approved as an official scrambler, and why?
- Name some things you like about it.
- Name some things you think it would need in order to be usable.
Mark 2
A new tool to generate competition-style scrambles in your browser.
If you print the page directly to PDF, you get something like this.
Some features:
- Completely browser-side Javascript. Everything stays on your computer, and it works offline.
- Old WCA-style interface.
- Simple UI for an arbitrary selection of rounds.
- Prints each set of scrambles on a new page.
- Markov random-state scrambles for 3x3x3 and Square-1 (from QBX and PPT).
- Simpler Clock notation (from qqtimer).
- (Relatively) reusable .js scramblers for WCA puzzles.
I'm interested in submitting this to the WCA to be approved as an official scrambler.
It has a few issues, mainly that it's a little slow for 3x3x3 and Square-1 scrambles. However, it gives you updates as it's generating, and it should finish in a reasonable time in a decent browser.
Feedback?
If you'd like to help, run the benchmark, and post the results here in a spoiler (along with specs like your OS and browser), like below.
Try to generate a Print Preview, and see if every scramble set fits on a page, properly formatted (like the example link at the top).
Tell me if anything goes wrong, and if you have any ideas why.
Mac OSX Lion, 2.3GHz, 8GB RAM, Google Chrome 15
Benchmark Results:
Done!
- General [6122ms, 21602ms] Done scrambling all events.
- Specific [96ms, 4898ms] Generating scramble #5 of 5.
- Specific [837ms, 4802ms] Generating scramble #4 of 5.
- Specific [2724ms, 3965ms] Generating scramble #3 of 5.
- Specific [1227ms, 1241ms] Generating scramble #2 of 5.
- Specific [14ms, 14ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Rubik's Cube scrambler already initialized.
- General [4528ms, 15480ms] Generating 5 scrambles for Rubik's Cube: Round 3x3x3 Again
- Specific [30ms, 4391ms] Generating scramble #5 of 5.
- Specific [39ms, 4361ms] Generating scramble #4 of 5.
- Specific [83ms, 4322ms] Generating scramble #3 of 5.
- Specific [68ms, 4239ms] Generating scramble #2 of 5.
- Specific [20ms, 4171ms] Generating scramble #1 of 5.
- Specific [1759ms, 4151ms] 14. Done initializing Square-1 Solver. [1759ms split, 4129ms total]
- Specific [209ms, 2392ms] 13. Edges distance prune table... [209ms split, 2370ms total]
- Specific [15ms, 2183ms] 12. Corners distance prune table... [15ms split, 2161ms total]
- Specific [21ms, 2168ms] 11. Generating prune tables. [21ms split, 2146ms total]
- Specific [289ms, 2147ms] 10. Edges combination move table... [289ms split, 2125ms total]
- Specific [17ms, 1858ms] 9. Edges permutation move table... [17ms split, 1836ms total]
- Specific [240ms, 1841ms] 8. Corner combination move table... [240ms split, 1819ms total]
- Specific [13ms, 1601ms] 7. Corner permutation move table... [13ms split, 1579ms total]
- Specific [63ms, 1588ms] 6. Generating move tables. [63ms split, 1566ms total]
- Specific [761ms, 1525ms] 5. Shape Table Depth: 15/20 [762ms split, 1503ms total]
- Specific [438ms, 764ms] 4. Shape Table Depth: 12/20 [437ms split, 741ms total]
- Specific [273ms, 326ms] 3. Shape Table Depth: 10/20 [273ms split, 304ms total]
- Specific [26ms, 53ms] 2. Generating shape tables. [26ms split, 31ms total]
- Specific [27ms, 27ms] 1. Initializing Square-1 Solver. [5ms split, 5ms total]
- Specific [0ms, 0ms] Initializing Square-1 scrambler (only needs to be done once).
- General [358ms, 10952ms] Generating 5 scrambles for Square-1: Round Square-1
- Specific [63ms, 277ms] Generating scramble #5 of 5.
- Specific [68ms, 214ms] Generating scramble #4 of 5.
- Specific [64ms, 146ms] Generating scramble #3 of 5.
- Specific [59ms, 82ms] Generating scramble #2 of 5.
- Specific [23ms, 23ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing Megaminx scrambler (only needs to be done once).
- General [195ms, 10594ms] Generating 5 scrambles for Megaminx: Round Megaminx
- Specific [42ms, 163ms] Generating scramble #5 of 5.
- Specific [38ms, 121ms] Generating scramble #4 of 5.
- Specific [34ms, 83ms] Generating scramble #3 of 5.
- Specific [32ms, 49ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing Pyraminx scrambler (only needs to be done once).
- General [192ms, 10399ms] Generating 5 scrambles for Pyraminx: Round Pyraminx
- Specific [36ms, 149ms] Generating scramble #5 of 5.
- Specific [31ms, 113ms] Generating scramble #4 of 5.
- Specific [31ms, 82ms] Generating scramble #3 of 5.
- Specific [34ms, 51ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing Rubik's Clock scrambler (only needs to be done once).
- General [209ms, 10207ms] Generating 5 scrambles for Rubik's Clock: Round Clock
- Specific [64ms, 145ms] Generating scramble #3 of 3.
- Specific [65ms, 81ms] Generating scramble #2 of 3.
- Specific [16ms, 16ms] Generating scramble #1 of 3.
- Specific [0ms, 0ms] Initializing 7x7 Cube scrambler (only needs to be done once).
- General [162ms, 9998ms] Generating 3 scrambles for 7x7 Cube: Round 7x7x7
- Specific [46ms, 115ms] Generating scramble #3 of 3.
- Specific [52ms, 69ms] Generating scramble #2 of 3.
- Specific [17ms, 17ms] Generating scramble #1 of 3.
- Specific [0ms, 0ms] Initializing 6x6 Cube scrambler (only needs to be done once).
- General [197ms, 9836ms] Generating 3 scrambles for 6x6 Cube: Round 6x6x6
- Specific [37ms, 159ms] Generating scramble #5 of 5.
- Specific [33ms, 122ms] Generating scramble #4 of 5.
- Specific [35ms, 89ms] Generating scramble #3 of 5.
- Specific [37ms, 54ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing 5x5 Cube scrambler (only needs to be done once).
- General [161ms, 9639ms] Generating 5 scrambles for 5x5 Cube: Round 5x5x5
- Specific [27ms, 130ms] Generating scramble #5 of 5.
- Specific [26ms, 103ms] Generating scramble #4 of 5.
- Specific [28ms, 77ms] Generating scramble #3 of 5.
- Specific [32ms, 49ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing 4x4 Cube scrambler (only needs to be done once).
- General [9354ms, 9478ms] Generating 5 scrambles for 4x4 Cube: Round 4x4x4
- Specific [3076ms, 6160ms] Generating scramble #5 of 5.
- Specific [275ms, 3084ms] Generating scramble #4 of 5.
- Specific [328ms, 2809ms] Generating scramble #3 of 5.
- Specific [1903ms, 2481ms] Generating scramble #2 of 5.
- Specific [10ms, 578ms] Generating scramble #1 of 5.
- Specific [10ms, 568ms] Done initializing 3x3x3.
- Specific [167ms, 558ms] Prune table initialization: Step 6 of 6.
- Specific [76ms, 391ms] Prune table initialization: Step 5 of 6.
- Specific [10ms, 315ms] Prune table initialization: Step 4 of 6.
- Specific [12ms, 305ms] Prune table initialization: Step 3 of 6.
- Specific [15ms, 293ms] Prune table initialization: Step 2 of 6.
- Specific [10ms, 278ms] Prune table initialization: Step 1 of 6.
- Specific [10ms, 268ms] Initializing 3x3x3 prune tables.
- Specific [81ms, 258ms] Prune table initialization: Step 6 of 6.
- Specific [79ms, 177ms] Prune table initialization: Step 5 of 6.
- Specific [15ms, 98ms] Prune table initialization: Step 4 of 6.
- Specific [27ms, 83ms] Prune table initialization: Step 3 of 6.
- Specific [33ms, 56ms] Prune table initialization: Step 2 of 6.
- Specific [9ms, 23ms] Prune table initialization: Step 1 of 6.
- Specific [14ms, 14ms] Initializing 3x3x3 transition tables.
- Specific [0ms, 0ms] Initializing Rubik's Cube scrambler (only needs to be done once).
- General [123ms, 124ms] Generating 5 scrambles for Rubik's Cube: Round 3x3x3
- Specific [15ms, 105ms] Generating scramble #5 of 5.
- Specific [16ms, 90ms] Generating scramble #4 of 5.
- Specific [15ms, 74ms] Generating scramble #3 of 5.
- Specific [21ms, 59ms] Generating scramble #2 of 5.
- Specific [38ms, 38ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing 2x2 Cube scrambler (only needs to be done once).
- General [1ms, 1ms] Generating 5 scrambles for 2x2 Cube: Round 2x2x2
Done!
- General [6122ms, 21602ms] Done scrambling all events.
- Specific [96ms, 4898ms] Generating scramble #5 of 5.
- Specific [837ms, 4802ms] Generating scramble #4 of 5.
- Specific [2724ms, 3965ms] Generating scramble #3 of 5.
- Specific [1227ms, 1241ms] Generating scramble #2 of 5.
- Specific [14ms, 14ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Rubik's Cube scrambler already initialized.
- General [4528ms, 15480ms] Generating 5 scrambles for Rubik's Cube: Round 3x3x3 Again
- Specific [30ms, 4391ms] Generating scramble #5 of 5.
- Specific [39ms, 4361ms] Generating scramble #4 of 5.
- Specific [83ms, 4322ms] Generating scramble #3 of 5.
- Specific [68ms, 4239ms] Generating scramble #2 of 5.
- Specific [20ms, 4171ms] Generating scramble #1 of 5.
- Specific [1759ms, 4151ms] 14. Done initializing Square-1 Solver. [1759ms split, 4129ms total]
- Specific [209ms, 2392ms] 13. Edges distance prune table... [209ms split, 2370ms total]
- Specific [15ms, 2183ms] 12. Corners distance prune table... [15ms split, 2161ms total]
- Specific [21ms, 2168ms] 11. Generating prune tables. [21ms split, 2146ms total]
- Specific [289ms, 2147ms] 10. Edges combination move table... [289ms split, 2125ms total]
- Specific [17ms, 1858ms] 9. Edges permutation move table... [17ms split, 1836ms total]
- Specific [240ms, 1841ms] 8. Corner combination move table... [240ms split, 1819ms total]
- Specific [13ms, 1601ms] 7. Corner permutation move table... [13ms split, 1579ms total]
- Specific [63ms, 1588ms] 6. Generating move tables. [63ms split, 1566ms total]
- Specific [761ms, 1525ms] 5. Shape Table Depth: 15/20 [762ms split, 1503ms total]
- Specific [438ms, 764ms] 4. Shape Table Depth: 12/20 [437ms split, 741ms total]
- Specific [273ms, 326ms] 3. Shape Table Depth: 10/20 [273ms split, 304ms total]
- Specific [26ms, 53ms] 2. Generating shape tables. [26ms split, 31ms total]
- Specific [27ms, 27ms] 1. Initializing Square-1 Solver. [5ms split, 5ms total]
- Specific [0ms, 0ms] Initializing Square-1 scrambler (only needs to be done once).
- General [358ms, 10952ms] Generating 5 scrambles for Square-1: Round Square-1
- Specific [63ms, 277ms] Generating scramble #5 of 5.
- Specific [68ms, 214ms] Generating scramble #4 of 5.
- Specific [64ms, 146ms] Generating scramble #3 of 5.
- Specific [59ms, 82ms] Generating scramble #2 of 5.
- Specific [23ms, 23ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing Megaminx scrambler (only needs to be done once).
- General [195ms, 10594ms] Generating 5 scrambles for Megaminx: Round Megaminx
- Specific [42ms, 163ms] Generating scramble #5 of 5.
- Specific [38ms, 121ms] Generating scramble #4 of 5.
- Specific [34ms, 83ms] Generating scramble #3 of 5.
- Specific [32ms, 49ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing Pyraminx scrambler (only needs to be done once).
- General [192ms, 10399ms] Generating 5 scrambles for Pyraminx: Round Pyraminx
- Specific [36ms, 149ms] Generating scramble #5 of 5.
- Specific [31ms, 113ms] Generating scramble #4 of 5.
- Specific [31ms, 82ms] Generating scramble #3 of 5.
- Specific [34ms, 51ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing Rubik's Clock scrambler (only needs to be done once).
- General [209ms, 10207ms] Generating 5 scrambles for Rubik's Clock: Round Clock
- Specific [64ms, 145ms] Generating scramble #3 of 3.
- Specific [65ms, 81ms] Generating scramble #2 of 3.
- Specific [16ms, 16ms] Generating scramble #1 of 3.
- Specific [0ms, 0ms] Initializing 7x7 Cube scrambler (only needs to be done once).
- General [162ms, 9998ms] Generating 3 scrambles for 7x7 Cube: Round 7x7x7
- Specific [46ms, 115ms] Generating scramble #3 of 3.
- Specific [52ms, 69ms] Generating scramble #2 of 3.
- Specific [17ms, 17ms] Generating scramble #1 of 3.
- Specific [0ms, 0ms] Initializing 6x6 Cube scrambler (only needs to be done once).
- General [197ms, 9836ms] Generating 3 scrambles for 6x6 Cube: Round 6x6x6
- Specific [37ms, 159ms] Generating scramble #5 of 5.
- Specific [33ms, 122ms] Generating scramble #4 of 5.
- Specific [35ms, 89ms] Generating scramble #3 of 5.
- Specific [37ms, 54ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing 5x5 Cube scrambler (only needs to be done once).
- General [161ms, 9639ms] Generating 5 scrambles for 5x5 Cube: Round 5x5x5
- Specific [27ms, 130ms] Generating scramble #5 of 5.
- Specific [26ms, 103ms] Generating scramble #4 of 5.
- Specific [28ms, 77ms] Generating scramble #3 of 5.
- Specific [32ms, 49ms] Generating scramble #2 of 5.
- Specific [17ms, 17ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing 4x4 Cube scrambler (only needs to be done once).
- General [9354ms, 9478ms] Generating 5 scrambles for 4x4 Cube: Round 4x4x4
- Specific [3076ms, 6160ms] Generating scramble #5 of 5.
- Specific [275ms, 3084ms] Generating scramble #4 of 5.
- Specific [328ms, 2809ms] Generating scramble #3 of 5.
- Specific [1903ms, 2481ms] Generating scramble #2 of 5.
- Specific [10ms, 578ms] Generating scramble #1 of 5.
- Specific [10ms, 568ms] Done initializing 3x3x3.
- Specific [167ms, 558ms] Prune table initialization: Step 6 of 6.
- Specific [76ms, 391ms] Prune table initialization: Step 5 of 6.
- Specific [10ms, 315ms] Prune table initialization: Step 4 of 6.
- Specific [12ms, 305ms] Prune table initialization: Step 3 of 6.
- Specific [15ms, 293ms] Prune table initialization: Step 2 of 6.
- Specific [10ms, 278ms] Prune table initialization: Step 1 of 6.
- Specific [10ms, 268ms] Initializing 3x3x3 prune tables.
- Specific [81ms, 258ms] Prune table initialization: Step 6 of 6.
- Specific [79ms, 177ms] Prune table initialization: Step 5 of 6.
- Specific [15ms, 98ms] Prune table initialization: Step 4 of 6.
- Specific [27ms, 83ms] Prune table initialization: Step 3 of 6.
- Specific [33ms, 56ms] Prune table initialization: Step 2 of 6.
- Specific [9ms, 23ms] Prune table initialization: Step 1 of 6.
- Specific [14ms, 14ms] Initializing 3x3x3 transition tables.
- Specific [0ms, 0ms] Initializing Rubik's Cube scrambler (only needs to be done once).
- General [123ms, 124ms] Generating 5 scrambles for Rubik's Cube: Round 3x3x3
- Specific [15ms, 105ms] Generating scramble #5 of 5.
- Specific [16ms, 90ms] Generating scramble #4 of 5.
- Specific [15ms, 74ms] Generating scramble #3 of 5.
- Specific [21ms, 59ms] Generating scramble #2 of 5.
- Specific [38ms, 38ms] Generating scramble #1 of 5.
- Specific [0ms, 0ms] Initializing 2x2 Cube scrambler (only needs to be done once).
- General [1ms, 1ms] Generating 5 scrambles for 2x2 Cube: Round 2x2x2
If you have generated official scrambles for a competition before (and please, only if you've had the experience of actually doing so):
- Would you use Mark 2 if it were approved as an official scrambler, and why?
- Name some things you like about it.
- Name some things you think it would need in order to be usable.
Last edited: