A general strategy is described for designing proteins that self assemble into large symmetrical nanomaterials, including molecular cages, filaments, layers, and porous materials. In this strategy, one molecule of protein A, which naturally forms a self-assembling oligomer, A(n), is fused rigidly to one molecule of protein B, which forms another self-assembling oligomer, B(m). The result is a fusion protein, A-B, which self assembles with other identical copies of itself into a designed nanohedral particle or material, (A-B)(p). The strategy is demonstrated through the design, production, and characterization of two fusion proteins: a 49-kDa protein designed to assemble into a cage approximately 15 nm across, and a 44-kDa protein designed to assemble into long filaments approximately 4 nm wide. The strategy opens a way to create a wide variety of potentially useful protein-based materials, some of which share similar features with natural biological assemblies.