Digital Design Methods I

Assignment 03

Associated Lecture -- Data Management In Grasshopper.

NameDate
Release2025-10-07
Submission2025-10-20 11:59

Submission(s) beyond the deadline will not be counted towards your final grade.

Overview

This assignment will mainly focus on what you've learned in the lecture -- "Data Tree" in Grasshopper. After this assignment, you should become more comfortable with operating complex data structures (list, tree, list + tree) and apply it to your daily tasks.

This assignment may seem challenging at the beginning, but are the advanced basics for working with Grasshopper.

Part A: Line Connection (8 pts)

For this part, you are given two sets of points, each containing the same number of points NN (controlled by a single slider). For simplicity, we set NN = 10 in this task.

Your goal is to create lines connecting points between the two sets according to the following rules. Each sub-task is independent.

For some tasks, check out the "CULL xxx" component series to remove points unwanted and the "Dispatch" component to separate odd and even indices.

Task 01 (2 pts)

  1. Connect corresponding points in the two sets (e.g., 0–0, 1–1, …).

    • Final number of lines: NN
  2. Connect points whose indices add up to the same total (e.g., if there are 8 points: 0–7, 1–6, …).

    • Final number of lines: NN
  3. Connect every point in Set A with every point in Set B.

    • Final number of lines: N×NN \times N
  4. Connect every point in Set A (except the first and last) with every point in Set B.

    • Final number of lines: N×(N2)N \times (N - 2)

Part A-01 Example

Task 02 (3 pts)

  1. Connect points with odd indices in Set A to those with even indices in Set B (e.g., 1–0, 3–2, 5–4, …).

    • Final number of lines: N2\frac{N}{2}
  2. Connect ALL odd-indexed points in Set A with ALL even-indexed points in Set B.

    • Final number of lines: N2×N2\frac{N}{2} \times \frac{N}{2}
  3. Connect every point in Set A with all points in Set B, except the one with the same index.

    • Final number of lines: N×(N1)N \times (N - 1)

Part A-02 Example

Task 03 (3 pts)

  1. For each point in Set A, connect a line to the points in Set B with indices satisfying iB0.5iAi_B \leq 0.5 \cdot i_A
    For example, the point with index 6 in Set A should connect to points with indices 0–3 in Set B.

  2. Follow the process below to create lists with the desired structure and connect lines:

    • Find every pair of neighboring points in Set A (label this as Set C).
      Merge these pairs into a data list. As a result, Set C should have (N1)(N - 1) branches, and each branch consists of two neighboring points from Set A.

    • Move each branch in Set C upward in increments of 5, i.e., the first branch up by 0, the second by 5, …, and the last by 5(N1)5(N - 1).

    • Create a triangular polyline between each branch in Set C and the corresponding indexed point in Set B.

  3. Follow the process again to create lists with the desired structure and connect lines:

    • Similar to the previous subtask, find every pair of neighboring points in Set B (label this as Set D), and lift the branches of Set D upward in a series.

    • Create a rectangular polyline between each branch in Set C and the corresponding branch in Set D.
      Since each branch contains two points, you will use four points to generate each polyline.
      Be careful: you may need to adjust the order of points in Set D to ensure the polyline forms a rectangle rather than a “Z”-shaped figure.

    • (Optional) Create surfaces from these polylines — the result should resemble a series of stepped faces.

Part A-03 Example

Part B: Topography (6 pts)

In this part, you are given a set of curves and asked to generate a topography by completing the following tasks.

Task 01 (2 pts)

  1. Divide the NN lines into a series of points with a sufficient resolution (n>20n > 20).
    Apply a sine or cosine function to modify the elevation (z-component) of these points, ensuring that at least two full cycles are created.

  2. Connect the modified points to form NN curves.

  3. Loft the curves into a continuous surface.

Task 02 (2 pts)

  1. Repeat Task 01 with the additional requirement that:

    • The start and end points of each curve are positioned at the extremum of the sine or cosine function — i.e., at their highest or lowest points.
  2. Connect the modified points to form NN curves.

  3. Loft the curves into a continuous surface.

  • For this task, the Bounds and Remap components may be useful.
  • Note that for the sine function, extrema occur at nπ/2n\pi/2, and for the cosine function, at nπn\pi, where nn is an integer.

Task 03 (2 pts)

  1. Repeat Task 01 with the additional requirement that:

    • The peaks of the sine or cosine waves should form a diagonal-like, staggered pattern (see illustration below), meaning the peaks of neighboring curves should not align.
  2. Connect the modified points to form NN curves.

  3. Loft the curves into a continuous surface.

Part B Example

Part C: Soil Diagram with BAL (6 pts)

You've learned how to use BeingAliveLanguage to draw soil diagrams. For this part of the assignment, you're asked to draw two soil diagrams.

  1. Soil diagram with only one horizon using measured data (A000014398_SUELO__09-10-2025_en.pdf sent via email). (2 pts)

    • Label the corresponding soil type and soil infos. (check the Soil_Information component)
  2. Soil diagram defined by yourself, with at least five soil horizons and at least two different soil types. (4 pts)

    • For each horizon, label the corresponding soil type.
    • For each horizon, label the corresponding depth of each horizon inside the soil.
    • (Optional) Visualize the organic matter, within and/or on the surface of the soil.

For this task, you need to submit exported .pdf format drawings.

Part C Example

Input File

Please copy the files to your local computer before editing.

The corresponding input files are provided on the MscLA server.

  • Assignment_03.zip

Submission

Please submit both the .gh and the .pdf files.

Name the submission file(s) with the following format: LastName_FirstName_TimeForCompletion_AS03.xxx

Please submit the corresponding file(s) to the submission folder submissionAS03 on the server:

10_HS_25\02_First Semester\02_Digital.Design.Methods\01_Assignment\Submission_AS03

Please note the required FILENAME CHANGE of the submission file.