The jFAT Java library makes it simple to create tiles (2D shapes) and write code to have them cover the screen. A few examples are shown below, with more in the download.
The last four examples use jFAT's built-in tiling functions, which account for the "fairly accurate" part of the library's name - the tessellations involving the Escher-style lizards, the carpeted equilateral triangles, and the Penrose P2 tiles (the dart and the kite) include gaps which should not be present.
There are various reasons for these spaces: the first two suffer from inaccuracies in the definition of their tile images, but the openings in the Penrose tessellation point to a more complex problem related to backtracking, which I discuss in the paper.