← All projects

Digital Design / 2025

Coding Architecture I

Computational design studies progressing from brick bonds to filtered grids, building elements, and A-Hive, a mixed-use building in Altstetten.

Location
Zurich, Switzerland
Typology
Digital Design
Status
Student project
Year
2025
A-Hive within the urban context of Altstetten, final submitted perspective
A-Hive within the urban context of Altstetten, final submitted perspective

Work from the Autumn Semester 2025 Coding Architecture I course at ETH Zurich. Using Python, COMPAS, Rhino, and Grasshopper, the exercises develop loops and conditions into object-oriented filters, building grids, slab classification, and facade generation.

A01 brick walls, A02 filtered grids, A03 building grids and slabs, and the A04 final design A-Hive are presented as one continuous project. Each stage documents the assignment objective, implementation, and actual submitted output.

A01 — Parametric Brick Wall

Assignment objective

The assignment uses Python loops and conditions with COMPAS Box geometry to build a stretcher-bond wall controlled by brick dimensions and row and column counts. The basic bond is extended with distance-driven rotation and half-bricks.

Stretcher bond with alternating half-length offsets, A01 submission image 1
Stretcher bond with alternating half-length offsets, A01 submission image 1

Approach and implementation

Alternating rows receive half-length offsets. The distance between each brick and an attractor point controls rotation. Separate end conditions and half-bricks align the ends of alternating courses.

Output

The submission contains a Grasshopper definition and three images: the basic bond, an attractor-driven rotated wall, and a wall with aligned ends. Changing placement and rotation rules produces distinct facade rhythms and depth from the same brick module.

Brick rotation responding to distance from an attractor, A01 submission image 2
Brick rotation responding to distance from an attractor, A01 submission image 2
Wall ends aligned with half-bricks, A01 submission image 3
Wall ends aligned with half-bricks, A01 submission image 3

A02 — Sculpting a Filtered 3D Grid

Assignment objective

The assignment creates an object-oriented filter that selects 3D grid points using Brep geometry referenced from Rhino. Accepted points become boxes, with extensions for filter combinations and data visualization.

Filtered grid with height data shown in a red gradient, A02 submission image 1
Filtered grid with height data shown in a red gradient, A02 submission image 1

Approach and implementation

BrepFilter tests whether points lie inside the geometry. The Grid component collects accepted points and boxes and remaps height values to 0–255 colour data. MergeFilter combines two filters with OR or AND to apply geometric and mathematical conditions together.

Output

Two submitted images show stepped volumes and a filtered grid with pronounced vertical modules. A black-to-red height gradient makes the vertical distribution legible. The Grasshopper definition, Rhino model, and actual output screenshots document both geometric control and height visualization.

Grid showing vertical modules and filter boundaries, A02 submission image 2
Grid showing vertical modules and filter boundaries, A02 submission image 2

A03 — Building Grid and Slabs

Assignment objective

The task generates slab objects from building-grid VolMesh faces parallel to the XY plane. The Slab class stores geometry, category, and originating halfface ID, linking form to element information.

Building grid with slabs coloured by category, A03 submission image 1
Building grid with slabs coloured by category, A03 submission image 1

Approach and implementation

Opposite-cell adjacency and face direction distinguish roof, floor_slab, and bottom_slab categories, visualized by colour. Integer division and modulo operations convert slab indices into stacking rows, columns, and levels. The submitted code uses ten slabs per stack and five stacks per row.

Output

The first submitted image shows coloured slab categories within a grid of columns and beams. The second separates and stacks copies of the slabs. The same element data is represented in its building position and in an arrangement for fabrication and transport.

Copied building slabs arranged in stacks, A03 submission image 2
Copied building slabs arranged in stacks, A03 submission image 2

A04 — A-Hive, Filter-Based Mixed-Use Building

Assignment objective

The final assignment integrates filters, building grids, and element-generation code on a real Zurich site. A-Hive selects Altstetten and expresses the contrast between dynamic office space and calmer residential space through two interlocking masses.

A-Hive within the urban context of Altstetten, final submitted perspective
A-Hive within the urban context of Altstetten, final submitted perspective

Approach and implementation

The project modifies and applies scripts developed in class. A Brep filter shapes the lower volume; office modules are halved to refine the form. Curtain walls are controlled by the number of panels per face rather than fixed glass dimensions. An attractor curve shapes variation in the residential area, while a Common Bond brick pattern prioritizes a condition for every sixth course.

Output

The final submission includes a Grasshopper definition, Rhino model, five renderings covering perspective, aerial views, and facade detail, and a one-page poster. The interlocking office and residential masses and the contrast between glass and brick are shown within their urban context. A-Plaza proposes opening the base to the city; the poster describes the relationship between work and living as a Living Grid.

Facade detail of glass panels, brickwork, and frames
Facade detail of glass panels, brickwork, and frames
Aerial view of the interlocking office and residential volumes
Aerial view of the interlocking office and residential volumes
A-Hive and neighbouring buildings within the urban block
A-Hive and neighbouring buildings within the urban block
Close aerial view of the connected masses and upper facade
Close aerial view of the connected masses and upper facade
A-Hive final submission poster, Coding Architecture I, HS25
A-Hive final submission poster, Coding Architecture I, HS25

Credits

  • ETH Zurich, Coding Architecture I, Autumn Semester 2025
  • Role: adapting and extending course scripts, assignment implementation, architectural design, modelling, rendering, and poster production