Warring floodfill cellular automata

Each pixel is an automaton, having a colour and targeting another.

The canvas starts blank. Two dots of one colour are placed along a radial line, 25 and 100 pixels away from the centre, and along the same line another colour, 62½ away.

A pixel encountering a targeted-colour neighbour will devour it half the time, substituting a self-replica.

Rarely, a pixel goes rogue, targeting a differently-coloured neighbour.

It iterates thirty times per second, but renders as often as possible.

A previous version of the code had a severe bottom-right corner bias. Can you figure out why?