Assignment 02
Associated Lecture -- Grasshopper Introduction.
| Name | Date |
|---|---|
| Release | 2025-09-30 |
| Submission | 2025-10-08 11:59 |
Submission(s) beyond the deadline will not be counted towards your final grade.
After the first class on Grasshopper Introduction, you should now have a basic understanding of the Rhino-Grasshopper platform and how Grasshopper works as a procedural programming language. This assignment aims to help you master the "procedural" idea and how data is managed/manipulated through the flows of operations. With a bit of effort, you can trust yourself to learn even more than you expected.
Set the Rhino model units to meters before you begin modeling.
Part A: Geometry Operation (3 pts)
In the provided Assignment_02.3dm file, you will find several titled Rhino commands. Your task for this assignment is to create the corresponding Grasshopper scripts that conduct the same tasks.
For the tasks in this part, you need to reference objects from Rhino into Grasshopper before working with the Grasshopper components.
Try to discover similar commands by typing the keywords (double-click and type). To get where a component is located in the panel, press Ctrl + Alt + Mouse-Left-click on the component.
Task 00: Rotation (Example)
In this task, we rotate an object lying on the ground until it is visible in both the Front and Right views. This serves as an example of how to properly complete a Grasshopper assignment.
- Input: Use a Brep component to register the Rhino object (letter T);
- Process:
- P1: Rotate the object so that the letter is visible in the Front view.
- P2: From the result of P1, further rotate the object so that it is visible in the Right view.
- P3: Compare the two cases:
- Rotating first around the Z-axis and then around the X-axis.
- Rotating first around the X-axis and then around the Z-axis.
Task 01: Non-uniform Scale (1 pt)
- Input: Use a Brep component to reference the Rhino object (a box).
- Process: Find the appropriate Grasshopper component to scale the box so that its dimensions change from (10 m, 10 m, 10 m) to (15 m, 20 m, 30 m).
Task 02: Offset & Rebuild (1 pt)
- Input: Use a Curve component to reference the Rhino object (a curve).
- Process:
- P1: Offset the curve on both sides with a distance of 1 m. (0.5 pt)
- P2: Rebuild the two offset curves with the following parameters, respectively: (0.5 pt)
ptNum = 20; degree = 2ptNum = 10; degree = 1
- Note: For both processes, you should not bake any objects into Rhino.
Task 03: Divide & Move (1 + 1 pt)
- Input: Use a Curve component to reference the Rhino object (a curve).
- Process:
- P1: Divide the circle into 12 equally spaced points. (0.5 pt)
- P2: Using the bottom point of the triangle as a reference, move the triangle object to each of the 12 points. (0.5 pt)
- P3:(0.5 Bonus) Align the triangles so that all their tips point toward the center of the circle.
- P4:(0.5 Bonus) Building on step 3, imagine the circle and its 12 points as a clock. Scale the triangles at the
3,6,9, and12positions by a factor of1.5.

Part B: Math Basics (4 pts)
For the tasks in this part, you don't need to reference any objects from Rhino. Everything has been predefined/internalized in Grasshopper.
Task 01: Arithmetic Operation (2 pt)
- Input: A pre-defined number in the
.ghfile; - Process:
- P1: Raise the predefined number (in the GH file) to the power of 2, i.e. .
- P2: Divide the result from P1 by 2, i.e. .
- P3: Construct a vector (0.5 pt)
- P4: Construct another vector by reversing the coordinates order of : (0.5 pt)
- P5: Compute the dot product between and , and name the result .
- P6: Compute the cross product between and , unitize the result, and name the vector . (0.5 pt)
- P7: Scale by to obtain . (0.5 pt)
Task 02: Math-based Geometry Manipulation (2 pt)
- Input: Pre-defined vectors (V1–V4, independent of those in Task 01) in the
.ghfile; - Process:
- P1: Create a point
Pt0at the origin. Move it sequentially with the four vectors in order (V1 → V4) to obtainPt1,Pt2,Pt3, andPt4.- For example: move
Pt0by V1 to getPt1, then movePt1by V2 to getPt2, and so on.
- For example: move
- P2: Create a curve passing through the points in order:
Pt1→Pt2→Pt3→Pt4. (0.5 pt) - P3: Connect the two ends of the curve and find the midpoint between them, denoted as
Pt-mid. (0.5 pt) - P4: Divide the curve into 9 segments, and on each segment, identify the point at parameter
t = 0.3. (0.5 pt) - P5: Move each point from last process toward
Pt-midby a distance equal to of the distance between that point andPt-mid. (0.5 pt)
- P1: Create a point
Part C: List Basics (3 + 1 pts)
- Input: Pre-defined points ( and ) in the
.ghfile - Process:
- P1: For points in , select points with indices 3 to 14 (inclusive), yielding 12 points as . (1 pt)
- P2: For points in , remove the first point (index 0) and the last point (index -1), yielding 12 points as . (1 pt)
- P3: Create a line segment connecting each point in to the corresponding point in with an offset of +2. Specifically:
- Point at index 0 in connects to point at index 2 in
- Point at index 1 in connects to point at index 3 in
- Continue this pattern. (1 pt)
- P4:(1 Bonus) Construct triangles from the points using a two-layer approach:
- First layer: Build triangles from point pairs in to single points in :
- Points 0 and 1 in → Point 0 in
- Points 1 and 2 in → Point 1 in
- Points 2 and 3 in → Point 2 in
- Continue until: Points 11 and 12(first point) in → Point 11 in
- Second layer: Build triangles from single points in to consecutive point pairs in :
- Point 1 in → Points 0 and 1 in
- Point 2 in → Points 1 and 2 in
- Continue until: Point 12(first point) in → Points 11 and 12(first point) in
- First layer: Build triangles from point pairs in to single points in :

Input File
Please copy the files to your local computer before editing.
The corresponding input files are provided on the MscLA server.
Assignment_02.zip
Submission
Please submit both the .3dm and the .gh files.
Name the submission file(s) with the following format:
LastName_FirstName_TimeForCompletion_AS02.xxx
Please submit the corresponding file(s) to the submission folder submissionAS02 on the server:
10_HS_25\02_First Semester\02_Digital.Design.Methods\01_Assignment\Submission_AS02Please note the required FILENAME CHANGE of the submission file.