We have studied existing models of grammars for specifying 2D patterns and introduced more refined models based on tiling and on rewriting rules. We have characterized the capacity to generate different types of patterns, and the time complexity for pattern recognition.