pll_trainer: helps you practice PLL's

Yeah, I downloaded this last night and had a good practice with it. It's great. Really helped me recognise what I need to work on (*cough* N-Perms > 6s *cough*). Thanks heaps for making it.

Cheers,
Dave
 
Show me a good free host that supports Haskell.
why not use the same host that your normal cross app is already using? Are you concerned about traffic? CPU cycles? Space?
Traffic is so low that it will never be a problem, but CPU and space are. The S1 solver will time out if you give it a scramble with many 8-movers, so a similarly written XCross solver would have no hope of terminating. I also used a stupid format to store the tables, which takes much more space than necessary.

But I do have a faster Haskell solver. I guess I could try compiling it and then uploading the executable. Or I could just generate a bunch of scrambles and solutions and upload them.
 
^ Many PLLs are either own inverses, so simply running the PLL alg on a solved cube will bring the cube to that PLL state. However, for the ones that aren't their own inverses (Gs, etc) there are setup sequences you can run to produce the PLL you want.

Dan's cube station has a setup sequence for all 21 PLLs. For example, here's his page on the Gs complete with setup sequences:

http://www.cubestation.co.uk/cs2/index.php?page=3x3x3/cfop/pll/pllcaseg

I've written a program to choose random PLL setups, transform them some, and then feed the transformed setup to me to test my recognition and execution of the PLLs. I'm probably going to release it here soon.

I should credit Bad Mephisto here, as when I first started cubing, I found a reference to someone's PLL test program that I'm almost certain was his. But later when I wanted to use it, I couldn't find it. So I started writing my own instead. So thanks for inspiring the core idea Sir. :)

Brian.
 
cool! Writing Rubik's cube software is fun :p
my pll trainer here is basically just for execution testing, so it would make sense that we should have something for recognition as well. I'm a little skeptical about how it would work though, and if that can be trained at all. The recognition times are on scale of milliseconds, so the speed of hand can be a factor in the times and stuff. hm
 
^ Many PLLs are either own inverses, so simply running the PLL alg on a solved cube will bring the cube to that PLL state. However, for the ones that aren't their own inverses (Gs, etc) there are setup sequences you can run to produce the PLL you want.

Dan's cube station has a setup sequence for all 21 PLLs. For example, here's his page on the Gs complete with setup sequences:

http://www.cubestation.co.uk/cs2/index.php?page=3x3x3/cfop/pll/pllcaseg

I've written a program to choose random PLL setups, transform them some, and then feed the transformed setup to me to test my recognition and execution of the PLLs. I'm probably going to release it here soon.

I should credit Bad Mephisto here, as when I first started cubing, I found a reference to someone's PLL test program that I'm almost certain was his. But later when I wanted to use it, I couldn't find it. So I started writing my own instead. So thanks for inspiring the core idea Sir. :)

Brian.

This is just excellent, i can now force beat these damn algs into my head without worrying about everytime i get to the PLL having a different case. :)
Thanks a lot.:cool:

Bad Memph, i downloaded your VB application, its nice! thanks too :D
 
I don't think this program is training your pll better then without the trainer. It's different to see a pll on the cube, then on that program. So the recognize thing isn't the same.
 
I don't think this program is training your pll better then without the trainer. It's different to see a pll on the cube, then on that program. So the recognize thing isn't the same.

This program is not for recognition, its for execution training. I have stated that numerous times and its also in the README i think. Of course its not for recognition, how could recognizing a bunch of arrows correlate with recognizing a PLL in a normal solve? That is a ridiculous claim.
 
A programming idea for 3x3 PLL recogition... First, establish the user's preferred colors for ULFRBD. (This can be saved for later runs.) Next, flash a row of 6 colored squares to indicate the up-left and up-front edges. Now the user needs to identify the PLL the pattern indicates. The answer can given as a keyboard character: A,E,F,G,H,J,N,R,T,U,V,Y,Z. The user can, if desired, use the left/right arrows to cycle the U face edge colors in the display. This will not test which of the 4 G patterns (for example) the user recognizes, but that's not so bad. Maybe something can be figured out for that.
 
A programming idea for 3x3 PLL recogition... First, establish the user's preferred colors for ULFRBD. (This can be saved for later runs.) Next, flash a row of 6 colored squares to indicate the up-left and up-front edges. Now the user needs to identify the PLL the pattern indicates. The answer can given as a keyboard character: A,E,F,G,H,J,N,R,T,U,V,Y,Z. The user can, if desired, use the left/right arrows to cycle the U face edge colors in the display. This will not test which of the 4 G patterns (for example) the user recognizes, but that's not so bad. Maybe something can be figured out for that.
http://www.ryanheise.com/cube/generator.html :)
 
This program is not for recognition, its for execution training. I have stated that numerous times and its also in the README i think. Of course its not for recognition, how could recognizing a bunch of arrows correlate with recognizing a PLL in a normal solve? That is a ridiculous claim.

Then why does the pll case show up 1 second before the execution? Why do you have to recognize it soo fast? And you don't need a program with some arrows to get better pll...

That's what I think.
 
This program is not for recognition, its for execution training. I have stated that numerous times and its also in the README i think. Of course its not for recognition, how could recognizing a bunch of arrows correlate with recognizing a PLL in a normal solve? That is a ridiculous claim.

Then why does the pll case show up 1 second before the execution? Why do you have to recognize it soo fast? And you don't need a program with some arrows to get better pll...

That's what I think.
You can set it to how many second you want it to show up you want. That's just the default settings. The program is designed to time your PLL executions. It tells you the case, and then you do it as fast as you can. It can store times, averaging them, saving your best time, and keeps your SD. It does that all for you, unless you want to calculate that manually.....
 
I still think this program is stupid for PLL execution. I can open up any old timer and practice which ever alg I want. If I alter the program so that the pictures are realistic. It can work very well for recognition.
 
I still think this program is stupid for PLL execution. I can open up any old timer and practice which ever alg I want. If I alter the program so that the pictures are realistic. It can work very well for recognition.

You, of course, are completely missing the point. It tracks your average of each PLL and gives you a general overview of your PLL execution skills. You can save a session, and two weeks later after you practice some PLLs you can see how much you improved. Any other timer just times you. This is not just a timer. And its not stupid.

Insuagi: 1 second was set arbitrary. Its not too fast for me. It was originally at 3 seconds I think, but that was waaay too much time for me. I just sat there for 3 seconds waiting to start execution. That's why I made it so that you can set the time that is most comfortable for you.
 
I still think this program is stupid for PLL execution. I can open up any old timer and practice which ever alg I want. If I alter the program so that the pictures are realistic. It can work very well for recognition.

You, of course, are completely missing the point. It tracks your average of each PLL and gives you a general overview of your PLL execution skills. You can save a session, and two weeks later after you practice some PLLs you can see how much you improved. Any other timer just times you. This is not just a timer. And its not stupid.

It can work very well for recognition. so it's not stupid. Then you can time your PLL recognition+execution for a more realistic view of how long your LL truly takes. I set the timer to start immediately. But using it strictly for timing execution seems pointless. You can always use Jnet and save session averages for each alg too if you like. I'm pretty sure people don't need the computer to memorize what times they get for each alg. I'm pretty sure people can feel it themselves when they get better at an alg. But thanks for the program. I just use it for a purpose you didn't intend.
 
I still think this program is stupid for PLL execution. I can open up any old timer and practice which ever alg I want. If I alter the program so that the pictures are realistic. It can work very well for recognition.

You, of course, are completely missing the point. It tracks your average of each PLL and gives you a general overview of your PLL execution skills. You can save a session, and two weeks later after you practice some PLLs you can see how much you improved. Any other timer just times you. This is not just a timer. And its not stupid.

It can work very well for recognition. so it's not stupid. Then you can time your PLL recognition+execution for a more realistic view of how long your LL truly takes. I set the timer to start immediately. But using it strictly for timing execution seems pointless. You can always use Jnet and save session averages for each alg too if you like. I'm pretty sure people don't need the computer to memorize what times they get for each alg. I'm pretty sure people can feel it themselves when they get better at an alg. But thanks for the program. I just use it for a purpose you didn't intend.

How are you going to implement recognition in a program? seeing two sides does not give you enough information to determine the PLL. There are cases where you need to see 3 sides to pinpoint the PLL. So how are you going to turn the cube? You cannot possibly model the real-solve scenario where you can just simply tilt the cube whichever way you want to determine the case
 
I still think this program is stupid for PLL execution. I can open up any old timer and practice which ever alg I want. If I alter the program so that the pictures are realistic. It can work very well for recognition.

You, of course, are completely missing the point. It tracks your average of each PLL and gives you a general overview of your PLL execution skills. You can save a session, and two weeks later after you practice some PLLs you can see how much you improved. Any other timer just times you. This is not just a timer. And its not stupid.

It can work very well for recognition. so it's not stupid. Then you can time your PLL recognition+execution for a more realistic view of how long your LL truly takes. I set the timer to start immediately. But using it strictly for timing execution seems pointless. You can always use Jnet and save session averages for each alg too if you like. I'm pretty sure people don't need the computer to memorize what times they get for each alg. I'm pretty sure people can feel it themselves when they get better at an alg. But thanks for the program. I just use it for a purpose you didn't intend.

How are you going to implement recognition in a program? seeing two sides does not give you enough information to determine the PLL. There are cases where you need to see 3 sides to pinpoint the PLL. So how are you going to turn the cube? You cannot possibly model the real-solve scenario where you can just simply tilt the cube whichever way you want to determine the case

An easy way is to a screenshot of each case on the ryanheise simulator (it is see through).

A harder way is to take a picture of each case for all the AUF for each case. Then just randomly generate the cases. Perhaps show front and back view. (I think it is possible to tell all the cases from just 2 faces, but it's harder sometimes.) And when you keep track of the times, somehow group the AUFs for the same case together.

The best way, and hardest way is to get some sort of applet in there where you can rotate the cube by pressing the arrow keys.

I'm not so good with programming, so I can't really help to make it.

Edit: the easiest way is to take Brunson's page and just add a timer to it!
 
Last edited:
Back
Top