# Computational Design Fundamentals

> A course for Architecture and Urban Design.

<!--
DOCUMENT STATUS: Working draft

STRUCTURE
- Level 1 heading: Course title
- Level 2 headings: Course sections
- Level 3 headings: Numbered subsections
- Level 4 headings: Individual terms or topics
- Level 5 headings: Supporting concepts

EDITORIAL CONVENTIONS
- Figure placeholders describe the original sketches.
- HTML comments hold development notes without appearing in rendered text.
- Add future website and animation notes beside the relevant content.
-->

## SECTION 00 — Fundamentals

### 00.0 — Defining Terms

#### 3D — Three-Dimensional Space

We live in a three-dimensional world. Physical objects have width, depth, and height.

**3D space** is the space in which three-dimensional objects—like the cube in Figure 01—exist.

In a Cartesian coordinate system, we describe this space using three perpendicular axes: the $x$-axis, $y$-axis, and $z$-axis. These axes provide a framework for locating and measuring objects in three dimensions.

By describing objects mathematically, we make their positions, dimensions, and relationships quantifiable.

<!--
FIGURE 01 PLACEHOLDER
Original sketch: A cube in 3D space.
Show width, depth, and height, along with the x-, y-, and z-axes.
-->

*Figure 01 — A cube in 3D space.*

#### Length

**Length** measures the distance between two points. It is a one-dimensional measurement.

Examples of length measurements include the width of a room, the height of a building, or the distance between two locations.

The example in Figure 02 shows a distance of $50\ \text{in} = 127\ \text{cm}$.

<!--
FIGURE 02 PLACEHOLDER
Original sketch: A horizontal line between Point 1 and Point 2.
Label the distance as Dimension 1.
Show the example measurement: 50 in / 127 cm.
-->

*Figure 02 — Length: the distance between two points.*

#### Area

**Area** measures the amount of space within a two-dimensional boundary.

For a rectangle, calculate area by multiplying its two perpendicular dimensions:

$$
A = d_1 \times d_2
$$

where:

- $A$ is the area.
- $d_1$ is the length of the first dimension.
- $d_2$ is the length of the second dimension.

For rectangular faces of a three-dimensional object, these dimensions may be:

- Width and depth.
- Width and height.
- Depth and height.

Area is expressed in square units, such as $\text{m}^2$ or $\text{ft}^2$.

Other shapes require different area formulas or computational methods.

<!--
FIGURE 03 PLACEHOLDER
Original sketch: A square or rectangle with “Area” written inside.
Label its horizontal edge as Dimension 1 and its vertical edge as Dimension 2.
Indicate multiplication between the two dimensions.
-->

*Figure 03 — Area: the space within a rectangular boundary.*

#### Volume

**Volume** measures the amount of space inside a three-dimensional object.

For a rectangular solid, calculate volume by multiplying its three perpendicular dimensions:

$$
V = w \times d \times h
$$

Equivalently:

$$
V = d_1 \times d_2 \times d_3
$$

where:

- $V$ is the volume.
- $w$, $d$, and $h$ are width, depth, and height.
- $d_1$, $d_2$, and $d_3$ represent those three dimensions.

Volume is expressed in cubic units, such as $\text{m}^3$ or $\text{ft}^3$.

Other three-dimensional forms require different volume formulas or computational methods.

<!--
FIGURE 04 PLACEHOLDER
Original sketch: A cube with “Volume” written inside.
Label its three dimensions as Dimension 1, Dimension 2, and Dimension 3.
Indicate multiplication between the dimensions.
-->

*Figure 04 — Volume: the space inside a rectangular solid.*

#### Measurements

Measurements make the size of an object quantifiable. Coordinates and angular measurements allow us to describe its position and orientation.

Together, these descriptions provide a basis for manipulating objects through **operations**.

An operation may change an object's length, area, volume, shape, position, or orientation.

#### Operation

An **operation** is an action that creates geometry or modifies an existing object.

Depending on the software and context, an operation may be available through a **command**, **function**, or visual programming **component**.

Operations can change an object's:

- Size.
- Shape.
- Orientation.
- Position in 3D space.

##### Operations That Create Geometry

Common geometry-creation commands include:

- Line.
- Polyline.
- Surface.
- Polysurface.

##### Operations That Manipulate Geometry

Common operations include:

- **Move / Translate** — Change an object's position.
- **Copy** — Create a duplicate.
- **Mirror** — Create a reflected version across a line or plane.
- **Subdivide** — Divide geometry into smaller parts.
- **Split** — Separate geometry into pieces.
- **Scale** — Change an object's size.
- **Join / Merge** — Combine compatible geometry; the exact behavior depends on the tool.
- **Offset** — Create geometry at a specified distance from the original.
- **Extrude** — Extend geometry along a direction or path to produce new geometry.

Each CAD program uses its own terminology and implementation. Similar commands often serve similar purposes, but their inputs, behavior, and outputs may differ.

Explore each program to understand how its commands work rather than relying only on their names.

#### CAD — Computer-Aided Design and Drafting

**CAD** is the use of computers to support the design and drafting process.

CAD software handles the spatial mathematics needed to represent, display, and manipulate geometry digitally, in both two and three dimensions.

<!--
FIGURE 05 PLACEHOLDER
Original sketch: A desktop computer displaying a cube in a CAD interface,
with a keyboard and mouse.
-->

*Figure 05 — A computer running CAD software.*

##### Software Used in Design Workflows

The tools in the original notes span several overlapping categories:

| Category | Examples |
| --- | --- |
| CAD and geometric modeling | AutoCAD, Rhino |
| Building Information Modeling (BIM) and architectural design | Revit, Archicad, Vectorworks |
| 3D modeling and visualization | SketchUp, 3ds Max, Blender |
| Real-time visualization and interactive environments | Unreal Engine, Unity |

These tools can participate in the same design workflow, but they are not interchangeable. Their strengths range from precise drafting and building documentation to modeling, rendering, and interactive experiences.

#### Computational Design

**Computational design** is an algorithmic approach to design problem-solving that uses code, logic, and parameters to create, generate, modify, and automate design solutions.

Rather than describing only a finished object, a computational approach also describes the rules and processes that produce it.

##### Key Component: Parametric Modeling

**Parametric modeling** defines geometry through parameters, constraints, and relationships.

Parameters are values or inputs that influence a model, such as:

- Length.
- Height.
- Angle.
- Number of elements.
- Spacing between elements.

Relationships determine how parts of the model depend on one another. When a parameter changes, the geometry and any dependent elements update according to those relationships.

The designer therefore defines both the geometry and the logic connecting its parts.

##### Key Component: Visual Programming

**Visual programming** allows users to build algorithmic logic graphically, rather than writing every instruction as text-based code.

In node-based visual programming, users connect **components**, also called **nodes**. Each component performs an operation and exposes inputs and outputs.

Connecting these components establishes how data moves through a process.

This makes it possible to construct and inspect computational workflows visually while practicing algorithmic thinking.

#### Design Approach — Workflow

A **design approach**, or **workflow**, is the sequence of activities a designer uses to work through a design problem.

These activities are not always linear. They may be:

- Repeated in loops.
- Reordered.
- Organized into phases.
- Revisited as new information becomes available.

Because design is fluid, workflows vary according to the designer, the project, and the problem being addressed.

A workflow may combine:

- Manual processes.
- Digital processes.
- Automated processes.

Together, these processes support the development of a design solution.

#### Design Solution — Scheme

A **design solution**, or **scheme**, is the outcome of a design workflow.

The aim is to develop and select a solution that best addresses the project's goals and constraints among the alternatives considered.

Evaluation may involve:

- Client feedback.
- Analysis.
- Performance.
- Iterative refinement.

In practice, a delivered solution often represents a stopping point in an ongoing process. A deadline is reached, and the design must be issued or delivered.

A well-developed workflow helps produce high-quality options so that, even under time constraints, the selected solution is robust and well considered.

#### Algorithmic Thinking

**Algorithmic thinking** means breaking a design problem into logical steps, rules, and repeatable loops.

Think of it as giving a computer explicit directions for carrying out a workflow to achieve a design solution.

This involves identifying:

- What information is needed.
- What operations should occur.
- In what order those operations should occur.
- Which conditions affect the process.
- Which steps should repeat.
- What output the process should produce.

### 00.1 — Understanding Geometry

#### File Types in Design

Design workflows use different ways of representing visual information. Two foundational categories are **raster** and **vector**.

These are representation types, rather than individual file formats. Some file formats can contain both.

##### Raster

A **raster image** represents visual information using a grid of pixels. Each pixel stores a color or tonal value.

Together, these pixels form an image.

The number of pixels determines the image's pixel dimensions. For a given display or print size, more pixels generally allow finer detail—provided that detail exists in the source.

Raster images have a finite resolution. Enlarging them sufficiently reveals their pixel structure or produces visible softness.

Reducing an image's pixel dimensions can discard detail. Simply enlarging it again does not restore that lost information.

Upscaling tools, including AI-based tools, can estimate or generate additional detail, but they do not reliably recover the exact original information.

<!--
FIGURE 06 PLACEHOLDER
Original sketch: A small grid of differently colored squares.
Show individual pixels clearly.

Editorial note: Figure number assigned for consistency;
the original sketch was unnumbered.
-->

*Figure 06 — Raster representation: an image composed of pixels.*

##### Vector

**Vector graphics** represent lines, curves, and shapes mathematically rather than as a fixed grid of pixels.

Because the underlying geometry is mathematically defined, vector graphics can be scaled without the pixelation associated with enlarging a raster image.

Their edges remain sharp when rendered at different sizes.

However, when vector graphics are exported to a raster image, that exported image has a finite pixel resolution.

<!--
FIGURE 07 PLACEHOLDER
Original sketch: A zigzag polyline with circles marking its vertices.

Editorial note: Figure number assigned for consistency;
the original sketch was unnumbered.
-->

*Figure 07 — Vector representation: geometry defined by points and connecting lines.*

<!--
CONTINUE SECTION 00 HERE

Add further topics under 00.1 as the course develops.
Create a new numbered subsection when the subject changes.
-->