This started as a quest to produce a vector SVG export of an ArrayPlot of a cellular automaton. However, it quickly became apparent that this would be more complicated than Export["vectorca.svg",ArrayPlot[CellularAutomaton[30,{{1},0},20]]], because ArrayPlots are actually raster objects, and I wanted little rectangles for each cell. I ended up with this code, which works for any two-dimensional binary array:
If you examine the SVG outputted by that, you will notice that it isn’t actually vector, but a raster bitmap embedded in the file. This is why I made my code in the first place, as indicated in the second sentence of my original post.