ZZ method

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. The name "ZZ" originates from Zborowski's initials.
Contents
The Steps
 EOLine/EOCross: (EOCross is the recommended approach for speed nowadays) These are the most distinctive parts of the ZZ method, and the way you solve the second step depends on how you choose the first step approach.
 EOLine: 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 is the traditional way of doing ZZ.
 EOCross: In this step, the solver orients all the edges while placing the D layer edges. The four edges and the F2L centres are the "cross" in EOCross. This is the modern way of doing ZZ.
Either one of these steps 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:
 EOLine F2L: The solver creates a 2x3x1 block on each side of the line via blockbuilding. This approach is very efficient, but also has more ergonomics/lookahead issues than EOCross.
 EOCross F2L: The solver creates a four 1x1x2 blocks to complete F2L, similarly to CFOP. This approach is less efficient, but has way better ergonomics and lookahead than EOLine.
 EOArrow F2L: By solving an EOArrow (halfEOLine, halfEOCross), one may combine the two F2L styles. This approach is not recommended, as the downsides outweigh the benefits. Instead, one of the two previous approaches must be picked.
Because one only needs to do L, U, and R moves, solving is very quick. It is generally agreed upon that EOCross leads to faster solves on average, however, you can also get pretty fast with EOLine.
 LL: The solver uses algorithms to solve the remaining pieces. Since the edges in the LL were oriented during the first step, 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.
 NonMatching/Pseudo Blocks: An experimental approach where solutions of the left and right blocks may be misaligned from the pieces solved in the EOLine step. In this case, it is common to use the twolook NMLL approach, which starts with separation of last layer pieces into the L/M/R layers, and finishes by permuting them within those layers.
 Pseudoslotting + Keyhole: These two work similarly as in CFOP, however there are fewer cases, and thanks to edge orientation already being solved, recognition is easier and ergonomics are improved.
 Openslotting: When completing a 1x2x2 block, one may choose to either place it in its correct spot, or misaligned by a quarter turn. By intentionally placing down a block the wrong way, attaching a 1x2x2 pair to it may be more efficient afterwards (2 moves, as opposed to 3).
 LRUL/RLUR: These are two sets of algorithms that multislot the FR+BL, and FR+BL pairs, respectively. They are commonly used with EOCross, and are considered an algorithmic form of openslotting. It is generally advised to use LRUL/RLUL instead of intuitively openslotting diagonal pairs.
 Multiblocking: When two 1x1x2 blocks are in the top layer, it is possible to temporarily store one of them in either the R or L layers without breaking it up while solving the other block, and then finishing it afterwards. This technique can be considered a superset of edgesoriented Multislotting, and is commonly used with EOLine.
Variants
There are several variations of the ZZ method (example solves for each variant), each of which treats the F2L and LL differently. When the ZZ method was proposed, the original variants on Zbigniew Zborowski's website were ZZa, b, c, d, e and f.
Solving F2L and LL separately
 ZZOP: 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 (also called ZZπ).
 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 fewer algs by taking advantage of mirrors.
 ZZCE, 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.
 ZZb: During last slot, the LL edges are phased and ZZLL is used to solve the LL in one look with about half the alg count of ZBLL.
 ZZreduction: During the insertion of last slot of F2L, the last layer edges are phased as in ZZb but the last layer is solved in two looks instead of one. A set of OLL algorithms that preserve edge permutation are used and a subset of PLL solves the cube. ZZr has the lowest algorithm count of any 2LLL method, needing only 16 algorithms (14 excluding mirrors). If superphasing is used during last slot of F2L, whereby all last layer edges are permuted every time, the algorithm count is even less at 12 (10 excluding mirrors).
 COLL+1: This LL method solves the four LL corners and a single LL edge. The second step will then always be either a UPerm or a skip. This is almost never used, as its recognition is just as complex as ZZa.
 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. This is not considered a viable variant for speedsolving, as the "partial EO" (pEO) isn't significantly easier than a full EO step, and misoriented LL edges eliminates the possibility of 1LLL approaches.
Influencing Corner Orientation During Last Slot
 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 using the subset of OLS with oriented edges, leaving only PLL to finish the solve. 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. This variant was proposed by Mitchell Stern and included as one of the variants on Zbigniew Zborowski's website.
 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 with TSLE, then solves the rest (PLL and one corner), again in one algorithm (called TTLL).
 ZZHW: A predecessor of ZZCT, where the corner is inserted while orienting the others using an algset called WSLC, followed by permuting the last layer and the FR edge using a set called WDLL. Originally proposed by Chris Tran, it was discarded in favor of ZZCT due to the poor quality of WDLL algs. [1]
 ZZC++: A hybrid of ZZCT and ZZc proposed by Chris Tran where the best algorithm is chosen between depending on the situation either ZZCT's TSLE, or ZZc's OLS. [2]
 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.
Solving Corner Permutation during F2L
These methods solve Corner Permutation leaving the cube in a 2gen state, finishing with a onelook 2GLL. In the broadest sense, all of these are variants or subsets of ZZd.
 ZZd: During the completion of the second block, corners are permuted and 2GLL can be used to finish. Only a maximum of 2 additional moves are required to correctly solve CP. When done during last slot, this process is called CPLS. As of 2021, due to a simplification of the CP recognition process, CPLS has become viable for speedsolving and is currently the flagship approach to ZZd.
 ZZe / ZZOrbit: Corners are permuted during insertion of the last F2L pair. This solves CPLS once the pair has been built, making the comparison to ZZd similar to that of VHLS to ZBLS. This has many similarities to CPLS+2GLL, but was developed independently. ZZe has the alternate name of ZZOrbit because community member Kim Orbit was the first to completely develop the variant. Thread:[3] Guide:[4]
 ZZporky v1: Also known as ZZe. The D layer corners are put in the D layer (not necessarily permuted) and alg is used to solve corner permutation. Post:[5]
 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. Next, insert the last first block pair using only <LU> moves, then solve the rest of the cube with only <RU> moves. Post: [6]
 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. Not much is known about this method, and ZZz has come to commonly refer to a different variant (see ZZSnake Pattern below).
 ZZf: One of the original, yet more obscure and unknown ZZ variants. After EOLine, solve two 2x2x1 blocks in the back, finish the left side while permuting the remaining corners, insert the final F2L pair and solve the last layer all <RU>gen.
Other Last Slot/Last Layer Variants
 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.)
 ZZ0: During LSLL, edges are permuted and the unsolved corners are oriented such that they can be solved using <RUD> 3cycle commutators. The name comes from the concept of "zeroing".
General Variants
 ZZSnake Pattern (Commonly called ZZz): 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.
 ZZEF: ZZEF is a variant that allows for a low movecount ZZ F2L by solving pairs with incorrect corners which only have to satisfy the constraint of forming a 3cycle on the D layer. This is followed by reducing the last layer to a 3cycle, too, and finishing the solve by performing the two algorithms which solve these 3cycles.
 ZZSlice: ZZSlice starts off with EOSlice, followed by solving ZZ F2L in pairs. However, the pairs' corners do not have to be permuted, only oriented, correctly. After that, LL corners are oriented, the last six edges are permuted and the solve is finished with CPBL. This variant, however, averages 6575 moves.
 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 DB. After ZZF2L, you can then do COLL and then go directly into Roux LSE step 4c, which is close to two moves more efficient than EPLL.
 ZZ4c+: the starts is exactly the same as ZZ4c but instead of last slot, COLL and LSE, you do COPLS (corner orientation and permutation last slot) which has 162 algorithms. Doing that you skip the COLL step and you left with only LSE.
 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.
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. EOCross has a slightly higher movecount which is made up for with its easier lookahead and reduced regrips. (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
 Andrew Huang
 Andrew Nathenson
 Chris Tran
 Conrad Rider
 Dale Palmares
 John Smith
 Joseph Tudor
 Nathaniel Gee
 Phil Yu
 Simon Kalhofer
 Zbigniew Zborowski
See also
External links
 Newest In Depth ZZ Website
 Very indepth ZZ Method Tutorial (EOCross/EOArrow not described)
 Detailed, uptodate ZZ website
 EOLine Solver (Java)
 Comparison of ZZ variants (movecount)
 Original ZZ Website
 YouTube: MegaZZ
 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