Design through resarch
The gap between craftsmanship and architecture is expanding. Whereas architecture is moving towards working with individual components and exploring the various technological possibilities in the fields of robotic milling and assembly, the general building industry is answering the increasing demands on predictability, insulation and stability with standardization. To achieve such predictability, the forestry industry has changed. In order to produce as straight and predictable boards as possible, the forests have become more and more industrial which has lead to an increasing monoculture which is affecting all the forest’s inhabitants and species. These straight and predictable boards are suitable to the mainstream building industry, but a great deal of time and effort is invested to shape these materials into more individual architecture projects. 
Traditionally wood has been treated as a specialized material where branches, roots, rotated elements, and uneven growth has been utilized in different parts of the construction. This is still the case in the small wooden boat industry left in Norway. The sorting of the material to build a good boat is one of the main task is the process of building any wooden boat.
The general idea is to use 3d-scanning to build up a forest library which can be matched to any design. This would allow a more natural growth for the trees, save time and energy and create stronger materials as the fibrils within each element would be kept intact. 
When optimizing 3d-scans you usually generate a surface between the scan points which is triangulated. You can optimize the triangulation, but both the optimizing process and the triangulation takes a lot of time. Instead it is possible to generate a centerline based on the 3D-scans. The centerline defines the growth direction and the length of each tree-part. In addition the information of the various radiuses could be kept to retain the dimensions. The centerline and the radiuses would give you enough information about each tree-part to be used for this purpose.
Grasshopper is a plug-in software that can be used within Rhinoceros 3d, a NURBS-based 3D-modelling tool. Grasshopper is a graphical algorithm editor tightly integrated with Rhino’s 3-D modeling tools. Instead of writing the different commands in code, the user can drag and drop the commands and link them together. Grasshopper provides an immediate visual feedback, so that the user can evaluate each step of the process. Grasshopper allows you to work with numeric sliders where different parameters such as radius, length, degrees etc can be controlled according to each other.
I begin by defining the surface that I want to create the construction around.  Secondly I subdivide the surface into smaller surfaces. To do this, I must create an interval in both the U and V direction from which to subdivide the surface. I wish to control the U and V coordinates in order to stretch and compress the density of the grid. I use a Graph Mapper to control the interval collection, and also the diagrid spacing. 
In order to extract each coordinate point on the surface, I needed to make a script (selected in the previous picture). The script asks for the first and the last U and V. Whereas the V-coordinates are not affected by the Graph Mapper, the U-coordinates are. Luckily they can be extracted by a split list function.
U0 = first U coordinate
U1 = last U coordinate
V0 = first V coordinate
V1 = last V coordinate
U_div = surface division number in U direction
V_div= surface division number in V direction
I need the point coordinates in order to control the diagrid points and to extract each point’s normal vector according to the original surface. I use the evaluate function to extract the point coordinates (in space) from the UV-coordinates (on the surface).
Grasshopper has pre-defined components, but sometimes these are not enough. There is a script component within grasshopper that is supported by C#[1], a programming language. The script component can be used to extend grasshoppers functionality, making it relatively easy to implements one’s own scripts.
Now that I have all the point coordinates and their normal vectors, I generate lines along the normals to control the distance between the upper and the lower layer of the weave. I extract the start- and end point of each line.  When I divided the main surface into smaller surfaces, these surfaces were defined by 4 points (0,1,2,3). These points made up the corners of the sub-surfaces.
I want the line between each point to switch between an upper and a lower point, like in any weave. The upper and lower points of the weave are the start and end point of each normal. I need a script to connect these points in the correct order. The first thing I need to do is to replace the single lines between each point or vertex with polylines. This is necessary in order to determine which point is connected in a weave line series. 
I needed a script that can connect every second upper coordinate with every second lower coordinate in order to create the zigzag weave pattern. It is important that the Right-to-Left lines and the Left-to-Right lines do not meet in the same point. In order to achieve this, it was important to keep track of the order of the coordinates and the order of the resulting lines. 
When I had the polylines running though the system, the polylines coordinates series could be extracted by using an explode function. The polylines are then replaced by interpolated curves running though these points. Having the weave curves, the next task was to give the lines a volume. Normally a pipe function would create a circular section along each curve, but because of the slight conical shape of the tree trunks, I needed to able to control more than one section along the curve.
A series of 3D-printed prototypes were produced exploring the systems ability to take on various degrees of density.
The grasshopper script that generates the diagrid structure is projected onto a surface that is drawn in rhino.
The surface chosen for the project is based on a site and program analysis. It consists of interconnected volumes.
The station is situated on the outskirt of Fredrikstad city center. The station is thus part of a new part of the town. The surrounding parks and plazas are a part of the design strategy. The area is linked to an underground parking house and the highway passing though the area underneath.