Volume 25 (2017) Pages 590-600
We show how to fold a piece of paper and punch one hole so as to produce any desired pattern of holes. Given n points on a piece of paper (finite polygon or infinite plane), we give algorithms to fold the paper flat so that those n points and no other points of paper map to a common location, so that punching one hole and unfolding produces exactly the desired pattern of holes. Furthermore, we can forbid creases from passing through the points (allowing noncircular hole punches). Our solutions use relatively few creases (in some cases, polynomially many), and can be expressed as a linear sequence of folding steps of complexity O(1)—a generalization of simple folds which we introduce.