How To Use This Website

ROLL

ROLL is a technique that allows you to predict the corner permutation of your PLL by observing the corners during OLL. The easiest way to do this is by using COLL or OLLCP recognition.

Example:

Enter F R U R' U' F' into the box at the top of the page and look at the fourth image:

This means that using F R U R' U' F' to solve OLL when the corners are like this:

Will result in a PLL where the corners are swapped like this:

JOLL

JOLL is a technique that allows you to infer information about the edge permutation of your PLL by observing the edges during OLL.
Terminology: two colours are opposite if they belong on opposite sides of the cube, i.e one colour belongs on L and the other colour belongs on R.

Example

Enter F R U R' U' F' into the box at the top of the page.

The image:

Represents a case in which the LU and UF edges are opposite colours.

The image:

Represents a case where the LU and UF edges are not opposite colours.

There are two categories of cases.

The first two images are cases which will result in a PLL that involves an "opposite swap" of edges or no swap at all, meaning that FU and BU are opposite colours and LU and RU are also opposite colours. The PLLs that fall into this category are N, Z, H, A, E, T and F perms.

The last six images are cases which result in a PLL that involves swap of adjacent edges. These are all of the PLLs that do not fall into the previous category: U, J, R, V, Y and G perms.

For a more in depth explanation of JOLL, see this post by Jayden McNeill.

ROLL/JOLL Bookmarklet

This bookmarklet lets you highlight an alg on any webpage and view the ROLL and JOLL information for that alg in one click.


To install this bookmarklet, drag the above link from the page to the bookmarks bar of your browser. This should work for Chrome, Firefox and Opera. For other browsers, bookmark this page, and change the URL to the below text:

javascript:(function() { function se(d) { return d.selection ? d.selection.createRange().text : d.getSelection() } s = se(document); for (i=0; i<frames.length && !s; i++) s = se(frames.document); if (!s || s=='') s = prompt('Enter an algorithm to view the ROLL/JOLL information',''); if (s!=null&&s!=''){ open('https://tao-yu.github.io/ROLLJOLL/?alg=' + (s ? encodeURIComponent(s.toString().replace(/[’`]/g,"'").replace(/'(\d+)/g, "$1'")) :'')).focus(); } })();