`Bottom-up fabrication', which exploits the intrinsic properties of atoms and molecules to direct their self-organization, is widely used to make relatively simple nanostructures. A key goal for this approach is to create nanostructures of high complexity, matching that routinely achieved by `top-down' methods. The self-assembly of DNA molecules provides an attractive route towards this goal. Here I describe a simple method for folding long, single-stranded DNA molecules into arbitrary two-dimensional shapes. The design for a desired shape is made by raster-filling the shape with a 7-kilobase single-stranded scaffold and by choosing over 200 short oligonucleotide `staple strands' to hold the scaffold in place. Once synthesized and mixed, the staple and scaffold strands self-assemble in a single step. The resulting DNA structures are roughly 100nm in diameter and approximate desired shapes such as squares, disks and five-pointed stars with a spatial resolution of 6nm. Because each oligonucleotide can serve as a 6-nm pixel, the structures can be programmed to bear complex patterns such as words and images on their surfaces. Finally, individual DNA structures can be programmed to form larger assemblies, including extended periodic lattices and a hexamer of triangles (which constitutes a 30-megadalton molecular complex).