**The rule**

>! The letters refer to colours: BCGOPRWY denoting Brown, Cyan, Green, Orange, Purple, Red, White, Yellow respectively. These colours can be seen by clicking on the grid in the OP to reveal [a colour palette](https://i.sstatic.net/QPQVa.png).  
>!  
>! The set of letters in each cell refers to **the set of colours that cell can 'see'**, i.e. the colours a chess king on that cell could move onto in a single move. (Diagonal must count as well as orthogonal, because some cells have as many as seven letters. The cell's own colour doesn't count, because that would swiftly lead to contradictions.)

**The solution (work in progress)**

Let us denote the columns by a-n and the rows by 1-9.

1. The obvious place to start is a4, that lone G on the left-hand side: all cells around it must be green. a4 itself is next to a3 and must be cyan or green, but can't be cyan as it's next to a5 too, so we have a big green block around a4.

2. Everything next to a3 must be green or cyan, and we can deduce which is which by looking at the letters surrounding *them* (a2 can't be cyan because of b2, so b2 is cyan and a2 is green). Everything next to c4 must be green or red, and again we can deduce which is which in most cases. Then do the same with d5 (green or white), e5 (brown or green), and e4 (green or white). So far we have:

  >! [![one][1]][1]  
  >!  
  >! (I've used a pencil circle to denote a cell which is definitely white as opposed to simply unfilled.)

3. The only possibility for a1 (next to b1 and b2) is green. a2 must be next to a purple, so b1 is purple. c1 and c2 are next to both b1 and d1, so they must be green. c1 still needs to be next to white and yellow, so d2 is yellow and d1 is white. So far we have:

  >! [![two][2]][2]


  [1]: https://i.sstatic.net/0D2dBm.png
  [2]: https://i.sstatic.net/Yege7m.png