• 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 40,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!

Unified BLD Algorithms Database

mark49152

Premium Member
Joined
Oct 29, 2012
Messages
4,719
Location
UK
WCA
2015RIVE05
YouTube
Visit Channel
@mark49152, which of Jack Cai's sheets is being polled?

For UFR-FDR-DBR / Speffz KW, Jack is only listed next to [D R2 D2: [R U R', D]], but all the sheets I've found have [U R D': [U', R' D R]].

The ones I've checked: Jack's 3-Style Algs 2021, Jack Cai's 3-Style Commutators (updated 2020), Jack's 3-Style Algs v2, Jack Cai's Starter 3-Style Algs.

I'm guessing there's (at least) one more sheet of his I'm missing? 😄

Edit: Oh, it must be this one (the 2nd one listed on Roman's tables) - which looks like his first sheet: Jack's Comms
Funny coincidence you should post about this now, I just discovered today that Jack has multiple sheets. I've added them all now and they'll get scraped on the next run. Thanks!
 

mark49152

Premium Member
Joined
Oct 29, 2012
Messages
4,719
Location
UK
WCA
2015RIVE05
YouTube
Visit Channel
Massive update since I last posted here - all bigBLD comms are now added. Currently working on cleaning up some of the alg formatting to eliminate some of the redundant forms and provide some additional useful information about each. Custom letter scheme is still on the list for after that. Any other suggestions, let me know!
 

kubesolver

Premium Member
Joined
Nov 15, 2019
Messages
425
I find navigation a bit hard.

A simple suggestion that will save me a lot of clicking would be to add a link. If the selected text would be a link to UFR-UBR-* it would save me a lot of clicking.
 

Attachments

  • Screenshot_20211125-222828_Brave.jpg
    Screenshot_20211125-222828_Brave.jpg
    101.7 KB · Views: 13

eyeoh

Member
Joined
May 11, 2020
Messages
38
Location
Australia
Thanks again Mark - I "finished" corners the other week and have just started learning edges this week so this site continues to save me a lot of time.

One difference I've noticed with edges is how it's more common for a blder to switch algs over time (I guess the options are broader with edges). Would there be a way to highlight which alg is the most recent for any given "duplicate" name?

Perhaps names appearing next to a blder's older alg could be italicised so we know which one(s) they've since switched away from?
 

mark49152

Premium Member
Joined
Oct 29, 2012
Messages
4,719
Location
UK
WCA
2015RIVE05
YouTube
Visit Channel
I find navigation a bit hard.

A simple suggestion that will save me a lot of clicking would be to add a link. If the selected text would be a link to UFR-UBR-* it would save me a lot of clicking.
Do you mean have one case shown at a time on each page? So one extra click to choose the case to show, but no more scrolling to look for it?

Thanks again Mark - I "finished" corners the other week and have just started learning edges this week so this site continues to save me a lot of time.

One difference I've noticed with edges is how it's more common for a blder to switch algs over time (I guess the options are broader with edges). Would there be a way to highlight which alg is the most recent for any given "duplicate" name?

Perhaps names appearing next to a blder's older alg could be italicised so we know which one(s) they've since switched away from?
Possibly. I can't really tell which algs a BLDer currently uses, only what is and is not in their sheet. If an alg used to be but is no longer in their sheet I might be able to show their name italicised. I'll think about it.
 

kubesolver

Premium Member
Joined
Nov 15, 2019
Messages
425
Do you mean have one case shown at a time on each page
No, the presentation is great.
But I would love if when browsing the page for say UFR buffer where the first letter is X I could quickly (e.g. by clicking on the comm X-Y) open the page with comms for the same buffer UFR with first letter Y.

In URL words:
Quick links from page t=corn-3cycle&b=C&s=D to t=corn-3cycle&b=C&s=X
 

mark49152

Premium Member
Joined
Oct 29, 2012
Messages
4,719
Location
UK
WCA
2015RIVE05
YouTube
Visit Channel
No, the presentation is great.
But I would love if when browsing the page for say UFR buffer where the first letter is X I could quickly (e.g. by clicking on the comm X-Y) open the page with comms for the same buffer UFR with first letter Y.

In URL words:
Quick links from page t=corn-3cycle&b=C&s=D to t=corn-3cycle&b=C&s=X
Got it, OK, I'll look into it. Thanks for the suggestion.
 

Lykos

Member
Joined
Feb 27, 2016
Messages
44
Oh my god, this is really amazing! I also dreamed about having something like this and I was considering doing something like that.

I have a website that contains some tools that I use for blind training. It's not open to the public yet, but will be soon once I add a few important features. I currently also scrape a few alg sheets, but using your tool would be even better.

There are a few things I can contribute because I also wrote a BLD alg sheet parser:
* I also don't parse labels (like you), but I still try to guess the structure of the alg sheet. But I do that _after_ I guessed which alg does what. Basically I first try to figure out whether rows or columns represent the first piece and then I try guess which rows and columns represent which piece. This is the code in case you are interested: https://github.com/Lykos/cube_trainer/blob/master/lib/cube_trainer/commonality_finder.rb
* In your case, you will probably find a lot of unusable algs or algs that are for the wrong case. If you try to guess the structure, you will instead get a lot of algs that you know are incorrect. (most alg sheets I parsed had a lot of them)
* I the wrote some code that tries to fix the incorrect algs. This was very successful and on most alg sheets, it was able to fix the majority of broken algs. Most algs are broken due to a missing ' or 2 or due to two moves being swapped etc. If you just try those simple modifications, you will get a lot of new useable algs. See here for my code: https://github.com/Lykos/cube_trainer/blob/master/lib/cube_trainer/commutator_checker.rb

I also generated reports that I sent to owners of alg sheets sometimes. The report also included the row in the spreadsheet and the suggested fix.

Let me know if this is interesting for you and if you need anything else.
 

mark49152

Premium Member
Joined
Oct 29, 2012
Messages
4,719
Location
UK
WCA
2015RIVE05
YouTube
Visit Channel
Let me know if this is interesting for you and if you need anything else.
Wow, thanks so much for sharing! My code is in Python so I can't reuse yours directly, but will certainly take a look and see if I can learn anything and use some ideas, if you're OK with that.

You're correct that currently I'm not paying attention to rows/columns to predict each case. I do "fix" a lot of cells, but mostly due to notation variants or errors, missing or wrong symbols, extra characters and comments, etc. If an alg solves the wrong case for its cell, it gets assigned to the case it does solve. If an alg doesn't do anything useful, it's marked as unknown. Many of the remaining unknowns are, as you've said, things like [R D R, U'] or [R' D R, D] or M U2 M U2.

I did put some thought into how to fix unknown algs and detect algs that are wrong for the case, and considered both checking rows/columns and simply looking to adjacent cells for hints. After looking through the unknowns to see what kinds of errors there were, I wasn't convinced I could consistently and reliably determine what the author intended, and wasn't yet convinced that auto-fixing algs was an appropriate thing for my site to do anyway, so I decided for now to put all the unknowns into a separate Google sheet where I could invite the authors and wider community to comment to add fixes. That's still my plan, although I haven't got round to it yet.

I will certainly have a look at your code to see if it will change my mind about whether I can reliably fix some algs automatically. Definitely there are some for which it could be quite easy if the expected case can be predicted from the cell. I might run some tests to see what proportion those are, and evaluate the results to see if they are sensible.

Many thanks again for sharing.
 

Lykos

Member
Joined
Feb 27, 2016
Messages
44
Wow, thanks so much for sharing! My code is in Python so I can't reuse yours directly, but will certainly take a look and see if I can learn anything and use some ideas, if you're OK with that.

You're correct that currently I'm not paying attention to rows/columns to predict each case. I do "fix" a lot of cells, but mostly due to notation variants or errors, missing or wrong symbols, extra characters and comments, etc. If an alg solves the wrong case for its cell, it gets assigned to the case it does solve. If an alg doesn't do anything useful, it's marked as unknown. Many of the remaining unknowns are, as you've said, things like [R D R, U'] or [R' D R, D] or M U2 M U2.

I did put some thought into how to fix unknown algs and detect algs that are wrong for the case, and considered both checking rows/columns and simply looking to adjacent cells for hints. After looking through the unknowns to see what kinds of errors there were, I wasn't convinced I could consistently and reliably determine what the author intended, and wasn't yet convinced that auto-fixing algs was an appropriate thing for my site to do anyway, so I decided for now to put all the unknowns into a separate Google sheet where I could invite the authors and wider community to comment to add fixes. That's still my plan, although I haven't got round to it yet.

I will certainly have a look at your code to see if it will change my mind about whether I can reliably fix some algs automatically. Definitely there are some for which it could be quite easy if the expected case can be predicted from the cell. I might run some tests to see what proportion those are, and evaluate the results to see if they are sensible.

Many thanks again for sharing.
Yes feel free to reuse some ideas from my code and let me know if I can help. I didn't expect you can just reuse it, it's quite specific to my application even in terms of what input it expects etc and I didn't write it with the expectation that it would be used by anyone else. But the strategy has worked very well IMO. There was a large number of algs that could be fixed by knowing which case it's supposed to solve and applying some simple mutations until it solves it, way more than the ones that had syntax errors like missing brackets. And I understand that going too far into the direction of auto-fixing is bad because it might not be the alg that the author intended. But very simple things like messing up the order of comms, having a U2 instead of a U etc are good I think. If you know which case the sheet is supposed to solve and

Btw, is the code public? What technologies are you using? Are you planning to add twists and flips or even e2e2? Are you planning to add info which algs sheets this uses? And would you be okay if I scrape the site for my site (giving credits to you and the owners of the alg sheets obviously)? If so, do you have an API I can call or should I try to scrape the website?
 

mark49152

Premium Member
Joined
Oct 29, 2012
Messages
4,719
Location
UK
WCA
2015RIVE05
YouTube
Visit Channel
Yes feel free to reuse some ideas from my code and let me know if I can help. I didn't expect you can just reuse it, it's quite specific to my application even in terms of what input it expects etc and I didn't write it with the expectation that it would be used by anyone else. But the strategy has worked very well IMO. There was a large number of algs that could be fixed by knowing which case it's supposed to solve and applying some simple mutations until it solves it, way more than the ones that had syntax errors like missing brackets. And I understand that going too far into the direction of auto-fixing is bad because it might not be the alg that the author intended. But very simple things like messing up the order of comms, having a U2 instead of a U etc are good I think. If you know which case the sheet is supposed to solve and

Btw, is the code public? What technologies are you using? Are you planning to add twists and flips or even e2e2? Are you planning to add info which algs sheets this uses? And would you be okay if I scrape the site for my site (giving credits to you and the owners of the alg sheets obviously)? If so, do you have an API I can call or should I try to scrape the website?
Yes I have extracted flips, twists and other algs, just not yet added them to the site. I have a bunch of other features I'd like to work on first. The code is not public and I'm not yet decided whether I will release it, as it's not really general purpose or designed for others to use and I'd have to tidy it up a lot to avoid embarrassment :). Let's take it to PM.
 

kubesolver

Premium Member
Joined
Nov 15, 2019
Messages
425
I would also find it useful if the server understood more URL parameters

Namely
t=corn-3cycle&b=UFR&s=UBL
Could resolve to the same page as
t=corn-3cycle&b=C&s=A
 
Top