• Welcome to the Speedsolving.com, home of the web's largest puzzle community!
    You are currently viewing our forum as a guest which gives you limited access to join discussions and access our other features.

    Registration is fast, simple and absolutely free so please, join our community of 35,000+ people from around the world today!

    If you are already a member, simply login to hide this message and begin participating in the community!

BLD Memo Tools

Joined
Jul 28, 2010
Messages
624
Likes
137
Location
Vancouver, BC, Canada
WCA
2010MATT02
YouTube
Keroma03
Thread starter #1
A few months ago I released BLD Memo Tool. Since then I have been working on BLD Memo Tools. It does everything that the original one did, and more.

  • Enter your own letter scheme, buffers, and many more settings (just the first time; bookmark the page to save your settings (no cookies))
  • Has default settings loaded (Speffz) and is easy to change your settings
  • Has all cubic puzzles up to 7x7x7 (I also plan on adding megaminx and gigaminx when I have time later)
  • Takes in a scramble and generates a memo for you, or takes in a scramble and a memo and applies the memo to the scramble
  • Update: Also has a "Trainer" tool; see update below dated 2016 01 14.
This can be used to practice execution only, to practice memo only, or for postmortems in the event of a DNF. I hope later for the page to automatically generate random scrambles, but for now you need to paste in your own. Updated: Now generates scrambles, and for practicing memo you can apply new scrambles on top of old scrambles.

Any feedback is appreciated, so please let me know of features you like/don't like, or would like to be added.

Tip: If you don't use Speffz letter scheme and don't want to enter your letter scheme into each separate puzzle page, try the following:
Updated: See the update explanation below, from 2016 01 14.

  • Enter your settings in 7x7x7 (or the largest puzzle you plan on using) and click submit
  • Bookmark the resulting url as "7x7x7"
  • Edit the url by replacing "7x7x7" with "6x6x6", load the new page, then click change settings
  • Any compatible 7x7x7 settings will be loaded as the default 6x6x6 settings; modify as appropriate and click submit
  • Bookmark the resulting url as "6x6x6"
  • Repeat with 6x6x6 replaced by 5x5x5, 4x4x4, 3x3x3, 2x2x2

UPDATE (2015 09 22)

  • You can now select a setting to have the scramble displayed on the second page of check-memo instead of the first page
  • If you deal with edge-corner parity by memorizing as if a pair of edges or corners is swapped, you can now specify this in the settings
  • If you swap M-slice targets in your memo, you can now specify this in the settings (similarly for r2/l2 for wings and U2 for centers)

UPDATE (2015 09 25)

I've added the scrambles for 2x2x2-7x7x7, as described in the thread below (no random state, essentially just random move sequences of length 15, 25, 40, 60, 80, 100 respectively). Random state will be added later when I find the time, for 2x2x2 and 3x3x3.

UPDATE (2015 09 30)

Added new buttons to reduce the number of clicks required to start a new scramble and added the option to apply new scrambles on top of old scrambles.

UPDATE (2016 01 14)

Added "Trainer" tool. You select a type of piece (such as corner or wing) and an amount of letter pairs, and it generates memo of that length which, when applied to a solved cube, returns the cube to the solved state. The memo is not trivial (AB CD DC BA won't appear) and has no repeated letter pairs.

The idea for this new feature was entirely Roman's. He suggested it to me as a great tool for warming up before a solve. Personally, I like using it to practice execution.

I also made it much simpler to transfer your settings between puzzles. If you are at your bookmarked page for a puzzle (say 3x3x3), clicking on "Home" and then on another puzzle (say 4x4x4) in the home menu will transfer all compatible settings. You can then click "Change Settings" on the 4x4x4 page to fine-tune any settings which are different for you on 3x3x3 vs 4x4x4 (such as adding a wings letter scheme), and then bookmark the new page to save your 4x4x4 settings.
In particular, if you want to use the new Trainer tool to practice say corners, you can visit your 3x3x3 page, click "Home", then click "Trainer". This way you won't have to configure any settings. You can also bookmark the Trainer page.

UPDATE (2019 06 19)

There have been many good suggestions in this thread, some of which I added within the first year or so. Since then, I haven't really touched this project, other than to fix bugs people have brought up. Having written it almost four years ago, I can now see how bad most of the code actually is (it was one of my first ever projects). If I get time, I will one day redo the whole tool (possibly in a different language - this was done in racket) with the code greatly improved, and many of the missing suggestions added. But no guarantee that I'll ever get the time/motivation unfortunately.
(Also fixed a bug in the 2x2x2 memo checker.)
 
Last edited:
Joined
Jul 28, 2010
Messages
624
Likes
137
Location
Vancouver, BC, Canada
WCA
2010MATT02
YouTube
Keroma03
Thread starter #4
@Keroma, does the 11 and 12 for the orders in memo/execution means that it would be done respectively after 1 and 2 ?
No, they are treated as ordinary numbers, so 11 comes after 10, 12 comes after 11, and so on. If you want them to come after 1 and 2 respectively, then you can change them to 1.5 and 2.5, or bump everything else up appropriately and change them to 2 and 4 respectively.
 
Joined
Jul 28, 2010
Messages
624
Likes
137
Location
Vancouver, BC, Canada
WCA
2010MATT02
YouTube
Keroma03
Thread starter #6
Oh, were you asking because the 3x3x3 default settings are just 1, 2, 11, 12? That's because the default settings are common to all puzzles, and 7x7x7 has 12 types of memo (6 types of centers and 2 types of wings additionally), and the types numbered 3 through 10 are hidden for 3x3x3 as they are not applicable. I might change that.

If anyone is curious, the default settings are located here.
 
Joined
Dec 24, 2014
Messages
243
Likes
1
Location
London, United Kingdom
WCA
2014BERK02
YouTube
Maximilian Berkmann
#7
Oh, were you asking because the 3x3x3 default settings are just 1, 2, 11, 12? That's because the default settings are common to all puzzles, and 7x7x7 has 12 types of memo (6 types of centers and 2 types of wings additionally), and the types numbered 3 through 10 are hidden for 3x3x3 as they are not applicable. I might change that.

If anyone is curious, the default settings are located here.
Yeah kind of, anyway now as I saw the default settings I understand why.
 

mark49152

Super Moderator
Staff member
Joined
Oct 29, 2012
Messages
4,660
Likes
3,176
Location
UK
WCA
2015RIVE05
YouTube
mark49152
#8
I've had a play with it tonight and it's a nice tool. I will use this to work on improving my memo speed without execution.

Bug report: if I put in lower case letters to "check memo" I get a blank page with just the 3x3x3 heading.

Feature request #1: I'd like to also check whether I correctly remember to do parity. I memo parity by putting a Z at the end of my edges sequence. Could you please add an option to check for a Z (or other specified letter) if there is parity?

Feature request #2: I'm an M2 user and I swap my C/W and S/I letters during memo not execution. This tool doesn't expect that. So I would memo XW when the second target is the UF sticker, but the tool expects XC. Is it possible to add an option to interchange M slice targets on even swaps?

Feature request #3: When practising memo, I don't want to check the scramble first, as that would be inspection. So I suggest it would be better to not show the cube image until after "check memo" has been pressed, and then show the original scramble as well as the cube state after execution. That way, if my memo is incorrect, I can check the scramble afterwards to see if it was a mis-scramble.

Feature request #4: A scrambler :D

EDIT: post #2048... cool :cool:
 
Joined
Jul 28, 2010
Messages
624
Likes
137
Location
Vancouver, BC, Canada
WCA
2010MATT02
YouTube
Keroma03
Thread starter #9
Bug report: if I put in lower case letters to "check memo" I get a blank page with just the 3x3x3 heading.
Things are done via string equality, so "a" and "A" are different. This isn't really a bug, in the sense that this was the outcome I was expecting when I wrote the code. I'd recommend either using caps lock or changing to lower case letter schemes.

In general, if you enter invalid memo, settings, or scrambles, you will get a blank page.

Feature request #1: I'd like to also check whether I correctly remember to do parity. I memo parity by putting a Z at the end of my edges sequence. Could you please add an option to check for a Z (or other specified letter) if there is parity?
I'm happy to add features to this tool so that it is able to handle parity in a more sophisticated way. If this is a common way that people deal with parity, then I will add it in. Is it? (I have no idea!)

Note that in applying your memo to the cube, I literally just swap your buffer with the next target each time (so half the time the state is in an unreachable position). How would the above parity check be demonstrated in the scramble display?

Feature request #2: I'm an M2 user and I swap my C/W and S/I letters during memo not execution. This tool doesn't expect that. So I would memo XW when the second target is the UF sticker, but the tool expects XC. Is it possible to add an option to interchange M slice targets on even swaps?
I used to do this to, though personally I find it faster to do it the other way now. I'll definitely add this to 3x3x3 edges.

Feature request #3: When practising memo, I don't want to check the scramble first, as that would be inspection. So I suggest it would be better to not show the cube image until after "check memo" has been pressed, and then show the original scramble as well as the cube state after execution. That way, if my memo is incorrect, I can check the scramble afterwards to see if it was a mis-scramble.
I'll add an extra setting where you chose to display the scramble on the initial page, or save it for the final page.

The original reason why I decided to have the scramble displayed on the initial page is for postmortems on 4x4x4. This way I can deduce my reorientation without re-scrambling the cube.

Feature request #4: A scrambler :D
I suppose I can relatively easily generate random move sequences for 4x4x4+, but 3x3x3 would need to have random state, which I believe will take some effort for me to get working. Generating random states is easy enough, but I don't want to write a 3x3x3 solver from scratch. Anyone know of any code I could borrow and use on my site for this purpose?

Thanks for the feedback! :)
 
Joined
Dec 24, 2014
Messages
243
Likes
1
Location
London, United Kingdom
WCA
2014BERK02
YouTube
Maximilian Berkmann
#10
Things are done via string equality, so "a" and "A" are different. This isn't really a bug, in the sense that this was the outcome I was expecting when I wrote the code. I'd recommend either using caps lock or changing to lower case letter schemes.

In general, if you enter invalid memo, settings, or scrambles, you will get a blank page.



I'm happy to add features to this tool so that it is able to handle parity in a more sophisticated way. If this is a common way that people deal with parity, then I will add it in. Is it? (I have no idea!)

Note that in applying your memo to the cube, I literally just swap your buffer with the next target each time (so half the time the state is in an unreachable position). How would the above parity check be demonstrated in the scramble display?



I used to do this to, though personally I find it faster to do it the other way now. I'll definitely add this to 3x3x3 edges.



I'll add an extra setting where you chose to display the scramble on the initial page, or save it for the final page.

The original reason why I decided to have the scramble displayed on the initial page is for postmortems on 4x4x4. This way I can deduce my reorientation without re-scrambling the cube.



I suppose I can relatively easily generate random move sequences for 4x4x4+, but 3x3x3 would need to have random state, which I believe will take some effort for me to get working. Generating random states is easy enough, but I don't want to write a 3x3x3 solver from scratch. Anyone know of any code I could borrow and use on my site for this purpose?

Thanks for the feedback! :)
I think you should ask Lucas G. or perhaps Stefan P.
 

mark49152

Super Moderator
Staff member
Joined
Oct 29, 2012
Messages
4,660
Likes
3,176
Location
UK
WCA
2015RIVE05
YouTube
mark49152
#11
Things are done via string equality, so "a" and "A" are different.
I don't know what you programmed it in, but all modern languages should cater for case-insensitive comparison. It's easy to work around I guess, but it would be convenient and user friendly not to treat case difference as an error.

I'm happy to add features to this tool so that it is able to handle parity in a more sophisticated way. If this is a common way that people deal with parity, then I will add it in. Is it? (I have no idea!)
I learned it from Noah's tutorial so I guess I'm not alone, but I don't know how widely it's used. Actually it's not so much the Z that is important, it's indicating whether you remembered parity. At the moment, you could pass the memo check in the tool even though you would have failed for real by forgetting to fix parity. You could add a checkbox alongside the edge and corner inputs if you think Z is too specific.

Note that in applying your memo to the cube, I literally just swap your buffer with the next target each time (so half the time the state is in an unreachable position). How would the above parity check be demonstrated in the scramble display?
Good question. I'm not sure you can, unless you add some more method-specific settings. In my opinion, I think you should either do that or remove the display of cube state after execution, because there's no point showing it unless it's valid according to the user's method.

Another example - some people cater for parity by memoing corners first then exchanging UB and UL during their edge memo, so they actually solve those edges to the wrong positions in anticipation of an odd number of corner swaps. The tool can't cater for that today either.

I suppose I can relatively easily generate random move sequences for 4x4x4+, but 3x3x3 would need to have random state
Personally I think 25 random move scramble is adequate for memo testing, certainly better than nothing.

I suggest considering the user experience and comparing it to how we practice other things. For regular solving, this is what I and most others do: Open web page or app. Scramble from timer screen, start inspection & timer, solve, stop timer, next scramble is already on screen. Repeat over and over. All interactions and info on one page/app, minimum clicks/presses, no extra steps, no wasted time.

This is how the BLD memo tool works today. Open timer in one window, BLD tool in another. Scramble from timer screen. Copy scramble from timer. Switch to BLD tool and paste in scramble, with extra clicks on "restart" and "check memo". Go back to timer. Start timer, memo, stop. Go back to BLD tool. Type in letters and click "check". Speedsolve the cube before next scramble can be applied.

See, lots of switches and clicks and pastes and irritating delays.

Here's my ideal :D
  1. Everything in one window.
  2. Scramble from screen.
  3. Start timer, memo, stop.
  4. Type in letters, hit "check", and see an answer (maybe automatically DNFs the time on failure).
  5. New scramble already on screen, go back to 2 (and apply new scramble on top of old one so I don't even have to re-solve the cube).

Adding a timer would be a lot more work than adding a scrambler but I think it's OK for step 3 to use a different window/app as long as you don't have to paste between them. Having the next scramble applied on top of the old one would be a great time-saver, as long as there's a button to reset to a solved cube in case of mis-scramble.
 
Joined
Dec 24, 2014
Messages
243
Likes
1
Location
London, United Kingdom
WCA
2014BERK02
YouTube
Maximilian Berkmann
#12
Joined
Jul 28, 2010
Messages
624
Likes
137
Location
Vancouver, BC, Canada
WCA
2010MATT02
YouTube
Keroma03
Thread starter #14
I learned it from Noah's tutorial so I guess I'm not alone, but I don't know how widely it's used. Actually it's not so much the Z that is important, it's indicating whether you remembered parity. At the moment, you could pass the memo check in the tool even though you would have failed for real by forgetting to fix parity. You could add a checkbox alongside the edge and corner inputs if you think Z is too specific.


Good question. I'm not sure you can, unless you add some more method-specific settings. In my opinion, I think you should either do that or remove the display of cube state after execution, because there's no point showing it unless it's valid according to the user's method.
I don't think there is a perfect way to incorporate parity into the memo checking. I was assuming most people would remember to execute parity by the fact that they have an odd number of targets in each piece.

As for the display, it's not intended as "if you literally execute the memo you gave me, according to your specific method, then the cube state will look exactly like this". It's more of a guideline to check whether you missed any cycles or flipped/twisted pieces, and whether you memorized the correct letters. While it's true that it doesn't explicitly check if you remembered to execute parity, I think it does an adequate job of informing you of whether your memo was correct or not.

I will keep the display regardless. It's much more frustrating to have it simply tell you that your edge memo is incorrect, and have no clue as to why it is incorrect. This way the display, while not perfect, can give you enough clues to figure out why it is incorrect. I also find it very useful for postmortems, which is what I personally use the memo checker for.

Another example - some people cater for parity by memoing corners first then exchanging UB and UL during their edge memo, so they actually solve those edges to the wrong positions in anticipation of an odd number of corner swaps. The tool can't cater for that today either.
So they memo as if the UB and UL edges are swapped? I think I've seen this around before, so I'll add it in as another setting you can choose.

Personally I think 25 random move scramble is adequate for memo testing, certainly better than nothing.
Yes, for now I will add in random move sequences for all the puzzles. Hopefully later I can go back and improve them to random state for 3x3x3 (the other bonus of having random state for 3x3x3 is that I could supply corners-only, edges-only, no-parity, single-cycle, and other scramble types).

I suggest considering the user experience and comparing it to how we practice other things. For regular solving, this is what I and most others do: Open web page or app. Scramble from timer screen, start inspection & timer, solve, stop timer, next scramble is already on screen. Repeat over and over. All interactions and info on one page/app, minimum clicks/presses, no extra steps, no wasted time.

This is how the BLD memo tool works today. Open timer in one window, BLD tool in another. Scramble from timer screen. Copy scramble from timer. Switch to BLD tool and paste in scramble, with extra clicks on "restart" and "check memo". Go back to timer. Start timer, memo, stop. Go back to BLD tool. Type in letters and click "check". Speedsolve the cube before next scramble can be applied.

See, lots of switches and clicks and pastes and irritating delays.

Here's my ideal :D
  1. Everything in one window.
  2. Scramble from screen.
  3. Start timer, memo, stop.
  4. Type in letters, hit "check", and see an answer (maybe automatically DNFs the time on failure).
  5. New scramble already on screen, go back to 2 (and apply new scramble on top of old one so I don't even have to re-solve the cube).

Adding a timer would be a lot more work than adding a scrambler but I think it's OK for step 3 to use a different window/app as long as you don't have to paste between them. Having the next scramble applied on top of the old one would be a great time-saver, as long as there's a button to reset to a solved cube in case of mis-scramble.
I think you have a lot of good ideas here. I do not intend to turn this into a timer which keeps track of your times and DNFs and stuff. However, I will look into having less clicks, and the option to apply the scramble on top of the old scramble.

No promises on when I will get any of this done by. Hopefully Sunday.

Thank you for the feedback :)
 

mark49152

Super Moderator
Staff member
Joined
Oct 29, 2012
Messages
4,660
Likes
3,176
Location
UK
WCA
2015RIVE05
YouTube
mark49152
#15
Thanks for listening. I can see myself spending a lot of time with this useful tool and am looking forward to seeing what you come up with.
 
Joined
Dec 24, 2014
Messages
243
Likes
1
Location
London, United Kingdom
WCA
2014BERK02
YouTube
Maximilian Berkmann
#16
I don't think there is a perfect way to incorporate parity into the memo checking. I was assuming most people would remember to execute parity by the fact that they have an odd number of targets in each piece.

As for the display, it's not intended as "if you literally execute the memo you gave me, according to your specific method, then the cube state will look exactly like this". It's more of a guideline to check whether you missed any cycles or flipped/twisted pieces, and whether you memorized the correct letters. While it's true that it doesn't explicitly check if you remembered to execute parity, I think it does an adequate job of informing you of whether your memo was correct or not.

I will keep the display regardless. It's much more frustrating to have it simply tell you that your edge memo is incorrect, and have no clue as to why it is incorrect. This way the display, while not perfect, can give you enough clues to figure out why it is incorrect. I also find it very useful for postmortems, which is what I personally use the memo checker for.



So they memo as if the UB and UL edges are swapped? I think I've seen this around before, so I'll add it in as another setting you can choose.



Yes, for now I will add in random move sequences for all the puzzles. Hopefully later I can go back and improve them to random state for 3x3x3 (the other bonus of having random state for 3x3x3 is that I could supply corners-only, edges-only, no-parity, single-cycle, and other scramble types).



I think you have a lot of good ideas here. I do not intend to turn this into a timer which keeps track of your times and DNFs and stuff. However, I will look into having less clicks, and the option to apply the scramble on top of the old scramble.

No promises on when I will get any of this done by. Hopefully Sunday.

Thank you for the feedback :)
For the timer, I would personally be fine with having just a working one that would be synchronized with the rest of the page.
 
Joined
Jul 28, 2010
Messages
624
Likes
137
Location
Vancouver, BC, Canada
WCA
2010MATT02
YouTube
Keroma03
Thread starter #17
Some updates (to 3x3x3 - 7x7x7):
  • You can now select a setting to have the scramble displayed on the second page of check-memo instead of the first page
  • If you deal with edge-corner parity by memorizing as if a pair of edges or corners is swapped, you can now specify this in the settings
  • If you swap M-slice targets in your memo, you can now specify this in the settings (similarly for r2/l2 for wings and U2 for centers)

If you have the page bookmarked, you will need to open it up, go to change settings, modify the new ones as appropriate, submit them, and then update the bookmark. If it's not behaving as you would expect, let me know.

Next up I will add random move sequences, hopefully this weekend, and then work on the "less-clicks" and applying the next scramble on the old scramble type stuff. Again, no guarantees on when any of this will get done.
 
Top