Numerical Computing: Root Finding

The objective of this post is to introduce fundamental concepts of numerical computing for design applications. In this post we will focus on root-finding ie. intersection type of problems. The tutorial was part of the Advanced Topics in Digital Design and Fabrication 2016 and Digital Design and Fabrication 2020. This is an updated version for junior students ie. less math heavy and more descriptive, with Python as the programming language.

Particle Simulation

The objective of this tutorial is to develop a simple physics engine which can simulate dimensionless bodies. The physics knowledge required for this is actually high-school level and the aim is to practice on python programming. The computational concepts emphasized here pertain symbolic modeling of entities, such as particles and forces, which are already familiar. Advanced topics regarding simulation will be hinted about but not covered extensively.

Sequences and Lists Processing

The objective of this tutorial is to refresh and reinforce some of the basic notions in sequence and list processing which is fundamental for the development of advanced computational designs. The assumptions include basic understanding of the C# programming language and structural concepts from the Introduction to Computation course.

Numerical Optimization Part 02

The objective of this post is to introduce fundamental concepts in computational optimization for design applications. This tutorial was part of the Advanced Topics in Digital Design and Fabrication 2016. In this tutorial we will look at situations where we need to minimize/maximize objective functions of a multi-dimensional continuous problems. General Approach In similar fashion as with the previous installment of this series we will focus on fundamental concepts in optimization, to first gain a sort of intuition on iterative processes of search, and then we will enhance the methodology, and computational performance, using mathematical concepts and techniques. Uphill/Downhill We …

Numerical Optimization Part 01

The objective of this post is to introduce fundamental concepts in computational optimization for design applications. This tutorial was part of the Advanced Topics in Digital Design and Fabrication 2016. The content will be broken into a series starting from basic notions moving towards more complex concepts.

Using Visual Studio for Component Development

The objective of this tutorial is to demonstrate the process required to create a Visual Studio project such that you can develop Grasshopper components from this environment. While this mode of working requires certainly more elaborate initial preparation, it does pay back rather quickly because of the best in class editing capabilities as well as debugging and code modification while the application is running.

Creating a Waveform Geometry

The objective of this tutorial is to refresh your understanding of a few fundamental concepts in design computation, namely general signal processing, linear/non-linear transformation, density-distribution functions, generating geometry though iterative constructs and high-level overview of data types and containers thereof. This tutorial is in anticipation of moving from computation geometry into machine motion planning from first principles.

Standard Operating Procedure for Grasshopper Coding

The objective of this tutorial is to establish a template for coding using C# in Grasshopper. The component will set up some standard output containers for information visualized in the 3D viewports as well as in text form inside Grasshopper. The format I am using establishes some good principles for rapid experimentation.

Annotate Section and Tabulate Metrics

In this tutorial we will annotate a model by adding section levels and we will produce and emit building metrics to Excel. This is part of the joint exercise of performing a massing study for a building and producing a mold for casting. Interim steps have been presented previously in separate posts.

Layout Model Contours

This tutorial presents a process for laying out contour curves generated by slicing a solid model; a procedure that may be applied in various contexts such as producing plan drawings or fabrication profiles. We focus on structuring the process in a semantically clear way using first introducing the typical spaghetti approach and then a more appealing mode using object-oriented methodology.