by Dušan Cvetković
Dušan Cvetković
Published December 21, 2022

In this tutorial, we're going to take you through the process of creating the Shahghai Metro Station using Grasshopper. This will enable us to create the intricate details of the columns, a true masterpiece by the Xing Design Studio. 

Creating Shanghai Metro Station Column in Grasshopper

To begin with, we're going to define a point which will be the base point of the rectangle, located on the XY plane. We will do this by using the Construct Domain. This will allow us to adjust the the rectangle based on two sliders.

We need to point out that we need to divide the dimensions in two, in order for the defined point of our domain to be in the centre of the rectangle. 

Creating the Column Geometry in Grasshopper

Next, we're going to multiply the points vertically. Firstly, based on the graph mapper, we're going to move these points along the Y direction. Secondly, within zero to four range, we're going to equally distribute the points, and this will make up the height of the column. 

Creating a Conic Curve with Graph Mapper

Aftwerwards, we will create a conic curve with the component Graph Mapper. The values we get this wat will be used as the amplitude of the vectors, which are moving in the X direction. After we connect the points, you will notice that the initial column will start taking shape. 

Modifying the Curve

Our next step is to add more points to the upper part of the curve in order to create a horizontal shape, as well as add some complexity to the column. Furthermore, we will duplicate the value of the Z coordinate, which in our case is four. Do this a couple of time and add them to the original list, and subsequently, you will get a distinct horizontal curve in the top part.

Creating Two Lists of Items

Now that we did this, we will get two lists for the the X and Y directions. These should have the same number of items. To make sure they do, we'll sum up the initial number of items with the number of duplicated items, and get a unique curve. Now we're ready for the next phase in the modeling process.

Mirror and Connect the Curve

Using the YX plane, we're going to further refine the curve we got. After we generate the vertical lines from their endpoint, we will connect them and thus form a closed curve. In our case, we need to flip one of these curves, since that way we can ensure that they connect in the right way. 

Creating the Closed Curve

Once we've mirrored the curve, the next step is to merge into a single list and this way, form a closed loop.

Creating the Column in Rhino

For the next part of the process, we will be moving into Rhino. This is where we will develop the first phase of the column. In the top view, we have a geometry. We will copy the rectangle along the X direction. Next, create and arc, mirror it, and this will generate a region between them.

Creating the Column in Rhino

Another thing we can do is extrude the curved vertically, and thus get the first phase of the column using Solid Intersection. Mirror the geometry you got, and you will get two separate branches which we will be the basis of further developing the column.

Fine-tuning in Rhino

The next step also takes place in Rhino, where we will fine-tune the model. Extract the surfaces and the edge from before, and modify them based on the specifications. We will go on to extend the curves, move the control points and then extrude the surfaces, getting the desired shape. Using Rhino's Split, Project and Rebuild commands, we can ensure that the design of the column is as precise and sophisticated as necessary. 

Fine Tuned Design

Having done all of this, we get a stunning model that we can replicate in both directions. With this, we get a row of intricately designed columns and brought the Shaghai Metro Station to life.


Although we've used both Rhino and Grasshopper for Shanghai Metro Station Columns, it's possible to do the whole project entirely in Grasshopper, which would make it fully parametric.

In the extended version of the tutorial that's available on How to Rhino Patreon page, we're going to discuss how we could achieve all this, and manipulate the number of columns and their shape, as well as curvature of the ceiling by using just a single point of input. 

Grasshopper Complete Course

Grasshopper Complete Course Pacakge

Master parametric modeling with the Grasshopper Complete Course. With over 50 hours of in-depth training, this course will teach you how to create intricate algorithms to generate forms.
Click for more information about the course and get 500+ components, 10 complex projects, and more!

About the Author

Dušan Cvetković is a professional architect from Serbia with international experience in the industry. Collaborated with numerous clients all around the world in the field of architecture design, 3D modeling and software education. He's been teaching Rhinoceros3D to thousands of architects through How to Rhino community and various social media channels.