Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2024/2025

Computer Aided Design I

The course is not on the list Without time-table
Code Completion Credits Range Language
500CAD1 ZK 2 0P+2C English
Course guarantor:
Lecturer:
Tutor:
Supervisor:
Faculty of Architecture
Synopsis:

The CAD4-Scripting course is intended for students who want to learn how to model algorithmically, rather than merely operate traditional CAD tools through manual repetitive clicking. It introduces the fundamentals of procedural and generative modeling in the visual scripting environment Grasshopper. The aim of the course is to equip students with the ability to develop their own set of digital tools, enabling them to design architectural structures and systems more efficiently and flexibly.

Instruction is conducted primarily through dialogue, with a strong emphasis on active collaboration. Core principles are derived together with students, fostering deeper understanding and greater independence in the design process. Each session is built around a specific design challenge (e.g. skyscraper design, riverside urbanism, structural optimization, façade components), and some assignments also address digital fabrication methods such as 3D printing, CNC milling, and laser cutting.

The course is primarily intended for beginners in the field of parametric and generative design. However, for advanced students who have already completed CAD 3 Scripting, an individual plan is available. This plan focuses on an independently developed project under the guidance of the instructor. The approach builds on the proven concept of CAD 3, allowing talented students to achieve a high level of autonomy within a single semester.

Requirements:

Basic computer skills.

The minimum number of students to open the course is 5. EXCEPTION for self-paying students: if there are less than 5 students, the course will be taught in consultations.

Syllabus of lectures:
Syllabus of tutorials:

Metaballs: Introduction to Procedural Modeling

Students will model a simple object called a metaball using a small cloud of manually placed points, then replace this cloud with the Populate3D command to create randomly and uniformly distributed points in space. This helps them understand the connection between different procedures and functions. The lesson also includes a thorough introduction to the UI/UX of the Rhino-Grasshopper visual scripting environment.

Skyscraper: Number Generators RANGE and SERIES

Explanation of the basic number generators RANGE and SERIES as fundamental tools for procedural modeling, demonstrated through designing a skyscraper envelope. After understanding data matching in Grasshopper, students learn about common issues related to working with lists of differing lengths using rotation as an example.

Graph Mapper: Non-linear Number Sequence Development

Introduction to using the graph mapper (a graphical representation of curve functions) to change numerical sequences from linear progressions to quadratic, cubic, or sinus/perlin noise-controlled forms. This is essential for modeling freeform shapes driven by mathematical functions.

Attractors 1: Modeling Energy of a City Center

Basic explanation of attractors as number generators based on distance from an attractor object. Working with inverse values, decay/falloff powers of distance, and repeated remapping to gain full creative control over the model.

Attractors 2: Advanced Usage and Multi-object Interaction

Building on the previous lesson, students start using native Grasshopper components called Fields to simplify working with attractors. This includes a deeper look at managing multiple attractor objects and avoiding complications related to Data Trees. Homework examples are discussed and reviewed.

Local Coordinates: Parameter t, UV Coordinates, and Evaluate Components

Exploring why curves have a parameter t and how this relates to the UV coordinate system on surfaces, linking back to Mathematics 1. Students familiarize themselves with all components named Evaluate to understand that its the same principle applied to different object coordinate systems. The second half of the lesson involves modeling pyramids or their own 3D facade panels on a surface divided into smaller patches using IsoTrim (UV coordinates).

List and Data Tree 1: List Item, Shift List, Dispatch

Further explanation of complex and special list manipulation methods, each illustrated with a small example to enable abstraction and reuse. The Dispatch component is highlighted for its role in conditional operations (if statements). Depending on the groups progress, this lesson may lead into Data Tree concepts handling multi-dimensional data structures.

List and Data Tree 2: Lists of Lists, Embracing Data Trees

The key insight is that Data Trees are essentially an extension of lists. Using practical examples where Data Trees are unavoidable (e.g., working with grids, dividing curves into points, IsoTrim), students learn to think about data structure as well as data type when connecting components.

Kangaroo: Simulation of Physical Interactions

Introduction to Gaudís method of hanging weights to model ideal vault shapes. Students create scripts for simple arches (distinguishing parabolas from catenary curves). The script is expanded to work with vaulted domes, first square-shaped, then general mesh forms.

Curves and Equations: Parametric Curve Representation and Non-Cartesian Coordinate Systems

Familiarization with the Evaluate (Math) component and its versatility. Students look up any parametric curve on Wikipedia and attempt to model it using points generated by Evaluate. They explore how to create spirals and helices, identify key parameters, and discuss why theres no native helix component in Grasshopper.

Pollination - LadyBug: Solar Analysis

Ladybug, an independent plugin and industry standard widely used at UCEEB, is introduced. Students learn the basics of using EPW weather data files for conceptual design analysis. Ladybugs solar path tool is especially useful for analyzing sunlight exposure and shading.

Anemone: Overcoming Grasshoppers Limitation with Loops (For Loop / For Each / While)

Grasshopper, like MS Excel, lacks native cyclic command support and processes everything as a single cascading computation. While some components include loops internally, users cannot repeat procedures themselves. The Anemone (and HoopSnake) plugins remove this limitation. Using a simple force field movement example (repeating Fields), students see why loops are sometimes indispensable and learn to identify when alternate approaches are needed. Reinforces concepts of procedural vs. generative modeling.

Galapagos: Evolutionary Optimization

Introduction to Grasshoppers native evolutionary optimization plugin, Galapagos. Students learn about genes, fitness values/functions, individuals, and populations, and how evolutionary optimization can be applied to design. A notable example is the collaboration between FA, CIIRC, and Škoda Auto using evolutionary optimization to arrange production lines within limited factory space.

Study Objective:

Course Objectives

The aim of the course is to develop students ability to design using algorithmic, procedural, and non-destructive modeling methodsan essential shift away from traditional, manually oriented digital design practices. Students will learn to design systems whose geometry can be efficiently adapted by modifying input parameters or the sequence of generative operations, without the need to rebuild the model from scratch. This modeling approach reflects the current standards of leading international universities (e.g. ETH Zürich, TU Delft, ITKE Stuttgart) and is widely adopted in prominent architectural practices (e.g. MVRDV, BIG, Snøhetta).

Students will acquire foundational skills in the RhinoGrasshopper visual scripting environment and explore its expandability through community-developed plugins. The course places emphasis on the practical application of these tools in solving real-world architectural and urban design tasks and on connecting them with current issues in spatial design.

A procedural approach allows for efficient generation and iteration of design variants (shortening the design loop), creating space for both qualitative and quantitative optimization. Students will be able to design with respect to complex evaluative criteria such as daylighting and solar exposure, structural performance, wind behavior, life cycle assessment (LCA), spatial quality (e.g. via space syntax), and other aspects of sustainable and performance-driven design.

Learning Outcomes

Upon successful completion of the course, the student will be able to:

- Explain the core principles of algorithmic, parametric, and procedural modeling, and describe their advantages over traditional design approaches.

- Navigate the visual scripting environment RhinoGrasshopper and its extended functionality through various plugins.

- Design and implement a custom generative model for an architectural or urban design task using visual programming techniques.

- Modify a design by changing input parameters or scripting logic without the need for manual reconstruction of the model (non-destructive workflow).

- Apply procedural modeling principles to specific design challenges, including high-rise buildings, urban structures, façade systems, and structural components.

- Critically evaluate and discuss the design process based on outputs from generative systems.

- Optimize a design according to selected quantifiable criteria (e.g. solar gain, structural efficiency, airflow, LCA, spatial quality).

- Collaborate in a dialogical and iterative design environment, emphasizing knowledge sharing and awareness of diverse design strategies.

- Independently manage a complex design process using generative principles and prepare outputs for digital fabrication (3D printing, CNC, laser cutting).

- Reflect on their own design approach and propose further directions for the development of digital tools in response to specific architectural challenges.

Study materials:

Pottmann, H., Asperl, A., Hofer, M., Kilian, A.: Architectural Geometry, Bentley Institute Press, 2007

Online zdroje

http://www.grasshopper3d.com/page/tutorials-1

https://youtu.be/fNk_zzaMoSs

https://www.khanacademy.org/math/trigonometry

https://youtu.be/OmJ-4B-mS-Y

https://www.youtube.com/watch?v=jvPPXbo87ds

http://wiki.bk.tudelft.nl/toi-pedia/Math_Inspired_Geometry_in_Grasshopper

https://www.rhino3d.com/download/Rhino/4.0/EssentialMathematicsSecondEdition

http://docs.mcneel.com/rhino/6/training-level1/en-us/Default.htm

https://www.rhino3d.com/learn/?query=kind:%20architecture&modal=null

https://modelab.gitbooks.io/grasshopper-primer/content/1-foundations/1-foundations.html

https://www.youtube.com/watch?v=aVwxzDHniEw

https://www.youtube.com/watch?v=hhDuYLngfSg

Note:
Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2025-08-15
For updated information see http://bilakniha.cvut.cz/en/predmet24407805.html