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

pll_trainer: helps you practice PLL's

popstar_dave

Member
Joined
Mar 30, 2008
Messages
27
Location
Australia
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
 

Johannes91

Member
Joined
Mar 28, 2006
Messages
1,341
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.
 

blgentry

Member
Joined
Apr 10, 2008
Messages
263
Location
Miami, Florida
^ 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.
 

badmephisto

Member
Joined
Aug 29, 2007
Messages
836
YouTube
Visit Channel
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
 

roinuj2

Member
Joined
Oct 6, 2007
Messages
19
^ 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
 

Inusagi

Member
Joined
Oct 6, 2007
Messages
606
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.
 

badmephisto

Member
Joined
Aug 29, 2007
Messages
836
YouTube
Visit Channel
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.
 
Joined
Apr 17, 2008
Messages
735
Location
Massachusetts, USA
WCA
2009JOHN07
YouTube
Visit Channel
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.
 

Lucas Garron

Administrator
Joined
Jul 6, 2007
Messages
3,718
Location
California
WCA
2006GARR01
YouTube
Visit Channel
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 :)
 

Inusagi

Member
Joined
Oct 6, 2007
Messages
606
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.
 

PCwizCube

Premium Member
Joined
May 9, 2008
Messages
967
YouTube
Visit Channel
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.....
 

fanwuq

Member
Joined
Dec 5, 2007
Messages
2,831
WCA
2008FANW01
YouTube
Visit Channel
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.
 

badmephisto

Member
Joined
Aug 29, 2007
Messages
836
YouTube
Visit Channel
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.
 

fanwuq

Member
Joined
Dec 5, 2007
Messages
2,831
WCA
2008FANW01
YouTube
Visit Channel
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.
 

badmephisto

Member
Joined
Aug 29, 2007
Messages
836
YouTube
Visit Channel
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
 

fanwuq

Member
Joined
Dec 5, 2007
Messages
2,831
WCA
2008FANW01
YouTube
Visit Channel
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:
Top