A method comprising: receiving, by a computing device, a binary identifier comprising a plurality of bits; determining, by the computing device, a plurality of encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern (17, 18, 20, 22, 66, 74, 82, 91, 93, 95, 97, 121) within the perimeter; and wherein the line pattern (17, 18, 20, 22, 66, 74, 82, 91, 93, 95, 97, 121) within the perimeter for each encoded cell includes a line positioned radially with respect to the alignment mark of the encoded cell to represent at least two bits in the predetermined sequence of the encoded cell; generating, by the computing device, a cell array (30, 60, 70, 80) that includes the plurality of encoded cells; and outputting, by the computing device, data for producing a graphical representation of the cell array (30, 60, 70, 80), characterized by: defining a null cell as a cell having the same shaped perimeter as an encoded cell wherein said null cell does not contain a radial line pattern but does contain the alignment mark in the center of the null cell in the same way as the encoded cell; wherein determining the plurality of encoded cells in accordance with the encoding scheme includes determining, for each of the plurality of encoded cells, a cell colour, wherein the cell colour is one of a plurality of colours, and determining, by the computing device, a plurality of alignment cells, wherein the generated cell array (30, 60, 70, 80) includes the plurality of alignment cells and wherein the plurality of alignment cells includes a plurality of coloured alignment cells, each coloured alignment cell comprises an alignment cell coloured to match a corresponding colour of the plurality of colours, wherein the plurality of alignment cells are an ordered string of adjacent null cells, one in each permissible colour, with two adjacent instances of a leading null cell in the string. receiving, by a computing device, a binary identifier comprising a plurality of bits; determining, by the computing device, a plurality of encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern (17, 18, 20, 22, 66, 74, 82, 91, 93, 95, 97, 121) within the perimeter; and wherein the line pattern (17, 18, 20, 22, 66, 74, 82, 91, 93, 95, 97, 121) within the perimeter for each encoded cell includes a line positioned radially with respect to the alignment mark of the encoded cell to represent at least two bits in the predetermined sequence of the encoded cell; generating, by the computing device, a cell array (30, 60, 70, 80) that includes the plurality of encoded cells; and outputting, by the computing device, data for producing a graphical representation of the cell array (30, 60, 70, 80), characterized by: defining a null cell as a cell having the same shaped perimeter as an encoded cell wherein said null cell does not contain a radial line pattern but does contain the alignment mark in the center of the null cell in the same way as the encoded cell; wherein determining the plurality of encoded cells in accordance with the encoding scheme includes determining, for each of the plurality of encoded cells, a cell colour, wherein the cell colour is one of a plurality of colours, and determining, by the computing device, a plurality of alignment cells, wherein the generated cell array (30, 60, 70, 80) includes the plurality of alignment cells and wherein the plurality of alignment cells includes a plurality of coloured alignment cells, each coloured alignment cell comprises an alignment cell coloured to match a corresponding colour of the plurality of colours, wherein the plurality of alignment cells are an ordered string of adjacent null cells, one in each permissible colour, with two adjacent instances of a leading null cell in the string. defining a null cell as a cell having the same shaped perimeter as an encoded cell wherein said null cell does not contain a radial line pattern but does contain the alignment mark in the center of the null cell in the same way as the encoded cell; wherein determining the plurality of encoded cells in accordance with the encoding scheme includes determining, for each of the plurality of encoded cells, a cell colour, wherein the cell colour is one of a plurality of colours, and determining, by the computing device, a plurality of alignment cells, wherein the generated cell array (30, 60, 70, 80) includes the plurality of alignment cells and wherein the plurality of alignment cells includes a plurality of coloured alignment cells, each coloured alignment cell comprises an alignment cell coloured to match a corresponding colour of the plurality of colours, wherein the plurality of alignment cells are an ordered string of adjacent null cells, one in each permissible colour, with two adjacent instances of a leading null cell in the string.