In the spirit of taking things too far: [
CAUTION: MASSIVE MEGAESSAY POST]
Playing Forever V3.1 (5bag loop)At this point, the method loses most of its resemblance to the original Playing Forever solution. Like PFV2, it also appears to require four piece previews to handle the worstcase scenarios. The first difference here is stacking the two 4wide heaps next to each other, so that the 2wide is on the extreme right. This is actually very important to the stacking method, as we shall see.
Now, a 5 bag solution will obviously contain 5 Ts in the generalized tiling of the playing field (a tiling that accounts for line clears), and as we all know T has unbalanced parity. That means we cannot usually make a PC solution in 5 bags unless skimming is used to make rebalancing of parity possible. My solution is to use the T from Bag 2 to perform this skim, so that an I piece can rebalance the parity.
Bag 1
Stack {STZ} as normal, and {IJLO} into a 4 x 4 square. In some cases this is impossible (I have calculated the probability, and there are
at most 164 bags where the {IJLO} square cannot be resolved). For those cases, stack I on the right of the 2wide gap, and build {JLO} and {STZ} as normally done in PF.
If {IJLO} has I first or last (P = 1/2, or 12 of 24 cases), {JLO} can be placed as normal and I added to the heap – either before {JLO} is started, or after it is completed. Of the remaining cases, there are four in which {JLO}=JOL or LOJ: JOIL, LOIJ, JIOL, or LIOJ. These are solved by stacking {JLO} horizontally (as a 4high rectangle rather than 3high) and dropping I on one side.
This leaves eight “bad” cases:
1*: OJIL, OLIJ
2*: OIJL, OILJ
3*: JILO, LIJO
4*: JLIO, LJIO
In fact, OJIL and (at sufficiently low gravities) JILO and LIJO are solvable by softdropping L or O respectively from the righthand side – since the 2wide is currently empty. A more detailed analysis of the bags in which there are worst case scenarios will likely follow in an appendix to Playing Forever V3.1.
Bag 2The placement of Bag 2 depends on if Bag 1 was completed with an IJLO square (henceforth the normal method) or without (henceforth a worstcase scenario or WCS). We divide these scenarios into the general cases 2A and 2B, respectively.
Case 2A:If Bag 1 was completed in the normal way, place Bag 2 as follows. Hold may be required to drop T before I, although this of course happens naturally with P = 1/2.
Case 2B:If Bag 1 has a worstcase scenario (WCS), place Bag 2 similarly, but instead place T into Hold and place the other six pieces (the placement is orderindependent).
T can be placed one of two ways,
and
To decide which way to place the T, use the fact that the first piece of Bag 3 is in Hold, and four previews are available, so we can see at least five pieces into the bag. Since {IJLO} contains four pieces and {STZ} three, we can see:
 The first two pieces of {STZ} and the first three pieces of {IJLO}, or
 The first piece of {STZ} and all of {IJLO}, or
 All of {STZ} and the first two pieces of {IJLO}.
In the first case, we can deduce the order of {STZ} and {IJLO}. Regardless, we always know at least the first {STZ} piece of Bag 3 and at least the first two pieces of {IJLO}. Now, the desired placement of {STZ} in Bag 3 is as follows:
 If T comes first in Bag 3, place T (from Bag 2) facing to the right. (*) (exceptions apply; see Bag 3 for details.)
 If Z comes first in Bag 3, place T facing to the left.
 If S comes first in Bag 3,
and is the only visible {STZ} piece, place T facing to the right.
 If {STZ} starts as ST in Bag 3, place T facing to the right.
 If {STZ} starts as SZ in Bag 3, place T facing to the left.
This algorithm is designed to minimize dependence on Hold in Bag 3.
Bag 3Caution: This bag is extremely situational. There is heavy analysis ahead.
Case 3A: This continues the standardprocedure branch, assuming the {IJLO} square was formed with no complications. There are five possible placements, considering the qualitatively distinct {STZ} and {IJLO} cases.
The first placement (labeled “Goal”) can be placed most of the time: Sufficient conditions are {IL} = IL (P = 1/2), or {IL} = LI and {STZ} = {ST}Z (P = 1/6), and these disjoint events give a minimum probability of P = 2/3. The placements are listed in descending order of preference. Placement #2 yields an isomorphic playing field, but requires line clears to set up. Placements #3 and #4 are still amenable to Bag 4, but require extra considerations when I precedes J in Bag 4. While you are guaranteed to be able to place #5 by holding Z to the end, it is not recommended. (I am still trying to work out a method to force Placements #1 through #4 to be possible).
Case 3B: Continuing the worstcase scenario branch, we see that it is possible to place {STZ} in Bag 3 with minimal Hold. There are essentially two configurations, a main placement for when Z drops last (TSZ, STZ) and a secondary placement for when Z precedes T (ZTS, ZST, SZT). (The main placement is also used for bags {IJLOS}{TZ} where {TZ} can be forced to drop as TZ because Hold has become available.)
Recall that the placement of T in Bag 2 pointed left in the main placement and right in the secondary placement; this orientation dependence is because, in Bag 4, we will drop L into the 2wide if the main placement was used, and J if the secondary placement was used; the T orientation is used to ensure J/L2wide parity is conserved.
Since the first five pieces of Bag 3 were visible when choosing the T placement in Bag 2, the T placement algorithm we used guarantees placement of {STZ} in Bag 3 without any Hold conflict – Hold is only necessary for the {IJLOS}{TZ} case, where it may be used for {IJLO} as well as for {STZ} with no conflict.
The sole bad {STZ} case where Z neither precedes T nor drops last is TZS, which fits neither category. As in the Fumen (and as was accounted for in the Bag2 T placement algorithm when T comes first in Bag 3), we handle this by placing T first as in the main {STZ} placement, and then using Hold to force the {STZ} case TSZ.
Since we are considering {STZ} and {IJLO} separately for Bag 3, it is important to us that the use of Hold be crosscompatible among the two. As we have seen, only one {STZ} case requires Hold, which is used to reverse the order of the last two pieces of TZS into TSZ. We need to consider whether Hold is available, or whether it must also be used for the {IJLO} square.
The bad cases from Bag 1 reappear here in Bag 3:
1*: OJIL, OLIJ
2*: OIJL, OILJ
3*: LIJO, JILO
4*: LJIO, JLIO
Notice that 1*, 3*, and 4* do not actually require Hold. We take advantage of the available clearance on either side of the {JLO} heap to place the pieces using softdrop.
Thus, Hold is not required for these cases and so may be used if {STZ} requires it. A WCS Bag 3 is therefore avoided if {STZ} = TZS but {IJLO} is not the bad case 2*.
The WCS for {IJLO} is then 2*: {IJLO} = OI{JL}. In this case, softdropping is futile, and we require Hold to modify the piece order. To give us the greatest versatility, we consider two different ways of accomplishing this:
 OIJL => IOJL, OILJ => IOLJ
 OIJL => OJLI, OILJ => OLJI
Notice that the first solution Holds the first piece until the second has dropped, while the second solution Holds the second piece until the very end. We can now attempt to solve the WCS for Bag 3, namely, {STZ} = TZS (P = 1/6), and {IJLO} = OI{JL} (P = 2/24).
Suppose Hold is not available to reverse the order of the first two {IJLO} pieces O and I. Then we would be Holding Z, so TZ drops before I ({ITZ} = TZI). Considering O (which comes before I in the WCS), we must have that {IOTZ} = TZOI, TOZI, or OTZI. We solve all three cases by doing the following:
 Place O whenever it comes.
 Hold T to force {TZ} = ZT, placing ZT as per the secondary {STZ} placement in Bag 3.
 Now Hold is available again, so Hold I.
We then place the remainder of the bag, dropping I last (and thus forcing the good “I last” case of {IJLO}). However, this raises an “immediate” question: The normal way we accommodate T first in {STZ} in Bag 3 is by using the main placement of {STZ}. The orientation of the T in Bag 2 depended on this placement. If we switch {STZ} placements here, after placing T, then how can we ensure Bag 4 placement is possible?
We cannot ensure this, so the only solution is to identify this Bag3 WCS before the Bag2 T has even been placed. As tall an order as this is, it is in fact possible! The worst case happens only when {STZ} = TZS, {IJLO} = OI{JL}, and Hold cannot be used both to permute TZS => TSZ and OI{JL} => IO{JL}.
Remember that, when placing T last in Bag 2, we can see five pieces into Bag 3. If we see only {IJLOT}??, and ?? = ZS (but we cannot see it), then there is no conflict and this is not the WCS. Hold can be used for {STZ} and {IJLO} separately. The only other possibility for a WCS is that at least two of the three {STZ} pieces are visible among Hold and the piece previews. But then we would see {STZ} = TZ? = TZS. We would also see at least the first two pieces of {IJLO}, {IJLO}=OI??=OI{JL}.
Thus, we can identify the Bag3 WCS using the (*) case in Bag 2.
In Bag 2:
 If TZ comes first in {STZ}, the first two pieces of {IJLO} are OI, and Z comes before I, then
place T facing left.Thus, we have solved the worstcase scenario for Bag 3 (predicated on a worstcase scenario for Bag 1). If we are not able to permute OI{JL} => IO{JL} and TZS => TSZ, then we are guaranteed to be able to permute OI{JL} => O{JL}I and TZS => ZTS. This conclusively proves that the {IJLO} square can
always be formed by Bag 3, as is necessary for the method to work.
Bag 4In this bag, we place S{TZ} or Z{TS}, where S/Z rests horizontally with its 1 x 2 base on columns 5 and 6. As in Playing Forever V2, if T comes early, place it into Hold until the first S/Z piece comes. The precise shape of the playing field in its current state has been engineered to accept the {IJLO} pieces easily.
Case 4A:Pieces are placed as follows:
As done for PFV2, hold the last S/Z of {STZ} until the end of the bag (in all except the special exception discussed below). With S/Z still in Hold, the active piece and four previews guarantee that the first {STZ} piece in Bag 5 is visible. As before, if this first piece is T, place the final S/Z adjacent to (and level with) the first. If the first piece is S/Z, place the Bag4 S/Z on top of the first.
The unique exception to the above case is as follows. For Placements #1 through #4, if {IJLO} comes as {IJO}L, S is placed first, and Hold is not available to swap O and L (e.g., the bag TJIOSLZ), place STZ as normal and Hold L to the very end. The L can be placed with the following LSpin technique, which
requires the Z piece in order to work correctly.
Case 4B:The playing field is isomorphic to Placement #5 in Case 3A, and pieces are placed accordingly.
Note: Just as in PFV2, it is sometimes possible to get a lucky bag distribution where {IJLO} finishes in the first five pieces. In that case, using Hold to force the one {STZ} piece to drop after {IJLO} in Bag 4, we can occasionally score a second perfect clear midway through Bag 4 before the one that is supposed to occur in Bag 5.
Bag 5The worstcase scenario branch and standardprocedure branch meet up at this last bag in the four {STZ} configurations discussed in Case 4A. The PC is completed as in Bag 10 of PFV2. Place two pieces of {STZ}, placing the final S/Z into Hold until the end of the bag, and S/Zspinning to finish the loop.
There we go!
The minimal playing forever technique has been achieved! It took
a lot (A LOT!) of work to come up with this, and chasing down some of those worstcase scenarios was an absolute pain. But (if nobody else) at least I feel it was worth the effort. Apart from that, I hope you all enjoyed it  and thank you to everyone who read the whole thing.
Now, a few particular acknowledgements are in order: First, to
colour_thief,
tepples, and
Pineapple, for devising the original pattern, making the continuity proof rigourous, and confirming that the method works with three piece previews. You took the big leap of faith to say that Tetris could be solved with a single algorithm and laid the foundations upon which both of my revisions were built  it's a foregone conclusion, but I couldn't have done it without you. (Also, I'm sorry I couldn't make PFV3.1 work with three previews.
Let's leave that as an exercise to the reader.)
But the acknowledgement of greatest propinquity goes to
Shuey, who has offered spiritual support and has been party to my development process since I first began to revise PF and has received countless 1,000+ word essay emails from me, thinking out loud, with nary a complaint.
He also learned how to stack both PFV2 and PFV3 (a version with a slightly different Bag 3 that could fail with P ~ 0.5%)  which until about two days ago was the most uptodate version of my technique. That kind of solidarity means a lot to me, especially considering how complex both of those methods are compared to PF. Shuey, thanks for being there, mate.
I hope some part of this outline helps you figure out PFV3.1.
Okay, guys, I've got grad school applications to do, so I'm out of here. When I have time, I'll be sure to upload more playthroughs  hopefully a video and/or a few NullPomino replays. I might also throw in some probabilistic calculations (just in case you guys want to know how I got that Bag 1 WCS lower bound of 164 bags). Until then, let me know what you think!
Cheerio,

?