Wolfram Rule 90 is a type of cellular automata.

Each cell's value is computed as the XOR of its two neighbors in the predecessors generation.

Rule 90 cannot be reversed, because a given configuration has 4 possible predecessor configurations.

However, I've found that a small modification will cause the rule set to become reversible!

This modification applies to the cells on left and right edges (assuming your matrix is a finite, and so has edges).

It makes no sense to perform an XOR operation, since cells on the edge only have one neighbor.

Instead, these cells can inherit the value of their lone neighbor, without modification.

This way, 2 cells (on the edges) are always known, and we find one unique predecessor.

This may seem obvious to some people, but I thought the discovery worth sharing. :)