Next | Titel | Inhalt | Vorwort | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Appendix | @ CAAD | Teachers |
Kapitel
12
Programming
and Architecture
Four structural prototypes have been programmed at the chair for CAAD. Because of their architectural characteristics they were named after Le Corbusier, Rossi, Sterling, and Lerup. The instances of these prototypes always had correct dimensions for walls, roofs, columns, beams. The dimensions got calculated and checked, while the user defined parameters like size, material, and roof type.
Different instances of the Lerup prototype
Of particular interest are shape grammars, introduced by George Stiny in 1975. The development of shape grammars begins by specifying a vocabulary of 3D-forms or shapes. Then the rules to combine shapes are defined with spatial relations. In standard shape grammars the spatial relations between elements of shapes - their relative lengths and angles - are maintained in the shape rules. In parameterized shape grammars these relations are allowed to changed.
Shape grammars can be used to explore design languages as well as to discover rules underlying a set of related designs.
Shape grammar to design according to Richard Meier rules (Heng Jung Hsiung)
Buildings of Campi and Pessina have been used to build a case-based reasoning system at the chair of CAAD.
Buildings of Campi and Pessina have been used in this case-based reasoning system.
Genetic algorithms have been applied to produce design, films, music and art.
Genetic images by Karl Sims at Thinking Machines
Virtual reality (VR) depends on computers to be displayed and to allow some interaction. Therefore virtual worlds and the possiblities for interaction always have to be described to a machine. Because VR is a new field, many ideas cannot yet be realised with a simple VR tool, but need to be formulated by writing a program.
SCULPTOR: Form as a function of time
VR is famous for evoking new sensations through displaying the unrealistic, which is as important a part of a virtual design as the realistic. Design in VR is architectural design, it is spatial and much more. Think of the extreme possibilities of VR, like: Walls can morph into landscapes, one can fly through solid parts, or the size of objects does ntot match with one's experience. Such ideas may sound scary, but if they are designed well, they allow new and interesting experiences.
A Jenny Holzer interpretation by Florian Wenz and his students
In the last exercise you created an object and inserted it in the scenegraph, when the object was selected it was simply lifted up into the air. This time you have to add a selection function to the program yourself, using your old object or creating a new one. You have to decide what changes this object should go through. In order to do this you
will have to change the "selectionAction"-function in "student.c++". If you want the object to be returned to its old state on deselection, all nodes that you insert have to be grouped under a separator or group node by the name of "_CHOSEN". If you want the change to be permanent you can insert a node anywhere under the top node of your object. The _CHOSEN node has to be inserted under all circumstances, whether it has an effect or not. Here are some ideas that could be explored:
cp student_bitmap.h ~prog/abgabe/exercise12/yourname_bitmap.h
cp student.h ~prog/abgabe/exercise12/yourname.h
cp student.c++ ~prog/abgabe/exercise12/yourname.c++
// Choose a font SoFont *myFont = new SoFont; myFont->name.setValue("Times-Roman"); myFont->size.setValue(24.0); action->addChild(myFont); // add a Seperator so that the translation is not applied to the object SoSeparator *infoSep = new SoSeparator; // Translation so that the string is in front of the object SoTransform *infoTrans = new SoTransform; // TEXT2 = screen alligned text, no change in size, no rotation SoText2 *infoText = new SoText2; infoTrans->translation.setValue(.25,.0,1.25); infoText->string = "I'm a not chair"; infoSep->addChild(infoTrans); infoSep->addChild(infoText); action->addChild(infoSep);example2: MOVE THE OBJECT permanently
SoTransform *move = new SoTransform; move->translation.setValue(1.0,.0,.0); selected->insertChild(move, 1);
Next | Titel | Inhalt | Vorwort | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Appendix | @ CAAD | Teachers |
This website has been archived and is no longer maintained.