Difference between revisions of "ZZ method"
m 
RedstoneTim (talk  contribs) (Added ZZ on other puzzles section) 

(24 intermediate revisions by 6 users not shown)  
Line 5:  Line 5:  
year=2006  year=2006  
anames=  anames=  
−  variants=  +  variants=See [[#Variants]] 
steps=3 or 4 (depending on LL)  steps=3 or 4 (depending on LL)  
moves=44 with [[ZBLL]], 55 with [[OCLL]]/[[PLL]]  moves=44 with [[ZBLL]], 55 with [[OCLL]]/[[PLL]]  
algs=20 to 537<br/>F2L: 0 to 40 <br/>LL: 20 to 497  algs=20 to 537<br/>F2L: 0 to 40 <br/>LL: 20 to 497  
−  +  purpose=<sup></sup>  
* [[Speedsolving]]  * [[Speedsolving]]  
* [[Fewest Moves]]  * [[Fewest Moves]]  
Line 15:  Line 15:  
}}  }}  
−  The '''ZZ method''' is a 3x3 speedsolving method created by [[Zbigniew Zborowski]] in 2006. The method is focused both on low move count and high turning speed; during the majority of [[F2L]], the solver only needs to make L, U, and R moves, which means that the solver's hands never leave the left and right sides of the cube, resulting in faster solving. In addition, edges are already oriented when the solver reaches the last layer, meaning the solver has fewer cases to deal with.  +  The '''ZZ method''' is a 3x3 speedsolving method created by [[Zbigniew Zborowski]] in 2006. The method is focused both on low move count and high turning speed; during the majority of [[F2L]], the solver only needs to make L, U, and R moves, which means that the solver's hands never leave the left and right sides of the cube, resulting in faster solving. In addition, edges are already oriented when the solver reaches the last layer, meaning the solver has fewer cases to deal with. The method, including both EOLine and EOCross, was originally proposed in 2003 by [[Ryan Heise]] on the [[Yahoo! Speed Solving Rubik's Cube GroupYahoo! Group]] in [https://www.speedsolving.com/wiki/index.php/File:Ryan_Heise%27s_ZZ_Proposal.png this post]. However, it became popular and associated with Zbigniew Zborowski after he independently created the method in 2006 and developed a website. 
==The Steps==  ==The Steps==  
Line 28:  Line 28:  
==Variants==  ==Variants==  
−  There are several variations of the ZZ method, each of which treats the [[F2L]] and [[LL]] differently:  +  There are several variations of the ZZ method ([https://www.speedsolving.com/threads/thezzexamplesolvegame.48190/page21#post1361812 example solves for each variant]), each of which treats the [[F2L]] and [[LL]] differently: 
====Solving F2L and LL separately====  ====Solving F2L and LL separately====  
−  * '''[[OCLL]] + [[PLL]]''' LL is solved using OCLL to orient the LL corners, then PLL is used to permute the LL. This is the simplest of all the variants and the most used when beginning to use ZZ.  +  * '''[[OCLL]] + [[PLL]]:''' LL is solved using OCLL to orient the LL corners, then PLL is used to permute the LL. This is the simplest of all the variants and the most used when beginning to use ZZ. 
−  * '''[[OCELL]] + [[CPLL]]''' This is similar to using [[COLL]] + [[EPLL]], but more of the algorithms can be [[2gen]]. First the LL corners are oriented and LL edges are permuted in one step, then the cube is completed with CPLL in the final step.  +  * '''[[OCELL]] + [[CPLL]]:''' This is similar to using [[COLL]] + [[EPLL]], but more of the algorithms can be [[2gen]]. First the LL corners are oriented and LL edges are permuted in one step, then the cube is completed with CPLL in the final step. 
* '''ZZa:''' [[ZBLL]], a subset of [[1LLL]] (onelook last layer), is used to solve the last layer with one alg. There are 493 cases and can be done with less algs by taking advantage of mirrors.  * '''ZZa:''' [[ZBLL]], a subset of [[1LLL]] (onelook last layer), is used to solve the last layer with one alg. There are 493 cases and can be done with less algs by taking advantage of mirrors.  
−  * '''[[COLL]] + [[EPLL]]''', or ZZVH (sometimes mistakenly called ZZa)  +  * '''[[COLL]] + [[EPLL]]''', or ZZVH (sometimes mistakenly called ZZa): COLL is used to orient and permute the LL corners while preserving LL edge orientation (42 algorithms), EPLL is left to permute the LL edges (4 algorithms). Often used in OH solving because all EPLL's can be solved 2gen. 
−  * '''[[NMLL]]''' completes the last layer when matching or nonmatching blocks are used. The first step separates the colors belonging to the left and right layer. The second finishes permutation.  +  * '''[[NMLL]]:''' completes the last layer when matching or nonmatching blocks are used. The first step separates the colors belonging to the left and right layer. The second finishes permutation. 
*'''ZZtop:''' During EOline, orient only the cross edges and F2L edges. After ZZF2L you will end up with the same last layer as CFOP, so you can just do OLL/PLL.  *'''ZZtop:''' During EOline, orient only the cross edges and F2L edges. After ZZF2L you will end up with the same last layer as CFOP, so you can just do OLL/PLL.  
====Influencing LL during F2L====  ====Influencing LL during F2L====  
* '''ZZb:''' During last slot, the LL edges are phased and [[ZZLL]] is used to solve the LL in one look.  * '''ZZb:''' During last slot, the LL edges are phased and [[ZZLL]] is used to solve the LL in one look.  
−  * '''[[ZZreduction]]''' During the Last Slot, the LL edges are phased and a 2look orientation + permutation approach is used, with the phased edges preserved in the orientation step, resulting in a reduction of PLL cases down to 9 compared to 21 in full PLL. This is the least algorithm intensive 2look method for solving the last layer of any [[2LLL]] method, needing 7 + 9 = 16 total algorithms.  +  * '''[[ZZreduction]]:''' During the Last Slot, the LL edges are phased and a 2look orientation + permutation approach is used, with the phased edges preserved in the orientation step, resulting in a reduction of PLL cases down to 9 compared to 21 in full PLL. This is the least algorithm intensive 2look method for solving the last layer of any [[2LLL]] method, needing 7 + 9 = 16 total algorithms. 
−  * '''ZZ[[WV]]:''' Before the last corneredge pair is solved,  +  * '''ZZ[[WV]] and ZZ[[SV]]:''' Before the last corneredge pair is solved, the LL corners are oriented with PLL left to be done. 
+  * '''ZZ[[WVCP]] and ZZ[[SVCP]]:''' Before the last corneredge pair is solved, the LL corners are oriented and permuted at the same time resulting in an [[EPLL]] finish. This is similar to ZZVH except that the corners are solved during insertion of the last pair.  
* '''ZZc:''' The last layer corners are oriented during insertion of the last F2L block. This system is similar to using [[Winter Variation]], but can be applied to ''any'' last block situation and uses many more algorithms. Conceptually, the comparison of ZZc with ZZWV is similar to the comparison of [[ZBLS]] with [[VH]].  * '''ZZc:''' The last layer corners are oriented during insertion of the last F2L block. This system is similar to using [[Winter Variation]], but can be applied to ''any'' last block situation and uses many more algorithms. Conceptually, the comparison of ZZc with ZZWV is similar to the comparison of [[ZBLS]] with [[VH]].  
−  * '''[[ZZblah]]''' The last layer corners are ''disoriented'' during insertion of the last slot allowing the last layer to be solved using the Pi and H subsets of [[ZBLL]].  +  * '''[[ZZblah]]:''' The last layer corners are ''disoriented'' during insertion of the last slot allowing the last layer to be solved using the Pi and H subsets of [[ZBLL]]. 
−  * '''[[MGLSZ]]''' During last slot, only the edge is placed. LL corner orientation and the final F2L corner are then solved in one step using [[CLS]]. Finally the solve is completed with [[PLL]].  +  * '''[[MGLSZ]]:''' During last slot, only the edge is placed. LL corner orientation and the final F2L corner are then solved in one step using [[CLS]]. Finally the solve is completed with [[PLL]]. 
−  * '''[[EJLS]]''' Similar to MGLSZ, but using less algorithms. During the F2L last slot the edge and corner are connected and placed, but the corner is not necessarily oriented. A subset of CLS is then used to orient the last slot corner along with the LL corners. [[PLL]] to finish.  +  * '''[[EJLS]]:''' Similar to MGLSZ, but using less algorithms. During the F2L last slot the edge and corner are connected and placed, but the corner is not necessarily oriented. A subset of CLS is then used to orient the last slot corner along with the LL corners. [[PLL]] to finish. 
*'''[[ZZCT]]:''' This variant solves EO and all but one F2L slot, then inserts the last edge and orients corners in one algorithm, then solves the rest (PLL and one corner), again in one algorithm.  *'''[[ZZCT]]:''' This variant solves EO and all but one F2L slot, then inserts the last edge and orients corners in one algorithm, then solves the rest (PLL and one corner), again in one algorithm.  
−  *'''ZZLSE or ZZ4c:''' Instead of solving EO and a line comprising of DF and DB, solve EO and then place the edges that go to UL and UR at DF and DR. After ZZF2L, you can then do COLL and then go directly into Roux LSE step 4c, which often is more efficient than EPLL.  +  *'''ZZC++:''' A hybrid of ZZCT and ZZC proposed by [[Chris Tran]] where the best algorithm is chosen depending on the situation. [https://youtu.be/Vp1GwnWyY] 
+  *'''ZZ[[LSE]] or ZZ[[4c]]:''' Instead of solving EO and a line comprising of DF and DB, solve EO and then place the edges that go to UL and UR at DF and DR. After ZZF2L, you can then do COLL and then go directly into Roux LSE step 4c, which often is more efficient than EPLL.  
+  *'''ZZ[[Portico]] or just [[Portico]]:''' Rather than at the start, the DF edge is solved at the end. Compared to ZZVH, this leads to a slightly more efficient solve and an easier first step at the price of <RULF2(M)> turning (as opposed to ZZ's <RUL>) and 12 additional algorithms.  
+  *'''[[ZZZipper]]''': One of 614 [[L5CO]] algorithms followed by [[L5EP]] is used to solve last slot and last layer. Alternatively, the last Dlayer corner can be solved earlier or [[Conjugated CxLL]] can be used in order to achieve 2look LSLL in 54 algorithms.  
+  *'''ZZ[[Tripod]]''': After F2L1, a 1x2x2 block is built on the top face. Then the last pair is inserted using an NLS algorithm to preserve the block followed by TELL, a subset of [[Tripod LL]] with edges already oriented. (More information can be found on the [[Tripod Method]] page.)  
−  ====Solving Corner  +  ====Solving Corner Permutation during F2L==== 
These methods solve Corner Permutation leaving the cube in a [[2gen]] state.  These methods solve Corner Permutation leaving the cube in a [[2gen]] state.  
Line 58:  Line 63:  
* '''ZZporky v1:''' Also known as ZZe. The D layer corners are put in the D layer (not neccessarily permuted) and alg is used to solve corner permutation. Post:[http://www.speedsolving.com/forum/showthread.php?20834ZZZBHomeThread&p=768029#post768029]  * '''ZZporky v1:''' Also known as ZZe. The D layer corners are put in the D layer (not neccessarily permuted) and alg is used to solve corner permutation. Post:[http://www.speedsolving.com/forum/showthread.php?20834ZZZBHomeThread&p=768029#post768029]  
*'''ZZRainbow:''' A variant of ZZporky v1. After EOline, place the DFR and DRB corners in place and get the Left Block pieces in the L and U layers. Then either solve the first block<LU> or do a z rotation and then solving it RU. After first block, you have already done the setup moves for ZZporky v1, and so execute the ZZporky algorithm, then solve the rest of the cube 2gen.  *'''ZZRainbow:''' A variant of ZZporky v1. After EOline, place the DFR and DRB corners in place and get the Left Block pieces in the L and U layers. Then either solve the first block<LU> or do a z rotation and then solving it RU. After first block, you have already done the setup moves for ZZporky v1, and so execute the ZZporky algorithm, then solve the rest of the cube 2gen.  
−  *'''ZZporky v2:''' After solving the first square of ZZF2L, place the DRB and DRF corners and AUF the last first block corner to UBL. then execute an algorithm to permute the corners. Followingly, insert the last first block pair using only <LU> moves, then solve the rest of the cube with only <RU> moves.  +  *'''ZZporky v2:''' After solving the first square of ZZF2L, place the DRB and DRF corners and AUF the last first block corner to UBL. then execute an algorithm to permute the corners. Followingly, insert the last first block pair using only <LU> moves, then solve the rest of the cube with only <RU> moves. Post: [https://www.speedsolving.com/threads/newapproachtozzd.43236/] 
−  *'''CPLS+2GLL:''' After solving ZZF2L1 slot, insert the edge. then insert the final corner while solving CP, then finish with 2GLL.  +  *'''[[CPLS]] + [[2GLL]]:''' After solving ZZF2L1 slot, insert the edge. then insert the final corner while solving CP, then finish with 2GLL. 
====General Variants====  ====General Variants====  
−  *'''ZZ  +  *'''[[ZZSnake Pattern]] (ZZSP):''' After solving the first ZZF2L block on L, solve a 1x2x3 block on the top of the cube with <RU>, then rotate with a z' and solve the LL. 
+  *'''ZZLOL (Line On Left):''' By solving [[EO Steps#EOEdgeEOEdge]] (EO + LF and LB edges) instead of [[EOLine]], the cube is reduced to <RUD> rather than <RUL>. This results in a standard ZZ solve offset by a z rotation with way better ergonomics in exchange for very bad lookahead.  
+  *'''WaterZZ''': WaterZZ was inspired by [[WaterRoux]] which in turn was inspired by [[Waterman]]. Instead of an EOLine, the solve is started with [[EO Steps#EO222EO222]] (EO + 2x2x2 block). Then, a 1x2x2 square and a pair are solved in BR and FL, respectively. This is followed by one of 614 [[L5CO]] algorithms and then [[L6EP]] to finish off the solve.  
== Pros ==  == Pros ==  
Line 76:  Line 83:  
* '''2 Extra F2L Cubies to Solve'''  The first step of Fridrich (Cross) and ZZ (EOLine) are roughly comparable in terms of movecount. The remainder of F2L in ZZ requires solving of two more cubies (10 in total) than Fridrich slots (8 in total). However, freedom to fully rotate the L and R faces and the use of more efficient block building compensates for this apparent disadvantage.  * '''2 Extra F2L Cubies to Solve'''  The first step of Fridrich (Cross) and ZZ (EOLine) are roughly comparable in terms of movecount. The remainder of F2L in ZZ requires solving of two more cubies (10 in total) than Fridrich slots (8 in total). However, freedom to fully rotate the L and R faces and the use of more efficient block building compensates for this apparent disadvantage.  
* '''Switching between L and R moves'''  On the other hand, this can feel weird. It takes some time getting used to and mastering. After one does master this though, f2l is really smooth.  * '''Switching between L and R moves'''  On the other hand, this can feel weird. It takes some time getting used to and mastering. After one does master this though, f2l is really smooth.  
+  
+  == Improvements ==  
+  Other EO Steps (the most popular ones being [[EOCross]] and [[EOArrow]]) instead of [[EOLine]] can be used as a first step. (See the [[EO Steps]] article for more information.)  
+  
+  == ZZ on other puzzles ==  
+  The concept of orienting edges early to make the rest of the solve more ergonomic and rotationless has been applied to different puzzles. A list of puzzles and known ZZbased methods for them is shown here:  
+  * '''[[4x4x4]] (and other [[Big cubes]]):''' [[Z4]], [[4Z4]] and [[Mehtad]]  
+  * '''[[Megaminx]]:''' [[ZZSpike]]  
== Notable users ==  == Notable users ==  
Line 83:  Line 98:  
* [[Zbigniew Zborowski]]  * [[Zbigniew Zborowski]]  
* [[Chris Tran]]  * [[Chris Tran]]  
+  * [[Dale Palmares]]  
+  * [[Joseph Tudor]]  
+  * [[Nathaniel Gee]]  
+  * [[Simon Kalhofer]]  
== See also ==  == See also ==  
−  * [[  +  * [[EO Steps]] 
* [[Edge Orientation]]  * [[Edge Orientation]]  
−  
* [[ZBLL]]  * [[ZBLL]]  
−  * [[  +  * [[LEOR]] 
−  * [[  +  * [[Z4]] 
−  
* [[4Z4]]  * [[4Z4]]  
−  +  * [[Mehtad]]  
−  +  * [[ZZSpike]]  
−  *  
== External links ==  == External links ==  
−  * [http://cube.  +  * [http://cube.rider.biz/zz.php Very indepth ZZ Method Tutorial (EOCross/EOArrow not described)] 
+  * [https://sites.google.com/view/zzmethod Detailed, uptodate ZZ website]  
* [http://rubikscube.c0.pl/inne/eoline.htm EOLine Solver (Java)]  * [http://rubikscube.c0.pl/inne/eoline.htm EOLine Solver (Java)]  
+  * [https://docs.google.com/spreadsheets/d/1d3iJtr2Vye7f3AIPFiO1W7YT0bwe7jidtw7POt8f0o Comparison of ZZ variants (movecount)]  
* YouTube: [https://www.youtube.com/watch?v=4Wrm2MGrRS8 ZZ Beginner's Tutorial]  * YouTube: [https://www.youtube.com/watch?v=4Wrm2MGrRS8 ZZ Beginner's Tutorial]  
* YouTube: [http://www.youtube.com/watch?v=a6tkUlkjnOE EOLine tutorial]  * YouTube: [http://www.youtube.com/watch?v=a6tkUlkjnOE EOLine tutorial]  
Line 108:  Line 126:  
* Speedsolving.com: [http://www.speedsolving.com/forum/showthread.php?t=16020 ZZF2L Move Count]  * Speedsolving.com: [http://www.speedsolving.com/forum/showthread.php?t=16020 ZZF2L Move Count]  
* Speedsolving.com: [http://www.speedsolving.com/forum/showthread.php?t=8871 Noob's Approach to Missing Link for ZZd]  * Speedsolving.com: [http://www.speedsolving.com/forum/showthread.php?t=8871 Noob's Approach to Missing Link for ZZd]  
+  * Speedsolving.com: [https://www.speedsolving.com/threads/zzblahalgorithms.76730/ ZZblah Algorithms]  
+  * Speedsolving.com: [https://www.speedsolving.com/threads/thezzexamplesolvegame.48190/page21#post1361812 Example solves for all ZZ variants]  
[[Category:3x3x3 methods]]  [[Category:3x3x3 methods]]  
[[Category:3x3x3 speedsolving methods]]  [[Category:3x3x3 speedsolving methods]] 
Latest revision as of 12:28, 27 June 2020

The ZZ method is a 3x3 speedsolving method created by Zbigniew Zborowski in 2006. The method is focused both on low move count and high turning speed; during the majority of F2L, the solver only needs to make L, U, and R moves, which means that the solver's hands never leave the left and right sides of the cube, resulting in faster solving. In addition, edges are already oriented when the solver reaches the last layer, meaning the solver has fewer cases to deal with. The method, including both EOLine and EOCross, was originally proposed in 2003 by Ryan Heise on the Yahoo! Group in this post. However, it became popular and associated with Zbigniew Zborowski after he independently created the method in 2006 and developed a website.
Contents
The Steps
 EOLine: This is the most distinctive part of the ZZ method. In this step, the solver orients all the edges while placing the DF and DB edges. The two edges and the bottom centre are the "line" in EOLine. This step puts the cube into an <L, U, R> group, meaning F, B, or D moves are not required for the remainder of the solve. Although this step may seem like a hinderance, it speeds up the F2L and LL.
 ZZ F2L: The solver creates a 2x3x1 block on each side of the line via blockbuilding. Because one only needs to do L, U, and R moves, solving is very quick.
 LL: The solver uses algorithms to solve the remaining pieces. Since the edges in the LL were oriented during EOLine, it can be completed in fewer moves and/or with fewer algorithms to learn.
Techniques
 Phasing During last slot, the LL edges are permuted using Phasing to permute opposite edges to be opposite using 3 different inserts. This reduces the amount of LL cases.
 Corner Permutation The first block can be solved slightly differently or an alg can be used to permute the corners such that the rest of the solve can be done 2gen.
Variants
There are several variations of the ZZ method (example solves for each variant), each of which treats the F2L and LL differently:
Solving F2L and LL separately
 OCLL + PLL: LL is solved using OCLL to orient the LL corners, then PLL is used to permute the LL. This is the simplest of all the variants and the most used when beginning to use ZZ.
 OCELL + CPLL: This is similar to using COLL + EPLL, but more of the algorithms can be 2gen. First the LL corners are oriented and LL edges are permuted in one step, then the cube is completed with CPLL in the final step.
 ZZa: ZBLL, a subset of 1LLL (onelook last layer), is used to solve the last layer with one alg. There are 493 cases and can be done with less algs by taking advantage of mirrors.
 COLL + EPLL, or ZZVH (sometimes mistakenly called ZZa): COLL is used to orient and permute the LL corners while preserving LL edge orientation (42 algorithms), EPLL is left to permute the LL edges (4 algorithms). Often used in OH solving because all EPLL's can be solved 2gen.
 NMLL: completes the last layer when matching or nonmatching blocks are used. The first step separates the colors belonging to the left and right layer. The second finishes permutation.
 ZZtop: During EOline, orient only the cross edges and F2L edges. After ZZF2L you will end up with the same last layer as CFOP, so you can just do OLL/PLL.
Influencing LL during F2L
 ZZb: During last slot, the LL edges are phased and ZZLL is used to solve the LL in one look.
 ZZreduction: During the Last Slot, the LL edges are phased and a 2look orientation + permutation approach is used, with the phased edges preserved in the orientation step, resulting in a reduction of PLL cases down to 9 compared to 21 in full PLL. This is the least algorithm intensive 2look method for solving the last layer of any 2LLL method, needing 7 + 9 = 16 total algorithms.
 ZZWV and ZZSV: Before the last corneredge pair is solved, the LL corners are oriented with PLL left to be done.
 ZZWVCP and ZZSVCP: Before the last corneredge pair is solved, the LL corners are oriented and permuted at the same time resulting in an EPLL finish. This is similar to ZZVH except that the corners are solved during insertion of the last pair.
 ZZc: The last layer corners are oriented during insertion of the last F2L block. This system is similar to using Winter Variation, but can be applied to any last block situation and uses many more algorithms. Conceptually, the comparison of ZZc with ZZWV is similar to the comparison of ZBLS with VH.
 ZZblah: The last layer corners are disoriented during insertion of the last slot allowing the last layer to be solved using the Pi and H subsets of ZBLL.
 MGLSZ: During last slot, only the edge is placed. LL corner orientation and the final F2L corner are then solved in one step using CLS. Finally the solve is completed with PLL.
 EJLS: Similar to MGLSZ, but using less algorithms. During the F2L last slot the edge and corner are connected and placed, but the corner is not necessarily oriented. A subset of CLS is then used to orient the last slot corner along with the LL corners. PLL to finish.
 ZZCT: This variant solves EO and all but one F2L slot, then inserts the last edge and orients corners in one algorithm, then solves the rest (PLL and one corner), again in one algorithm.
 ZZC++: A hybrid of ZZCT and ZZC proposed by Chris Tran where the best algorithm is chosen depending on the situation. [1]
 ZZLSE or ZZ4c: Instead of solving EO and a line comprising of DF and DB, solve EO and then place the edges that go to UL and UR at DF and DR. After ZZF2L, you can then do COLL and then go directly into Roux LSE step 4c, which often is more efficient than EPLL.
 ZZPortico or just Portico: Rather than at the start, the DF edge is solved at the end. Compared to ZZVH, this leads to a slightly more efficient solve and an easier first step at the price of <RULF2(M)> turning (as opposed to ZZ's <RUL>) and 12 additional algorithms.
 ZZZipper: One of 614 L5CO algorithms followed by L5EP is used to solve last slot and last layer. Alternatively, the last Dlayer corner can be solved earlier or Conjugated CxLL can be used in order to achieve 2look LSLL in 54 algorithms.
 ZZTripod: After F2L1, a 1x2x2 block is built on the top face. Then the last pair is inserted using an NLS algorithm to preserve the block followed by TELL, a subset of Tripod LL with edges already oriented. (More information can be found on the Tripod Method page.)
Solving Corner Permutation during F2L
These methods solve Corner Permutation leaving the cube in a 2gen state.
 ZZd: Just before the completion of the left block, corners are permuted and 2GLL can be used to finish. Only a maximum of 2 additional moves are required to correctly solve CP. This process is called CPLS. However, the solver must determine the permutation of all the unsolved corners to execute this step; this is a slow process, which makes ZZd inappropriate for speed solving.
 ZZOrbit: Corners are permuted during insertion of the last F2L's pair. Recognition is not so straight forward, but much faster than that of ZZd. Once performed, 2GLL can be used for 1look last layer. This has many similarities to CPLS+2GLL, but was developed independently. Thread:[2] Guide:[3]
 ZZz: After left block, CP is solved, then a 1x2x2 block is made on BDR and LPELL is used to permute the edges and finish F2L, and 2GLL is left to finish the solve.
 ZZporky v1: Also known as ZZe. The D layer corners are put in the D layer (not neccessarily permuted) and alg is used to solve corner permutation. Post:[4]
 ZZRainbow: A variant of ZZporky v1. After EOline, place the DFR and DRB corners in place and get the Left Block pieces in the L and U layers. Then either solve the first block<LU> or do a z rotation and then solving it RU. After first block, you have already done the setup moves for ZZporky v1, and so execute the ZZporky algorithm, then solve the rest of the cube 2gen.
 ZZporky v2: After solving the first square of ZZF2L, place the DRB and DRF corners and AUF the last first block corner to UBL. then execute an algorithm to permute the corners. Followingly, insert the last first block pair using only <LU> moves, then solve the rest of the cube with only <RU> moves. Post: [5]
 CPLS + 2GLL: After solving ZZF2L1 slot, insert the edge. then insert the final corner while solving CP, then finish with 2GLL.
General Variants
 ZZSnake Pattern (ZZSP): After solving the first ZZF2L block on L, solve a 1x2x3 block on the top of the cube with <RU>, then rotate with a z' and solve the LL.
 ZZLOL (Line On Left): By solving EOEdge (EO + LF and LB edges) instead of EOLine, the cube is reduced to <RUD> rather than <RUL>. This results in a standard ZZ solve offset by a z rotation with way better ergonomics in exchange for very bad lookahead.
 WaterZZ: WaterZZ was inspired by WaterRoux which in turn was inspired by Waterman. Instead of an EOLine, the solve is started with EO222 (EO + 2x2x2 block). Then, a 1x2x2 square and a pair are solved in BR and FL, respectively. This is followed by one of 614 L5CO algorithms and then L6EP to finish off the solve.
Pros
 Reduced Move Set: F2L is completed using only R, U and L turns and no cube rotations are required. This makes ZZ especially suited for onehanded solving.
 Lookahead: Preorientation of edges halves the F2L cases and makes edges easier to find and connect to blocks/corners. During a ZZ solve, the cube is typically held in the same orientation through out the solve which allows a memory map of pieces' correct locations to develop allowing fast/intuitive ability to place pieces without thinking/looking.
 Efficiency: With a blockbuildingbased F2L and preorientation of LL edges around 55 moves can be achieved without difficulty. Optimising F2L blockbuilding and adoption of more advanced LL systems such as ZBLL will reduce this move count significantly.
 Ease of Learning: Most of the difficulty in ZZ is confined to the EOLine stage. Intuitive blockbuilding during F2L is fairly easy to pick up and only 20 algorithms (assuming use of mirrors) are required to achieve a 2look last layer with OCLL/PLL.
 Flexibility: With edges preoriented many systems exist for completing the last layer in a ZZ solve, ranging from OCLL/PLL to ZBLL. A blockbuilding F2L also allows for the development of many short cuts and tricks as skill improves.
Cons
 Reliance on Inspection  ZZ makes heavy use of inspection time, which is fine when 15 seconds is given, but in situations where no inspection is used it can be a drawback. For example, when using reduction on big cubes or within multisolve scenarios starting a ZZ solve can be difficult. This isn't much more than other methods though.
 Difficulty of EOLine  EOLine is weird to get used to at first. In order to plan and execute in one step and takes a long time to master. New users should expect it to take in the order of months to achieve full EOLine inspection in 15 seconds. In the interim, breaking it down into two steps (EO + Line) can be used as a fallback.
 2 Extra F2L Cubies to Solve  The first step of Fridrich (Cross) and ZZ (EOLine) are roughly comparable in terms of movecount. The remainder of F2L in ZZ requires solving of two more cubies (10 in total) than Fridrich slots (8 in total). However, freedom to fully rotate the L and R faces and the use of more efficient block building compensates for this apparent disadvantage.
 Switching between L and R moves  On the other hand, this can feel weird. It takes some time getting used to and mastering. After one does master this though, f2l is really smooth.
Improvements
Other EO Steps (the most popular ones being EOCross and EOArrow) instead of EOLine can be used as a first step. (See the EO Steps article for more information.)
ZZ on other puzzles
The concept of orienting edges early to make the rest of the solve more ergonomic and rotationless has been applied to different puzzles. A list of puzzles and known ZZbased methods for them is shown here:
Notable users
 Conrad Rider
 Phil Yu
 Andrew Nathenson
 Zbigniew Zborowski
 Chris Tran
 Dale Palmares
 Joseph Tudor
 Nathaniel Gee
 Simon Kalhofer
See also
External links
 Very indepth ZZ Method Tutorial (EOCross/EOArrow not described)
 Detailed, uptodate ZZ website
 EOLine Solver (Java)
 Comparison of ZZ variants (movecount)
 YouTube: ZZ Beginner's Tutorial
 YouTube: EOLine tutorial
 YouTube: ZZ Method Variations
 Speedsolving.com: ZZ Speedcubing Method
 Speedsolving.com: ZZ Cubers
 Speedsolving.com: ZZ/ZB Home Thread
 Speedsolving.com: ZZF2L Move Count
 Speedsolving.com: Noob's Approach to Missing Link for ZZd
 Speedsolving.com: ZZblah Algorithms
 Speedsolving.com: Example solves for all ZZ variants