Geometric programming: a programming approach to geometric design

This article presents a functional programming approach to geometric design with embedded polyhedral complexes. Its main goals are to show the expressive power of the language as well as its usefulness for geometric design. The language, named PLASM (the Programming LAnguage for Solid Modeling), introduces a very high level approach to “constructive” or “generative” modeling. Geometrical objects are generated by evaluating some suitable language expressions. Because generating expressions can be easily combined, the language also extends the standard variational geometry approach by supporting classes of geometric objects with varying topology and shape. The design language PLASM can be roughly considered as a geometry-oriented extension of a subset of the functional language FL. The language takes a dimension-independent approach to geometry representation and algorithms. In particular it implements an algebraic calculus over embedded polyhedra of any dimension. The generated objects are always geometrically consistent because the validity of geometry is guaranteed at a syntactical level. Such an approach allows one to use a representation scheme which is weaker than those usually adopted in solid modelers, thus encompassing a broader geometric domain, which contains solids, surfaces, and wire-frames, as well as higher-dimensional objects.

[1]  D. Ross Computer-aided design , 1961, CACM.

[2]  William Leler,et al.  Constraint programming languages: their specification and generation , 1988 .

[3]  Claude Brezinski,et al.  Generative modeling for computer graphics and CAD , 1993 .

[4]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[5]  Aristides A. G. Requicha,et al.  Constructive non-regularized geometry , 1991, Comput. Aided Des..

[6]  Peter Henderson Functional Programming , 1980 .

[7]  John M. Snyder,et al.  Generative modeling: a symbolic system for geometric modeling , 1992, SIGGRAPH.

[8]  James C. Miller,et al.  Computer graphics principles and practice, second edition , 1992, Comput. Graph..

[9]  John M. Snyder Generative modeling: an approach to high-level shape design for computer graphics and CAD , 1992 .

[10]  Thomas Ertl,et al.  Computer Graphics - Principles and Practice, 3rd Edition , 2014 .

[11]  Valerio Pascucci,et al.  Product operator on cell complexes , 1993, Solid Modeling and Applications.

[12]  Christoph M. Hoffmann,et al.  Erep An Editable High-Level Representation for Geometric Design and Analysis , 2013 .

[13]  Valerio Pascucci,et al.  Dimension-independent convex-cell based HPC: representation scheme and implementation issues , 1995, SMA '95.

[14]  F. Frances Yao,et al.  Computational Geometry , 1991, Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.

[15]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[16]  Alberto Paoluzzi,et al.  Programming language for solid variational geometry , 1992, Comput. Aided Des..

[17]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[18]  John H. Williams,et al.  An introduction to the programming language FL , 1990 .

[19]  Bruce F. Naylor,et al.  Set operations on polyhedra using binary space partitioning trees , 1987, SIGGRAPH.

[20]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[21]  ARISTIDES A. G. REQUICHA,et al.  Representations for Rigid Solids: Theory, Methods, and Systems , 1980, CSUR.

[22]  R. Light,et al.  Modification of geometric models through variational geometry , 1982 .

[23]  大野 義夫,et al.  Computer Graphics : Principles and Practice, 2nd edition, J.D. Foley, A.van Dam, S.K. Feiner, J.F. Hughes, Addison-Wesley, 1990 , 1991 .

[24]  Christoph M. Hoffmann Modeling the DARPA Diesel Engine in ProEngineer , 1992 .

[25]  Herbert Edelsbrunner,et al.  Algorithms in Combinatorial Geometry , 1987, EATCS Monographs in Theoretical Computer Science.

[26]  A. Requicha,et al.  Engineering Databases , 1990, Symbolic Computation.

[27]  Guy L. Steele,et al.  The definition and implementation of a computer programming language based on constraints , 1980 .

[28]  Toby Howard,et al.  A practical introduction to PHIGS and PHIGS Plus , 1990 .

[29]  José L. Encarnação,et al.  Computer Aided Design: Fundamentals and System Architectures , 1985 .

[30]  Bruce F. Naylor Binary space partitioning trees as an alternative representation of polytopes , 1990, Comput. Aided Des..

[31]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[32]  Adobe Press,et al.  PostScript Language Reference Manual , 1985 .

[33]  Carlo Cattani,et al.  Dimension-independent modeling with simplicial complexes , 1993, TOGS.

[34]  John M. Snyder,et al.  Generative Modeling for Computer Graphics and Cad: Symbolic Shape Design Using Interval Analysis , 1992 .

[35]  Wm Leler,et al.  Constraint languages for computer aided design , 1985, SIGD.

[36]  Peter Henderson,et al.  Functional programming - application and implementation , 1980, Prentice Hall International Series in Computer Science.