Pseudorandom Cellular Automaton
Retina, 139 bytes

^.
1

 00:0 01:1 10:1 11:
(m`^(..)((\S*)(?&lt;=0) .*)
$1$3#$1!$2
+m`(?&lt;=^(?&lt;-2&gt;.)*(..).*?#(.)*.)\d!(.)(.*\1:)(.)(\d*)
$5$3!$4$6$5
)`!0
0
 .+
&lt;empty&gt;


Where &lt;empty&gt; indicates that there is a trailing empty line. Each line goes in a separate file and the # should be replaced with linefeeds (0x0A).

Expects the input to be n in unary (made of zeroes, as in Unary), followed by a space, followed by the "pseudo-random" string, e.g. 10, [1, 0, 0, 1] would be read as

0000000000 1001


Output is as in the challenge, but padded with zeroes, e.g. 

1000000000
1100000000
1110000000
1001000000
1101100000
1111110000
1001101000
1101011100
1111111010
1011001111


This was way trickier than I expected...