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

ZBLL trainer

Hazel

Premium Member
Joined
Apr 1, 2017
Messages
1,681
Location
in your walls :3
Sometimes I can get some information about the ZBLL based on the scramble, even after you removed all of the 2gen and short scrambles. For example, one scramble I got was F U2 F' U' F U' F' L' U' L U' L' U2 L, a combo of two Sunes, which means I know it's a 2GLL. Instead of going through all the algs and systematically removing those that give too much information away, I have another idea: wide moves. For example, just by looking at the scramble, I would have no idea that l F2 R' F' l D l' F' R F' l' was just R U2 R' U' R U R' U' R U' R'. This wouldn't be the default, but it could be a setting for people like me that can deduce a lot about the ZBLL just by looking at the scramble.
This is interesting—an option to have scrambles translated to incorporate wide/slice moves... it sounds like a lot of work though, it might be easier for Roman if the community just came up with a list of scrambles to remove from the trainer.
 

GenTheSnail

Member
Joined
Mar 18, 2016
Messages
2,249
Location
Illinois, USA
WCA
2016GEEN01
YouTube
Visit Channel
Sometimes I can get some information about the ZBLL based on the scramble, even after you removed all of the 2gen and short scrambles. For example, one scramble I got was F U2 F' U' F U' F' L' U' L U' L' U2 L, a combo of two Sunes, which means I know it's a 2GLL. Instead of going through all the algs and systematically removing those that give too much information away, I have another idea: wide moves. For example, just by looking at the scramble, I would have no idea that l F2 R' F' l D l' F' R F' l' was just R U2 R' U' R U R' U' R U' R'. This wouldn't be the default, but it could be a setting for people like me that can deduce a lot about the ZBLL just by looking at the scramble.

I feel like this is just a rather inevitable thing. If I'm doing a small enough set of cases, like on CP case of 12, then I start to recognize some of the cases. Personally, I can tell that that new sequence is an H 2GLL by executing it. I definitely had no idea what it was just by looking at it, but by doing the moves themselves, it was pretty identifiable as a double sune. It also sucked to execute. I don't think making the scrambles slightly harder to identify but harder to do is really worth it.

But, if that's something that a bunch of people want, then using the Manipulate function in Conrad Crider's algorithm translator could be a useful tool I'm sure.
 

Hazel

Premium Member
Joined
Apr 1, 2017
Messages
1,681
Location
in your walls :3
I feel like this is just a rather inevitable thing. If I'm doing a small enough set of cases, like on CP case of 12, then I start to recognize some of the cases. Personally, I can tell that that new sequence is an H 2GLL by executing it. I definitely had no idea what it was just by looking at it, but by doing the moves themselves, it was pretty identifiable as a double sune. It also sucked to execute. I don't think making the scrambles slightly harder to identify but harder to do is really worth it.

But, if that's something that a bunch of people want, then using the Manipulate function in Conrad Crider's algorithm translator could be a useful tool I'm sure.
I believe that in Roman's trainer, scrambles are randomly rotated around the y-axis. That's how I made it while I was developing HazelTrainer, and it wasn't too difficult to code.
 

Roman

Member
Joined
Jan 10, 2013
Messages
686
Location
Dubai, UAE
WCA
2012STRA02
YouTube
Visit Channel
Sometimes I can get some information about the ZBLL based on the scramble, even after you removed all of the 2gen and short scrambles. For example, one scramble I got was F U2 F' U' F U' F' L' U' L U' L' U2 L, a combo of two Sunes, which means I know it's a 2GLL. Instead of going through all the algs and systematically removing those that give too much information away, I have another idea: wide moves. For example, just by looking at the scramble, I would have no idea that l F2 R' F' l D l' F' R F' l' was just R U2 R' U' R U R' U' R U' R'. This wouldn't be the default, but it could be a setting for people like me that can deduce a lot about the ZBLL just by looking at the scramble.

That's an excellent idea! I will implement it when I get by.
 

Roman

Member
Joined
Jan 10, 2013
Messages
686
Location
Dubai, UAE
WCA
2012STRA02
YouTube
Visit Channel
🎉
New ZBLL Trainer update is live! Key upgrades:

✔️
Complete UI overhaul for a better user experience.
✔️
Dozen of light and dark themes to match your style.
✔️
Multilingual support with 15+ languages.
✔️
Elaborate settings that you would normally expect from a speedcubing timer.
✔️
Hotkeys for efficient training.
✔️
Improved codebase with VueJS.
Check it out at https://bestsiteever.ru/zbll and let me know your feedback. Enjoy cubing!
 

Hazel

Premium Member
Joined
Apr 1, 2017
Messages
1,681
Location
in your walls :3
This is amazing!! Very helpful for me :D
If possible, there's one tiny feature I've been yearning for for a while—an option to disable the timer entirely, so pressing the space bar simply goes to the next case.

Thanks for all your work!

EDIT: I found a bug as well. During recap mode, if you clear the times, recap mode automatically turns off and goes into regular random case mode.
 
Last edited:

Roman

Member
Joined
Jan 10, 2013
Messages
686
Location
Dubai, UAE
WCA
2012STRA02
YouTube
Visit Channel

Trexrush1

Member
Joined
Nov 3, 2013
Messages
168
WCA
2013MAZU02
What a pleasant surprise to wake up to!
Its nice to see the trainer move away from vanilla JS, I made a fork for training zbls and it was a little hard to work with 😅.

Speaking of which, I made a fork of your old zbll trainer so I could train zbls ( Link, I didnt fully polish it to my liking so sorry about that lol ), and I wonder if you were interested in implementing some of the ideas that I explored in this fork. I was actually planning on starting from scratch to address these (as well as a few other things), so I'm just tossing these out here as suggestions.
  • Have you looked into expanding into other algsets?
  • What about using a typescript / js based cube image generator such as PuzzleGen or sr-visualizer to create images and caching the PNGs/SVGs they generate, instead of using some variety of local images with a visualcube API backup like I believe you currently use?
  • What do you think about implementing a virtual cube? This is the main feature of my fork (besides training a different set)
    • I chose CubingJS for the virtual cube (instead of a 2D cube like Tao Yu's trainer uses for its virtual cube), though its missing a few features that I was looking for like detecting if a case is solved to a certain point, but I think no virtual cube trainer has this?
    • I implemented customizable keybinds and keybind presets, which I think is nice to have for any virtual cube.
  • I believe reading somewhere that you dont include algorithms for the zbll cases by design, but what about pulling algorithms from something like AlgDB, SpeedcubeDB, or something similar? Showing solutions could be toggleable.

Im also curious how you generate the zbll casemap, since that was one of the main challenges of expanding to other algsets for me, and Im curious if you have any ideas on if dynamically generating these in the future is even a viable choice?

Sorry for the long post, but this is such good timing since Im finishing up work on my current cubing related website and was going to start work on my algtrainer soon, so im decently passionate about this, + I like your trainer a lot, and the update got me excited 😆
 

Roman

Member
Joined
Jan 10, 2013
Messages
686
Location
Dubai, UAE
WCA
2012STRA02
YouTube
Visit Channel
Have you looked into expanding into other algsets?
You mean things like OLL/PLL trainer? There are two ways that I can go with these - either copy-paste the ZBLL Trainer Vue code (timer, settings etc.) for each trainer project, or extend my current VueJS implementation to support different algsets. The latter is obviously "the right" way but requires huge architectural rework. Maybe I'll be in a mood for it someday.
What about using a typescript / js based cube image generator
Looks promising, gonna switch to some of these, thanks a lot for the suggestions!
What do you think about implementing a virtual cube?
Yeah, probably not gonna fall into the rabbit hole of virtual cubes just yet :)

I believe reading somewhere that you dont include algorithms for the zbll cases by design
That's not the case at all! I'll add the suggested algs, maybe in my next commit.
 

Roman

Member
Joined
Jan 10, 2013
Messages
686
Location
Dubai, UAE
WCA
2012STRA02
YouTube
Visit Channel
Im also curious how you generate the zbll casemap, since that was one of the main challenges of expanding to other algsets for me, and Im curious if you have any ideas on if dynamically generating these in the future is even a viable choice?
It was a long ago and I think I used JACube to automatically find solutions for each ZBLL case, then invert each solution to get the scramble.

Then I found an amazing birdflu.lar5.com website that contained ALL 17-move algorithms which only change the last layer. On the project github it says "It's live at http://birdflu.lar5.com", but it's not live since 2020 or so :( It would be glad to find a mirror for this website and scrab top 100 17-move scrambles for all ZBLL cases.
 
Joined
Aug 12, 2013
Messages
5,090
Location
Brazil
SS Competition Results
YouTube
Visit Channel
EDIT: @Roman I hope you don't mind I post this here... -_-
just wanted to tell him this
  • What do you think about implementing a virtual cube? This is the main feature of my fork (besides training a different set)
    • I chose CubingJS for the virtual cube (instead of a 2D cube like Tao Yu's trainer uses for its virtual cube), though its missing a few features that I was looking for like detecting if a case is solved to a certain point, but I think no virtual cube trainer has this?
    • I implemented customizable keybinds and keybind presets, which I think is nice to have for any virtual cube
I'm developing a cube visualizer made in javascript, it will allow to apply any moves of the stardard notation in NxN cubes, and it will generate a image on the fly.

you will be able to use it easily to render cases, and if needed, extend it's core to show any type of visualization you want, as you will have access the state of the cube as json

1685042685659.png

It is almost complete. I will publish the v1 on github soon

I will also publish a different visualization and sim soon, that is, let's say, "fun" and novel and right now is working with the giiker i3s (not complete yet, but it's almost done too, just have to implement animations)

1685042636239.png
 
Last edited:

xyzzy

Member
Joined
Dec 24, 2015
Messages
2,878
Then I found an amazing birdflu.lar5.com website that contained ALL 17-move algorithms which only change the last layer. On the project github it says "It's live at http://birdflu.lar5.com", but it's not live since 2020 or so :( It would be glad to find a mirror for this website and scrab top 100 17-move scrambles for all ZBLL cases.
Could try contacting @rokicki.

I think this has the algs (with mirrors/inverses removed, presumably):
but I'm not sure how it's meant to be parsed.
 

rokicki

Member
Joined
Oct 31, 2008
Messages
301
Okay, I found the files I generated for Lars. They are in:

http://codercontest.com/firsttwo/firsttwo-#.mov.xz

where # ranges from 6 to 19. They are probably not in a format you prefer
though so let me know and I can change the format and/or provide more
information.

They are just raw sequences; they do not contain actual position information.

They are not reduced by symmetry or mirroring or inverse. (That would reduce
the size significantly but make them harder to deal with.)

I suggest starting by looking at the lower numbers (6-10 say) and go from there.

-tom
 

Roman

Member
Joined
Jan 10, 2013
Messages
686
Location
Dubai, UAE
WCA
2012STRA02
YouTube
Visit Channel
Okay, I found the files I generated for Lars. They are in:

http://codercontest.com/firsttwo/firsttwo-#.mov.xz

where # ranges from 6 to 19. They are probably not in a format you prefer
though so let me know and I can change the format and/or provide more
information.

They are just raw sequences; they do not contain actual position information.

They are not reduced by symmetry or mirroring or inverse. (That would reduce
the size significantly but make them harder to deal with.)

I suggest starting by looking at the lower numbers (6-10 say) and go from there.

-tom
These files are enough, thanks a ton!
I'll release an update with the new scrambles soon.
 

Roman

Member
Joined
Jan 10, 2013
Messages
686
Location
Dubai, UAE
WCA
2012STRA02
YouTube
Visit Channel
Thanks to @rokicki, zbll trainer has a new scramble engine now.

During the session, it always gives you scrambles of the same length, which is 13, 14 or 15 depending on the cases selected. The scrambles variety also increased greatly.

It also shows you suggested algs for the case, but this is work-in-progress feature that would be perfected later, as well as hopefully many other, including smart cubes 🙂
 

Hazel

Premium Member
Joined
Apr 1, 2017
Messages
1,681
Location
in your walls :3
That's awesome, thanks Roman!
The idea of being able to use my Giiker i3s smart cube with your trainer is wonderful, I hope that works out! A fork of Tao's trainer (link) has support for Giiker as well as a couple GAN smart cubes, might be useful to look at the javascript there if/when you decide to take a stab at it.
 
Joined
Aug 12, 2013
Messages
5,090
Location
Brazil
SS Competition Results
YouTube
Visit Channel
That's awesome, thanks Roman!
The idea of being able to use my Giiker i3s smart cube with your trainer is wonderful, I hope that works out! A fork of Tao's trainer (link) has support for Giiker as well as a couple GAN smart cubes, might be useful to look at the javascript there if/when you decide to take a stab at it.
I used this lib to integrate with giiker i3s a few days ago and it works perfectly


Pay attention to the name of the cube on the bluetooth list, it may be incorrect depending of the version. (mine had a different beginning and it wasn't finding it so I had to modify)
 
Top