The EFZV method

edward_9x

Veteran
Joined
May 31, 2023
Messages
316
Location
Inside your monitor
I've been initially thinking about a new ZZ variant, but it evolved into an original and almost alg-less method for 3x3 (requires at most one alg to be learnt). It is very intuitive and has the following steps:

EO223​

First, do EO223. (Solve EO and a 2x2x3, but the recommended way is EO+223 because planning full simultaneous EO and 2x2x3 is impossible). Even the basic EO+223 approach is more efficient than EOLine because you're not restricted to first solving a line, and you can do more advanced pairing-up tricks like making a square in the front layer and inserting with F2, pairing up pieces with M2, using the D layer to pair up, E slices, S slices etc., and it's all completely rotationless if you do "EO+223"!
200px-EO222.png
200px-EO223.png


RUSquare​

The next step is RUSquare (or LUSquare if you built the 2x2x3 on the right). RUSquare involves first attaching a square to the R layer (either front-facing or back facing), then another square to the top layer. Unlike in Tripod, the squares can really just be almost anywhere, and it doesn't matter if they form a "tripod"-like shape or not.
Possible examples of first block/square:
EOSq2.png
EOSq1.png

...and a possible final configuration:
EOSq3.png


LE (basic method: parity alg)​

This step involves inserting the last remaining non-U layer edge into its spot. Because of EO, you can just "tps-spam it in" while preserving the R-square and it's guaranteed to fit into the last slot. (Note: we don't care about the corner). Now, the 2 remaining edges (connected to U-square) may be in one of 2 possible states:
  1. Parity (the 2 edges are swapped)
  2. Solved (the 2 edges are correctly permuted, so parity skip. This means the solve uses ZERO algorithms)...
EOSqEdge.png
EOSqEdge2.png

Above is a graphical representation showing a possible insert.

Top layer edge permutation can be solved in one of two ways (intuitive or alg-based). Intuitive means phasing, but it is harder than normal phasing because you have to solve the "tripod" block while phasing all remaining edges.

Now, let me explain the "noob" method of solving EP: The optimal case, of course, is the SOLVED state. In case the two upper face edges are swapped (the PARITY case), you can choose one of the following algs generated with CubeExplorer to fix them (make sure to keep the unsolved D layer corner in the front right, and the two edges on UF and UR, respectively):
  • OPTIMAL 10f* (L' U R2 U R2 U R2 U2 L R2) This algorithm is only 10 moves and doesn't restore as much progress
  • 2GEN 11f* (U R2 U R' U R U2 R' U R' U') This algorithm has better ergonomics/fingertricks;
  • JPERM 13f*, I suppose you already know this PLL case :]
I personally prefer the OPTIMAL alg, but I give you multiple choices on how to solve this optional step. Note that, in QTM, the 2gen alg actually has less moves than the "optimal" alg. So, it depends on which metric you use to decide which is better.

LE (phasing: advanced method)​

NOTE: If you've got an intuition for how the cube works, you can try to just phase the edges (break the square and restore it) like in ZZ-b (or ZZ-r). But, you may also just do an alg instead. Phasing is very hard because it's luck-based, and you sort of have to phase before/while making the U-Square, which is not easy to predict. The PARITY case can be solved with just an alg, which also affects corners (see the appendix). Future iterations/upgrades to this method will probably replace the slow parity step with phasing, but so far trying to phase edges while solving USquare in the middle of a speedsolve is this method's "missing link". I struggle for seconds trying to think of solutions when trying to phase instead of just doing an alg. It is possible, but you have to keep track of both LE, and the square pieces. I hope I can
provide a systemized approach for phasing in this method, but so far it's not really feasible ... It would be very cool to have 0 algs.


Scroll for a bit and you will see the new experimental phasing approach in one of my replies to this thread (not too far). It involves predicting the positions of 3 edges before solving U-square.

4C ​

Now, you may solve the remaining corners intuitively using two commutators or only one if you're lucky and only have 3 corners unsolved (so, last edge is actually last pair).
They may be situated almost anywhere on the cube, depending on how you've positioned RUSquare (2 possible positions for R-square and 4 for U-square, so 2*4=8 possible configurations, theoretically). This step could also be done algorithmically (in theory), but I think the comm approach is way more elegant than just memorizing a bunch of algs. If we were to use algs, however, we would have less cases than phased ZZLL (and, with a parity skip, we would have a one-look 'almost last layer' with not a lot of algs to learn).

Experimental idea: Conjugate+Parity​

This idea is based on the fact that all 3 parity algs don't preserve corners.

If you get a parity case (and you use an alg that affects multiple corners), you can try doing some setup moves into the alg so that as many corners get swapped into their solved positions, doing the parity case, and undoing the setup moves. This gives you at most only one commutator at the end of the solve. If you get 2 corners flipped, either use a ZZLL or do the beginner corner solving method (which actually works well when everything is solved). You could also do this for other 'flip' cases.

If you can solve all corners using conjugates, then by all means do that (but it requires good memory for remembering how to undo that many setup moves).

So, the new `Skeleton` of our cube method looks now like this:

................................./ (Conjugate+)Parity --- 3C, 2C or skip EO223 --- RUSquare(+phasing) --- LE .................................\ 4C, 3C, 2C or skip

Conclusion​

If I could somehow get rid of the parity step, this method could be quite efficient (and also have zero memorization, being fully intuitive). My main concerns are very poor lookahead and planning (doing 2x2x3 after EO means having the entire D layer partially hidden), along with low tps (you have to think more during the solve, like Heise). What does SpeedSolving think? This is my first attempt making a speedsolving method (feels more like FMC), and it probably sucks, but it was fun trying!
 
Last edited:
I'm pretty sure a method similar to this already exists but I don't remember who developed it...

This is basically eo2x2x3 with phasing

@PapaSmurf
@WoowyBaby
You made me curious about that method :] I don't know if something exactly like this exists, but maybe something similar, yes.

Also, it's not really phasing because the U-square makes that impossible (sort of like "bandaging" the cube). You would have to throw in F moves and other awkward moves to do actual phasing which kind of ruins the point of the method... Parity is more algorithmic (and there's only one possible case which may or may not appear, think OLL parity on 4x4).
 
I've been initially thinking about a new ZZ variant, but it evolved into an original and almost alg-less method for 3x3 (requires at most one alg to be learnt). It is very intuitive and has the following steps:

EO223​

First, do EO223. (Solve EO and a 2x2x3, but the recommended way is EO+223 because planning full simultaneous EO and 2x2x3 is impossible). Even the basic EO+223 approach is more efficient than EOLine because you're not restricted to first solving a line, and you can do morw advanced pairing-up tricks like making a square in the front layer and inserting with F2, pairing up pieces with M2, using the D layer to pair up, E slices, S slices etc., and it's all completely rotationless if you do "EO+223"!
View attachment 24506View attachment 24507

RUSquare​

The next step is RUSquare (or LUSquare if you built the 2x2x3 on the right). RUSquare involves first attaching a square to the R layer (either front-facing or back facing), then another square to the top layer. Unlike in Tripod, the squares can really just be almost anywhere, and it doesn't matter if they form a "tripod"-like shape or not.
Possible examples of first block/square:
View attachment 24511View attachment 24512
...and a possible final configuration:
View attachment 24508

LE (+parity)​

This step involves inserting the last remaining non-U layer edge into its spot. Because of EO, you can just "tps-spam it in" while preserving the R-square and it's guaranteed to fit into the last slot. (Note: we don't care about the corner). Now, the 2 remaining edges (not connected to U-square) may be in one of 2 possible states:
  1. Parity (the 2 edges are swapped)
  2. Solved (the 2 edges are correctly permuted, so parity skip. This means the solve uses ZERO algorithms)...
View attachment 24509View attachment 24510
Above is a graphical representation showing a possible insert.

The optimal case, of course, is the SOLVED state. In case the two upper face edges are swapped (the PARITY case), you can choose one of the following algs generated with CubeExplorer to fix them (make sure to keep the unsolved D layer corner in the front right, and the two edges on UF and UR, respectively):
  • OPTIMAL 10f* (L' U R2 U R2 U R2 U2 L R2) This algorithm is only 10 moves and doesn't restore as much progress
  • 2GEN 11f* (U R2 U R' U R U2 R' U R' U') This algorithm has better ergonomics/fingertricks;
  • JPERM 13f*, I suppose you already know this PLL case :]
I personally prefer the OPTIMAL alg, but I give you multiple choices on how to solve this optional step.

4C ​

Now, you may solve the remaining corners intuitively using two commutators or only one if you're lucky and only have 3 corners unsolved (so, last edge is actually last pair).
They may be situated almost anywhere on the cube, depending on how you've positioned RUSquare (2 possible positions for R-square and 4 for U-square, so 2*4=8 possible configurations, theoretically). This step could also be done algorithmically (in theory), but I think the comm approach is way more elegant than just memorizing a bunch of algs. If we were to use algs, however, we would have less cases than phased ZZLL (and, with a parity skip, we would have a one-look 'almost last layer' with not a lot of algs to learn).

If I could somehow get rid of the parity step, this method could be quite efficient (and also have zero memorization, being fully intuitive). My main concerns are very poor lookahead and planning (doing 2x2x3 after EO means having the entire D layer partially hidden), along with low tps (you have to think more during the solve, like Heise). What does SpeedSolving think? This is my first attempt making a speedsolving method (feels more like FMC), and it probably sucks, but it was fun trying!
Conceptually, this could be viable, but you need a lot of lookahead. And since my braincells are rapidly dying, it may not be for me. But others, go for it!
 
How many moves do you think this would take on average?
Not sure, but I think you can get sub50. I have an idea of optimizing the LE+parity step.

Low 40s could be possible with conjugates (but I'm not sure) by moving the corners in a certain position before doing the parity alg (setup move), doing the parity alg which doesn't preserve corners, and undoing the setup move. If you choose the setup moves correctly so that one of the corners that swap get solved, you skip a comm and 4C becomes 3C, with just one commutator...

I thought of this idea right as I woke up today (like 5 minutes ago). Will be sure to edit the OP, so the new steps of the method would branch out like so:

  • EO223
  • RUSquare
  • LE (option 1)
    • Conjugate+Parity
    • 3C, 2C or skip
  • LE (option 2)
    • 4C, 3C, 2C or skip
 
Last edited:
Came up with a very weird algless example solve in like 15 mins or so. Does this count as Efzv? (48stm)
 Twizzle link 
 Setup 
F2 D' B2 L2 D' U2 R2 B2 D2 F2 L F U' L' R2 U R F2 L' U'
 Moves 
(x2) R B2 R2 D' B' L2 D' R' D //eo222
U R Rw U2 M U F2 //pseudo223+insertion
// (U2 U') cancel to U

U R' U' R2 U2 R U //pseudo r-square
//R' cancels with R
//U' cancels with U2

R' U' R' U R U2 //u-rectangle
R' U F2 //???
[R U R' U' R U R', D] //corner flip :(


Another (this one is a bit more "normal", 51stm)
 
This could be good for FMC, as it is very similar to blockbuilding and insertions, but for speedsolving it might take some time to get good lookahead with the method.
 
This could be good for FMC, as it is very similar to blockbuilding and insertions
You can't really do insertions in the middle of a speedsolve, those are done after you made your skeleton solution... :) but yeah, it's basically just "watered-down FMC" for use in speedsolving (and with an extra U layer block). In FMC you wouldn't really do the whole RSquare+USquare+parity thing because just doing normal FMC stuff is better than that.

I think the lookahead is equal to or better than that of Petrus. If you do planned EO without solving anything, the 223 becomes easier to solve because you don't have to check for flipped edges and you can get a "muscle memory" for some pairs and pieces. If you go with option B and plan at least EO+222 in inspection (I think this is very hard, almost like doing an X-cross every solve), lookahead is manageable (better than Portico EODB at least).

My main problem I think is "parity". Phasing, while hard to do while preserving a big square, is better than doing an alg (inefficient). This week (or even today) I think I'll replace parity with phasing, and add a couple of cases for each step. I've got a rough draft of the idea, but it's so far unfinished.
 
Last edited:

*NEW* Phasing approach:​


Parity sucks if you don't use a conjugate to get guaranteed 3C at the end of a solve (though if you do it's very cool :]). Here's an alternative that makes this a totally algless method:

Don't directly solve the U-square. Instead, solve just a pair and an edge (keep them separated). Now, imagine a couple looks ahead into the solve. Pretend you've solved the square in the fewest moves you can (without actually solving it), and imagine where the pieces will be pushed at the end of the "insertion". This takes some practice to get used to (I'm still not fully used to predicting). You will notice two things:
  • Either the top layer edges are in PARITY, or SOLVED (opposite colors adjacent or opposite!)
  • Either the last F2L edge will be in a "good spot", or a "bad spot".
You have to remember these 2 bits of information while solving the square as it will determine whether or not to phase.
But there is still one question: What is a "good" or "bad" spot for the F2L edge??
  1. If, solving the square (don't actually solve, just imagine), the last F2L edge would end up in a spot where you have to do only one R U' R'-type trigger (or the mirrored equivalents), then we say the F2L edge is in a "good spot". For example, if we predict our square will in the top-left corner of the top layer, and our edge is in UF, we say it will be in a good spot.
  2. If, solving the square, the edge would end up in a spot where you have to do 2 such inserts in a row, we say the F2L edge is in a "bad spot". For instance, if you predict the square will be in the top right corner, and the edge in UL, we say it's in a bad spot because we need 2 triggers to insert it, as just doing a sequence of (U) R' U R will break up our block.
  3. If the edge is in its rightful F2L spot, we call this a "neutral spot". I guess parity alg can be used (though you can just break up the pieces to get one of the other 2 cases), or you just skip phasing.

If you were to hypothetically insert a "good spot" edge, you will notice that the other 2 edges in the top layer would get phased.
Likewise, inserting a "bad spot" edge will keep edges unphased..

We will use this knowledge to our advantage while solving the U-Square:
  • If we predict we will have SOLVED edges and BAD SPOT f2l edge, we just solve the square+LE.
    • (because "bad spot" double triggers preserve phasing status)
  • If we predict we will have PARITY edges and GOOD SPOT f2l edge, we just solve the square+LE.
    • (because parity edges will be fixed by the single trigger)
  • If we predict we will have SOLVED edges and GOOD SPOT f2l edge, we do phasing (like ZZ-b) and only then do an insert.
    • (because single triggers will break the solved state)
  • If we predict we will have PARITY edges and BAD SPOT f2l edge, we will do phasing (like ZZ-b) and only then do an insert.
    • (because "bad spot" double triggers will just preserve the wrongly phased edges)

This is what I have so far to replace parity. This is the "advanced" way of doing EP, but it is hard to predict ~4 moves into the solve and remember both the parity state and the F2L edge state.
 
Last edited:
Dang, I was just looking at a list of ZZ variants and I found out someone already invented Efzv (with phasing) before I did... it's called "Cardan Reduction 1":
Cardan Reduction 1 - Reudce the cube in last slot to having the FR edge plus a 1x2x2 block on U solved, then solve the L4C either with algorithms or 2 commutators.
(Found on https://sites.google.com/view/zzmethod/solving/variants)
 
Dang, I was just looking at a list of ZZ variants and I found out someone already invented Efzv (with phasing) before I did... it's called "Cardan Reduction 1":

(Found on https://sites.google.com/view/zzmethod/solving/variants)
Okay, final post about Cardan: I needed answers, so I looked up the method and saw it had a page on the speedsolving wiki and its current iteration actually seems pretty different: https://www.speedsolving.com/wiki/index.php?title=Cardan_Reduction
So, I think now its time to make a speedsolving wiki post about my method too...

It seems Cardan Reduction doesn't do intuitive phasing as I thought, it uses algs and then reduces to a 3C state. In Efzv you either do a conjugate+parity alg and reduce to 3C or phase after building the U-square, then do 4C using 2 comms.

I think the link I posted earlier (with 2 commutators) was just a very early draft of CR. Maybe doing 2 commutators at the end of a solve just sucks and doing an alg to setup to 3C is better? I don't know. I think I like intuitiveness more than memorizing. Either way, CR now is pretty different from "original" CR as far as I can tell ..

Anyway, should I make a wiki page?
React to this post with a like if yes, or with a frowny face/whatever if not. I'll count the votes
 
We are trying to keep the wiki clutter free. Develop the method, get feedback from the community, and further analyze to determine if the method has significance. If so, feel free to create a wiki page. Or, if the community likes it, they may eventually create it. If this can be seen as a variant or alternate way of performing CR, it can instead be added to the CR page.
 
Back
Top