GEOMETRIC COMPUTATION
FOUNDATIONS FOR DESIGN
Joy Ko and Kyle Steinfeld
First published 2018
by Routledge
2 Park Square, Milton Park, Abingdon, Oxon OX14 4RN
and by Routledge
711 Third Avenue, New York, NY 10017
Routledge is an imprint of the Taylor & Francis Group, an informa business
2018 Joy Ko and Kyle Steinfeld
The right of Joy Ko and Kyle Steinfeld to be identified as authors of this work has been asserted by them in accordance with sections 77 and 78 of the Copyright, Designs and Patents Act 1988.
All rights reserved. No part of this book may be reprinted or reproduced or utilised in any form or by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying and recording, or in any information storage or retrieval system, without permission in writing from the publishers.
Trademark notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe.
Publishers Note
This book has been prepared from camera-ready copy provided by the authors.
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library
Library of Congress Cataloging-in-Publication Data
Names: Ko, Joy, author. | Steinfeld, Kyle, author.
Title: Geometric computation : foundations for design / Joy Ko and Kyle
Steinfeld.
Description: Milton Park, Abingdon, Oxon : Routledge, 2018. | Includes
bibliographical references and index.
Identifiers: LCCN 2017004365| ISBN 9780415811965 (hb : alk. paper) | ISBN
9780415811972 (pb : alk. paper) | ISBN 9781315765983 (ebook)
Subjects: LCSH: Architecture--Mathematics. | Design--Mathematics.
Classification: LCC NA2750 .K58 2017 | DDC 720.1/51--dc23
LC record available at https://lccn.loc.gov/2017004365
ISBN: 978-0-415-81196-5 (hbk)
ISBN: 978-0-415-81197-2 (pbk)
ISBN: 978-1-315-76598-3 (ebk)
Typeset in Akzidenz Grotesk and Scala Sans
by Kyle Steinfeld
CONTENTS
CHAPTER 1.01
ELEMENTS OF A COMPUTATION
CHAPTER 1.02
OBJECTS, TYPES, AND EXPRESSIONS
CHAPTER 1.03
VECTORS, POINTS, AND COORDINATE SYSTEMS
CHAPTER 1.04
COLLECTIONS AND CONTROL FLOW
CHAPTER 1.05
FUNCTIONS
CHAPTER 1.06
LINES AND PLANES
CHAPTER 1.07
TRANSFORMATIONS AND INTERSECTIONS
CHAPTER 1.08
BUREAUCRATIC TYPES
CHAPTER 1.09
CURVES
CHAPTER 1.10
SURFACES
CHAPTER 1.11
THE DESIGN OF OBJECTS
Geometric Objects
Computation is central to significant innovations that are shaping the way that design is practiced today. No longer the peripheral specialty it was even just a decade ago, design computation is now accepted as a necessary area of practice in many creative design disciplines, including architecture and industrial design. It is considered a distinct domain of academic inquiry, and has become an essential topic in design education.
The idea to write this book arose out of the challenge in finding a foundational text or curriculum that addressed computational design in a comprehensive way, one that moves beyond software and speaks to its core elements. The structure of this work reflects what we consider to be the foundational topics that will empower readers to understand the underpinnings of computational media in visual design. Our emphasis on foundations is deliberate. In our experience as design educators, while agility in software may be easily acquired and is often instantly gratifying, it retains little value once the software in question inevitably becomes obsolete. In our experience, while technical knowledge of software is fleeting, a grasp of the fundamentals persists.
The content of this work reflects our conviction that math and code are equal partners in computation. The treatment of the topics throughout this text represents an integration of these two partners, a union that required a resolution of their distinct concerns. As practitioners and instructors of design, we know that a purely mathematical approach often does not light the way to an implementation in code. However, we also have observed how the ability to sketch a routine in code can help to shed light on non-intuitive mathematical concepts, which in turn can lead to fruitful generalizations and insights. We hope that our readers will take away a specific set of knowledge and skills that underlie topics in computing, computational geometry and mathematics, and have structured this work accordingly. Our treatment is synthetic by necessity. By pairing topics in code and geometry, we present the two key faculties required by a designer interested in making a place for computation in creative practice: an understanding of the structure of code in object-oriented programing, and a proficiency in the vector-based geometric constructs that underlie much of computational media in visual design. To clearly communicate this material, a number of tools have been developed that support and extend beyond this text. These include:
> A visual vocabulary of diagrams and graphic devices developed for this text. These are used throughout this text in order to provide a useful shorthand for the reader, and are employed in related on-line materials.
> A stand-alone library of code developed as an accompaniment to this text. The Decod.es geometry library is open-source, freely available on-line, and will be described in detail as we progress.
> A set of practical examples informed by essential mathematics, but led by their useful implementation in code. Selected sections of code are presented in this text in support of our discussion, while full implementations are available on-line.
Learning to script with geometry, to compose in this medium that hews close to the heart of the structures that govern digital media, bears value beyond the tactical benefits of acquiring a new skill. A grasp of geometric computation can widen the reach of creative computation more generally, and can empower designers to better face the challenges of contemporary practice.
The Case for Foundations
The techniques that now lie at the core of a range of design disciplines have radically changed in recent years. Among the more acute symptoms of this change is an alteration of the relationship between designers and the tools of their craft.
In the past, the essential representations guiding design thinking were well within the control of their author, and descriptive geometry was a part of the foundational training of designers in a range of disciplines. While an architect, for example, could reasonably expect to understand the mechanics that guide the emergence of an architectural drawing, in the age of generative design we are confronted with representations that more closely resemble database queries than they do orthographic drawings. Similarly, graphic designers now engage in data visualization, and must address in their work entirely new dimensions of interactivity and interaction. Industrial designers regularly participate in the direct digital fabrication of their products, a shift in the mode of production that enables far-faster cycles of design and testing. Textile design has similarly returned to computer-numeric controlled techniques of production that recall the punch-cards of the Jacquard loom. With the establishment of these new normals, and the general diffusion of digital media, few would question the appropriateness of the presence of computation in the design studio. Still, questions persist surrounding the status of the designer-as-author relative to digital technologies, and a consensus has not yet been reached concerning the depth of computational literacy appropriate to contemporary practice. On the one hand, there are productive cultures of design that dive deeply into the instrumentality of the machine, which is to say, they have integrated digital processes not only into the practical realization of their work but also into their conceptual and aesthetic positions. On the other hand, while descriptive geometry is no longer required (or even offered) by most design curricula, no corresponding pedagogy has arisen that addresses its successor, geometric computation, in a way that finds persistent relevance in a design context.