Procedural Modelling

This course will focus on the fundamentals of procedural programming in 3D. You’ll learn to write computational procedures using data structures and control-flow statements to automate the production of geometric models.

Procedural Modelling
This course is archived
Estimated 5 weeks
4–6 hours per week
Progress at your own speed

About this course

Skip About this course

The first in our “Spatial Computational Thinking” program, this “Procedural Modelling” course will focus on the fundamentals of procedural programming in 3D. You’ll learn to write computational procedures using data structures and control-flow statements to automate the production of 3D models.

During the course, you will learn a range of computational methods. These include general programming constructs such as using ‘while’ loops, ‘for-each’ loops, ‘if-else’ conditions, as well as writing your own custom functions. In addition, you will also learn to use two key data structures: list and dictionaries. And in the process, you will become familiar with the programming process: writing code, executing code and debugging code.

In this course, you’ll build a strong foundation to prepare you for the more in-depth courses later in the series, where we cover more advanced types of modelling, including semantic modelling, generative modelling and performative modelling.

During this course, you will use Möbius Modeller, the modelling tool that is used throughout this “Spatial Computational Thinking” module. It is free and easy to use browser-based software to write algorithms for automatic generation and visualization of complex models with spatial information.

The programming language uses a visual programming approach combining flowcharts with procedural programming. This makes the process of learning coding much easier, allowing you to quickly acquire the knowledge and skills required for writing complex computational procedures for generating, analysing, and visualizing complex 3D spatial information models. The programming knowledge you gain will be highly transferable if you later choose to use other languages in your future work such as Python or Javascript.

The modelling exercises and assignments during this course will start with a simple procedural approach to 2D and 3D patterns and will progress towards more complex geometries representing entities within the built environment such as building footprints, building facades and staircases.

The demand for skilled spatial computational practitioners is growing rapidly and is not limited to the computer science domain. This series will prepare you to tackle a wide variety of spatial information modelling challenges.

At a glance

  • Institution: NUS
  • Subject: Design
  • Level: Introductory
  • Prerequisites:

    Basic math and logical reasoning

What you'll learn

Skip What you'll learn

Learning algorithmic thinking:

  • What is Spatial Computational Thinking?
  • The fundamentals of procedural programming
  • How procedures can be used to manipulate spatial information models
  • An understanding of the coding process: write, execute, and debug

Learning procedural modelling:

  • Fundamentals of geometric objects: points, polyline and polygons
  • Using modelling functions for creating and modifying geometric objects
  • Managing connectivity between geometric objects

Learning coding:

  • Coding using an Integrated Development Environment (IDE)
  • Fundamentals of variables and simple data types
  • Fundamentals of operators: assignment, arithmetic, relational, logical
  • Fundamentals of programming with libraries of functions
  • An introduction to the list and dictionary data structures
  • Understanding function parameters, arguments and return values
  • Manipulating control flow using ‘while loops’, ‘for loops’ and ‘if conditions’
  • Understanding variable assignment and variable scope
  • Creating custom local functions to avoid repetitive code
  • Strategies for writing and debugging code

Learning Möbius Modeller

  • Overview of Möbius Modeller as a development environment
  • The Möbius Modeller user interface
  • Creating computational flowcharts with parameters
  • Working with the console and different type of viewers
  • Submitting assignments using Möbius Modeller

About the instructors

Frequently Asked Questions

Skip Frequently Asked Questions

What software will I need?
The only software you need is a recent version of the Chrome browser. It is free and is available for all major operating systems, including Windows, Mac, and Linux. During the course, we will use a free and open-source software app called Möbius Modeller. Even after completing the course, you will be able to continue using this app for free.

What hardware will I need?
You do not need any specialized hardware to complete the exercises in the course. A typical configuration may be a laptop with 4GB RAM and a 2.9GHz CPU processor. Note that also a dedicated graphics card will result in smoother user experience.

Do I need to know any programming languages before I start?
No, this course is designed for beginners and we will step you through all the programming required.

Will I be able to write code after completing this program?
Yes. You will learn procedural programming, using typical imperative programming-language constructs. You will also learn how to create computational procedures that are able to manipulate spatial data in diverse ways.

Will I be able to share the computational models that I create?
Yes. The models that you create (either during the course or after) can be shared either by exporting the models in other formats or by publishing them on the internet as interactive web pages. Publishing a model is straightforward and is one of the techniques that you will learn.

Will I learn how to program in any (Python, Javascript etc.) language?
You will learn the fundamental concepts of programming, such as variables, data types, control flow, data structures and functions. Although we will not specifically teach languages such as Python, Java, and Javascript, the fundamental concepts that you learn will be transferable to all these languages.

What is the passing grade for the course?
An overall average for all assignments of 70% is required to pass the course.

Do I need to achieve 70% on each assignment?
No, you need an average grade for all assignments of 70%. This means you can do poorly or miss an assignment as long as you do well enough on other assignments to achieve 70% overall.

How will my computational modelling assignments be graded?
Your computational modelling assignments will be graded using an automated online grader. For each assignment, you will be given specific instructions on the model that you need to create. You will upload your answer model, and within a few seconds, you will receive the result, with feedback. If the model you uploaded is not correct, you will have multiple chances to try again.