# F2L Trainer Interest Check



## Thomas Henrissat (Aug 10, 2018)

Hello everyone !

I have recently been looking for a F2L trainer to help me improve my efficiency, but haven’t been able to find exactly what I was looking for. So I thought, if it doesn’t exist, why don’t you make it?

Before throwing myself head first into this, I wanted to ask you fellow cubers if you would be interested by this idea. Here are the main goal and the features I had in mind:

*Main Goal*
Help speedcubers to practice F2L cases efficiently, without having to do whole solves. The trainer gives you a scramble for a random case, you solve it and go on to the next one.

*Main features*
- Scramble to get to a random case from a solved cube
- Cube representation of the case
- Optimal solution(s)
- Timer

*Settings*
- Choose subset(s) to practice (Ex: Corner down, edge on top)
- Hide solution(s)
- Disable timer
- Dark theme (for your 2am sessions)

*Other ideas*
- Training by levels (from basic cases to most complex)
- Algorithm preferences (no cube rotation, no F or B moves, no wide moves)

Tell me what you think! If you have any recommendations feel free to tell me, it’s still just an idea.

Thank’s for time


----------



## Tabe (Aug 10, 2018)

That sounds good to me and is something I would definitely benefit from.


----------



## AMCuber (Aug 10, 2018)

I would use it without hesitation.


----------



## Thomas Henrissat (Aug 11, 2018)

Hi, thank you for your answers. As of right now twelve people voted that it's a good idea, it's enough for me. I'm going to start working on it today and will keep you updated. I have no idea how long it's going to take but I hope to have a working demo pretty fast.


----------



## Lux (Aug 11, 2018)

It seems to be quite a great idea!


----------



## Thomas Henrissat (Aug 11, 2018)

Lux said:


> It seems to be quite a great idea!


Thank you ! I'm currently working on the cube representation, I'm trying to make it display a cube state from a scramble, not easy.


----------



## pglewis (Aug 11, 2018)

There are a number of open source utilities out there for creating random state scrambles, rendering a cube representation, etc. Check out Lucas Garron's Github stuff: https://github.com/lgarron as one place to start.


----------



## Thomas Henrissat (Aug 11, 2018)

Oh of course I'm aware it has been done before, but I like the challenge 
Thank you for the link, I really like alg.cubing.net, but unlike it I'm going for a 2D representation not 3D.
I'm already close to being done, it should be good for tomorrow, then I'll move on to the rest of the app.


----------



## Thomas Henrissat (Aug 12, 2018)

Here is my progress so far:

At first I was planning to create just a 3 sided representation of the cube for the cases, changing manually the color of each piece that differed from the default state of the cube. But I quickly realized it would be a pain to write down the state of the cube for every single case. So I came to the conclusion that I needed of complete 3x3 model, that could output a full cube state from a scramble.

I started by creating a data structure representing the cube, then looked at how every single move was affecting my real cube and finally, I created functions to manipulate my data accordingly.
My trusty duct taped cube fixed a lot of mistakes I made at first !

One and a half days later it's fully functional, I can input an algorithm and apply it to the cube. It can take every legal move and it's variants (even full cube rotations) and ignores parentheses. The hole thing is coded in Javascript and you can see it in action here:






The good thing is, because the model covers the whole cube, I'll be able to use it for the F2L Trainer, and if I want, even for a future OLL or PLL Trainer.

Now I'm going to refactor the code and then I'll move on to creating the actual app.


----------



## Cubetastic5 (Aug 12, 2018)

Thomas Henrissat said:


> Here is my progress so far:
> 
> At first I was planning to create just a 3 sided representation of the cube for the cases, changing manually the color of each piece that differed from the default state of the cube. But I quickly realized it would be a pain to write down the state of the cube for every single case. So I came to the conclusion that I needed of complete 3x3 model, that could output a full cube state from a scramble.
> 
> ...


Wow! This is awesome. Are you going to make it an app using node js, or are you going to make it a website? Or are you going to use electron? This is pretty cool .


----------



## Thomas Henrissat (Aug 12, 2018)

Cubetastic5 said:


> Wow! This is awesome. Are you going to make it an app using node js, or are you going to make it a website? Or are you going to use electron? This is pretty cool .



Thank you!

I'm actually making a Next.js web app with Node.js and React, so that you can use it on any device (phone, tablet, laptop etc), Electron is great though!

I'm making good progress and building everything to be expendable, that way I'll be able to make trainers for OLL, PLL, other methods than CFOP and even other puzzles if I want to later. It's a lot of work but I'm confident I'll have a beta soon!


----------



## Adam Smith (Aug 21, 2018)

Good idea, go a head.


----------



## Thomas Henrissat (Aug 21, 2018)

I don't know if anyone is still following this thread, but here are the news:

We are now two developers working on the app, and we have made huge progress.
The scale of the project is way bigger than what it was when I talked about it here, and we are really looking forward to what's next.

If you are still interested in the app, keep an eye on the /r/Cubers subreddit, we will communicate there when we are ready.


----------



## AvGalen (Aug 22, 2018)

I didn't comment before because you seemed to have all the basics and extras covered. I would be most interested in "optimal" and "restricted (aka fingertrickfriendly)"


----------



## Thomas Henrissat (Aug 22, 2018)

AvGalen said:


> I didn't comment before because you seemed to have all the basics and extras covered. I would be most interested in "optimal" and "restricted (aka fingertrickfriendly)"


We are doing something similar, we pay a lot of attention to the solutions we choose and provide alternatives when we find it necessary.
We will also be open to suggestions for particular cases, and will add them if needed.


----------



## Robert Alden (Aug 22, 2018)

Can I just ask if it is going to be on a website or will it be a digital app for someone to download on a phone? And how long will it be before it comes out.


----------



## Thomas Henrissat (Aug 22, 2018)

Robert Alden said:


> Can I just ask if it is going to be on a website or will it be a digital app for someone to download on a phone? And how long will it be before it comes out.


Of course, it is going to be web application, so you'll be able to access it on any device.
I can't give you a precise date for an official release, we are still in development. But you should ear more from us in the next months, we work as hard as we can but we don't want to rush anything.


----------



## Thomas Henrissat (Sep 9, 2018)

I'm happy to announce that we are going to start our first testing phase soon, if you are interested take a look at our reddit post here.


----------



## Cubetastic5 (Sep 10, 2018)

Oh, lol! I didn't that was this app, but I registered already!


----------



## Thomas Henrissat (Sep 10, 2018)

Cubetastic5 said:


> Oh, lol! I didn't that was this app, but I registered already!


Yes we changed the name, I saw that you applied


----------



## Filipe Teixeira (Sep 20, 2018)

I didn't have any apps when I started speedsolving, so here is my learning process:

When I started, I printed badmephisto's algs for f2l and a list of scrambles. I would apply a scramble, solve the cross then look for a case and then apply the alg trying to understand what was going on. I learned the 42 cases this way. Then I started to understand that the algs overllaped and reduced to other basic cases.

With my discoveries I created this notation for f2l, based on reduction:
http://filipeteixeira.com.br/cube/?section=f2l
http://filipeteixeira.com.br/cube/f2l.pdf (PDF)

Next phase was to learn to reduce rotations, so I would scramble <R, U> by hand and try to solve it <R, U> again. I then found new algs by solving intuitively the f2l, then I learned full OLL and reached sub20.

Maybe you can use some of those ideas, mainly <R, U> and <L, U> when possible and scrambling whole cube to solve on 4 slots from every angle, because that's what is going to happen on real solves. not just solving DFR every time, that doesn't help, maybe leave that as an option.


----------



## Thomas Henrissat (Sep 21, 2018)

Filipe Teixeira said:


> I didn't have any apps when I started speedsolving, so here I my learning process:
> 
> When I started, I printed badmephisto's algs for f2l and a list o scrambles. I would apply a scramble, solve the cross then look for a case and then apply the alg trying to understand what was going on. I learned the 42 cases this way. Then I started to understand that the algs overllaped and reduced to other basic cases.
> 
> ...



Thank you for your sharing your experience. It's interesting because it's close to what we are doing, we had a similar train of thought when we started making the app. We hope to be able to help beginners achieve what you've done by yourself, making it easier for everyone to practice and learn better solutions.


----------



## Thomas Henrissat (Feb 2, 2019)

If anyone is still following this thread, this app is out in alpha!

Learn more about it here

__
https://www.reddit.com/r/Cubers/comments/amcg9u


----------



## Filipe Teixeira (Feb 2, 2019)

I'm in love T_T
the app is so polished and easy to use! congratulations for your work!

It would be great to have a comments section so we could share other algs and have votes for comments, like this algs:


setupmy solution
F' (U F U' F') U2 F

(R' F R F') (R U' R' U) (R U' R')

F' U' (F U2 F' U) F U'

U' r U' R' U R U r'

(R U' R' U') (R' F R F') U'

U2 R2 U2 R' U' R U' R2

F' U (F U F' U') F U'

M' U' R U R' U2 R U' r'

(R U' R' U') (F R' F' R) U'

l U L F' L' U' l'

(F' U' F U) (F' U F U2)

F' L' U2 L F

R' U' R2 U' R2 U2 R

(R U' R' U) (R U' R') U2 (R U' R')

(R U R') F (R U R' U') F'

U' R U R2' F R F' R U' R'


----------



## Thomas Henrissat (Feb 2, 2019)

Filipe Teixeira said:


> I'm in love T_T



I'm happy to ear that ahah!


----------



## SolvingRubik (Feb 4, 2019)

This looks great!

I love the SVG paths defining the stickers to look like modern speedcube faces. What this created manually? Or are you able to generate a side given different viewing angles etc...



Thomas Henrissat said:


> I started by creating a data structure representing the cube, then looked at how every single move was affecting my real cube and finally, I created functions to manipulate my data accordingly.
> 
> One and a half days later it's fully functional, I can input an algorithm and apply it to the cube. It can take every legal move and it's variants (even full cube rotations) and ignores parentheses. The hole thing is coded in Javascript and you can see it in action here:



Also i'm curious about the cube data model and functions to manipulate it that you mentioned above. Is it generic enough to model an NxN cube? And how have you implemented the methods to scramble? I wonder because i've made several javascript cube libraries but they always end up getting overly complicated. Also a bit inefficient, as when I apply a move to the data model I think I end up creating/destroying too many extra objects. So for large cubes it can be slow.

So I was curious what your approach was


----------



## Thomas Henrissat (Feb 4, 2019)

SolvingRubik said:


> This looks great!
> 
> I love the SVG paths defining the stickers to look like modern speedcube faces. What this created manually? Or are you able to generate a side given different viewing angles etc...
> 
> ...



Thank you!

I drew the SVG myself using my GTS2M as a model, the goal was to make it look like a modern speedcube while remaining easy to read.
The great thing about SVGs is that you can actually modify them in realtime using Javascript. My cube is all white by default and I apply the colors to correspond to a given cube state, you can even make it move and solve it like a real cube.

My model is based on array manipulations and can be up-scaled to represent bigger NxNxN cubes. It could also be used for a pyraminx model or other non-bandaged and non-shapeshifting puzzles. I'd like to try to model a Square-1, but that's going to be a lot harder!

I don't have any scramble functions, to be honest I don't know anything about them. I want to learn how they work in the future, but I already have a lot to do before that!

I don't know how efficient my model is. I could probably optimize it if it becomes to slow for bigger cubes, but right now it's stupidly fast ahah.


----------



## SolvingRubik (Feb 4, 2019)

Thomas Henrissat said:


> I'd like to try to model a Square-1, but that's going to be a lot harder!



Yeah! I had the same problem haha. I've built models for several twisty puzzles, and I'm In the process of generating images for N-layer megaminx / pyraminx style puzzles. But I realized that puzzles like the square-1 don't quite fit my architecture.


----------



## nop (Feb 4, 2019)

Did this ever see public release? I'm interested in this as well.


----------



## Thomas Henrissat (Feb 4, 2019)

SolvingRubik said:


> Yeah! I had the same problem haha. I've built models for several twisty puzzles, and I'm In the process of generating images for N-layer megaminx / pyraminx style puzzles. But I realized that puzzles like the square-1 don't quite fit my architecture.



Same for me, I would probably need a different model.


----------



## Thomas Henrissat (Feb 4, 2019)

nop said:


> Did this ever see public release? I'm interested in this as well.



Yes!


__
https://www.reddit.com/r/Cubers/comments/amcg9u


----------



## HawkI (Feb 5, 2019)

Brilliant! well done...


----------



## nop (Feb 5, 2019)

Fantastic! Thank you! When I saw the M move methods for F2L I soiled my huggies.

Now I need to understand the BL FR etc terminology...

http://www.cubewhiz.com/f2l.php using this to look


----------



## Filipe Teixeira (Feb 5, 2019)

nop said:


> Fantastic! Thank you! When I saw the M move methods for F2L I soiled my huggies.
> 
> Now I need to understand the BL FR etc terminology...
> 
> http://www.cubewhiz.com/f2l.php using this to look


BL -> the final slot it's on the back-left spot
FR -> the final slot it's on the front-right spot
FL -> the final slot it's on the front-left spot
BR -> the final slot it's on the back-right spot


----------



## nop (Feb 5, 2019)

Filipe Teixeira said:


> BL -> the final slot it's on the back-left spot
> FR -> the final slot it's on the front-right spot
> FL -> the final slot it's on the front-left spot
> BR -> the final slot it's on the back-right spot



OHHHH got it, so you can control the final resting place of the pairing by performing different algorithms, got it, thanks!

I'm working on intuitive F2, and now that it's coming along better, this application is going to be very helpful to recognise shapes and results of movements.


----------



## Filipe Teixeira (Feb 6, 2019)




----------



## qwr (Sep 5, 2020)

Thomas Henrissat said:


> Yes!
> 
> 
> __
> https://www.reddit.com/r/Cubers/comments/amcg9u



Is it gone now? The website doesn't work for me


----------

