An origami design method based on topology optimization is introduced. The design of a folding pattern is cast as a problem of assigning presence and type of fold to lines in a “ground structure,” using folding angles as design variables. A ground structure for origami design has lines drawn on a two dimensional domain, showing all line segments that may appear as crease lines in the folded geometry. For a given ground structure and folding angles, the 3D geometry of the folded sheet can be computed using the mathematics of origami. A topology optimization method is then used to find an optimal combination of folding angles, which results in a folding pattern with desired, target geometric properties.