Systems and methods related to three-dimensional coding are disclosed. In one embodiment, a method for encoding data is described that includes generating a pattern in a substrate. The pattern includes elements and each element has one of an aperture or a protrusion. The aperture or protrusion has unique x, y coordinates within the pattern. The method also includes varying a depth of at least one element. The varied depth encodes data.