Reciprocal Frame Structures Made Easy
Peng Song, Chi-Wing Fu, Prashant Goswami, Jianmin Zheng, Niloy J. Mitra, Daniel Cohen-Or


A reciprocal frame (RF) is a self-supported three-dimensional structure made up of three or more sloping rods, which form a closed circuit, namely an RF-unit. Large RF-structures built as complex grillages of one or a few similar RF-units have an intrinsic beauty derived from their inherent self-similar and highly symmetric patterns. Designing RF-structures that span over large domains is an intricate and complex task. In this paper, we present an interactive computational tool for designing RF-structures over a 3D guiding surface, focusing on the aesthetic aspect of the design. There are three key contributions in this work. First, we draw an analogy between RF-structures and plane tiling with regular polygons, and develop a computational scheme to generate coherent RF-tessellations from simple grammar rules. Second, we employ a conformal mapping to lift the 2D tessellation over a 3D guiding surface, allowing a real-time preview and efficient exploration of wide ranges of RF design parameters. Third, we devise an optimization method to guarantee the collinearity of contact joints along each rod, while preserving the geometric properties of the RF-structure. Our tool not only supports the design of wide variety of RF pattern classes and their variations, but also allows preview and refinement through interactive controls.



We thank anonymous reviewers for the various constructive comments, Yiorgos Chrysanthou for comments on our paper draft, Michael Brown for voice over, William Lai and Max Lim for help on 3D Studio Max, Yiyu Cai for sharing ANSYS, and Yongliang Yang for providing some of the reference 3D models. This work is supported in part by the Singapore MOE Tier-2 grant (MOE2011-T2-2-041), and the Israel Science Foundation.


AUTHOR = "Peng Song and Chi-Wing Fu and Prashant Goswami and Jianmin Zheng and 
Niloy J. Mitra and Daniel Cohen-Or",
TITLE = "Reciprocal Frame Structures Made Easy",
JOURNAL = "ACM Transactions on Graphics",
VOLUME = "32",
NUMBER = "4", 
YEAR = "2013", 
numpages = {10},

paper (30MB) paper (4MB)
back to publications
back to homepage