Week 3

ARCH-2347 2014 Fall

Course ARCH-2347
Date 2014/09/29
Learning Objectives The representation and manipulation of the vector-- the most fundamental object in our library -- is introduced through diagram, equation and code. In the workshop, functions will be written that encapsulate some well known transformations like 'Move', 'Mirror', 'Rotate' and 'Scale'.
  • Lecture
    • Vector: A Fundamental Object
  • Workshop
    • Functions
    • More Collections
    • decod.es Vec, Point implementation
    • Helper types: Color and Interval
    • Transformations
Uses Tool(s) Rhinoceros , Grasshopper



The workshop file can be accessed on the Class Dropbox under Workshops/ week3 .ghx

Structure of Code

Code Organization and Modularization

encapsulating related operations into functional units is essential to efficient and legible scripting

Object Representation and Manipulation

More Collections
working with groups of objects in Python

decod.es Implementation

You can access basic documentation of all classes in decod.es by clicking on the object icons at decod.es

Geometry used up to this point:

  • Point
  • Vec
  • Interval

Geometry on the horizon:

  • Linear Entities: Line, Segment and Ray
  • Xform


Variations on a Theme - Create an image series that involves altering a collection of geometry. You may start with a base configuration -- the same geometry (note: 1) positioned along points that you can easily generate, such as at equal divisions of an interval, line, curve or on a grid -- and create a series that involves altering this base configuration. You may explore a specific technique for achieving variation resulting in a series that shows this technique applied to different collections of geometry. Here are some ideas for achieving variation on a collection of geometry:

  • altering basic properties of the geometry; eg. length of lines, radius of circles, sides of a polygon
  • using transformations such as translation, rotation, scale, mirror, skew (note: 2)
  • using color or line weight
  • invoking control flow , such as using conditionals to introduce selective interruptions

Your series should include at least 5 variations, and should be thematically linked, such as by the base configuration or the technique applied. Please upload your Grasshopper file as well as your series (composed as a single image) onto Assignments/[your name] before class.


1. You can certainly stick with the geometry we’ve used so far, but you may want to explore other classes in decod.es like PGon, RGon.

2. If you are using transformations, you can either write your own functions that achieve the transformations you desire (like a “rotate_line” function) or you can look ahead to the Xform class

Some inspiration:

320px-Albers Structural Constellation 1.jpg
Josef Albers, Structural Constellations (1950)

Sol le witt j.jpg
Sol LeWitt, Incomplete Open Cubes (1974)