EdX

Procedural Modelling (edX)

Procedural Modelling (edX)

This course will focus on the fundamentals of procedural programming for generating spatial models. You will learn how to code, using functions, data structures and control-flow statements. You will create procedures to generate geometric models with attribute data. By the end of the course, you will be able to write your own procedures for generating spatial information models.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

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.
When creating modelling procedures, you will use a range of different modelling functions. You will also learn how geometric models can be augmented with an additional layer of semantic data. You will learn how geometric entities can be tagged with additional attribute values, and how these attributes can then be used for querying your models. You will also learn how to add attributes to define color, materials, and other visual properties.
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 course prepares you for the next course in the “Spatial Computational Thinking” program , focusing on generative modelling of more complex types of spatial information models.

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
  • How semantics can be used to augment geometric models
  • The difference between geometry, topology, and attributes
  • How query languages can be used to extract data from models

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
  • Modelling with geometry, topology, and collections
  • Attaching attribute data to geometry, topology, and collections
  • Querying and filtering data in the model using attributes

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
  • Creating flowcharts with multiple nodes and parameters
  • Flowchart patterns, using in-series nodes or in-parallel nodes
  • Strategies for communicating between nodes within a flowchart
  • Submitting assignments using Möbius Modeller
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

3D Models for Virtual Reality (Coursera) Coursera
University of London,Goldsmiths, University of London

3D Models for Virtual Reality (Coursera)

This course will begin your journey to creating Virtual Reality experiences. A Virtual Reality experience is a new world that you step into and are entirely immersed in. Creating a VR experience means creating that world and all the objects in it. In this course you will learn the basics of 3D graphics: how we create objects and how to lay them out to create an environment. You will learn techniques like materials and texturing that make your objects appear realistic. You will also learn about audio techniques to ensure that your experiences sound great as well as looking great.

Jun 8th 2026
4 Weeks
Generative Modelling (edX) EdX
National University of Singapore,NUS

Generative Modelling (edX)

This course focuses on generating spatial information models capturing various relationships and constraints. You will learn a set of advanced modelling techniques for generating spatial models. You will create multiple procedures that annotate and query your models using attribute data. By the end of the course, you will be able to create your own scripts consisting of multiple procedures working together to generate complex spatial information models.

Self Paced
Self-Paced
Writing, Running, and Fixing Code in C (Coursera) Coursera
Duke University

Writing, Running, and Fixing Code in C (Coursera)

Building on the course Programming Fundamentals, this course will teach you how to write code by first planning what your program should do—an important approach for novice and professional programmers. You will learn how to compile and run your program, and then how to test and debug it. This course builds on the Seven Steps you have already learned and provides a framework for systematically testing for problems and fixing them, so you can find and fix problems efficiently.

Jun 1st 2026
4 Weeks
Coding for Your Classroom K - 3 (edX) EdX
The University of British Columbia,UBCx

Coding for Your Classroom K - 3 (edX)

Self-paced, asynchronous course aimed to build educators’ comfortability and confidence in digital literacy. Through hands-on learning activities and demos in a variety of web-based platforms, educators will have the resources and skills they need to introduce coding concepts to their students in the K-3 classroom.

Self Paced
Self-Paced
Python Basics: Automation and Bots (Coursera) Coursera
University of California, Davis

Python Basics: Automation and Bots (Coursera)

Manipulating the flow of how your code runs is the major part of coding and learning to think in code. We'll experience turning logic into useful work by automatically reading all of Shakespeare, and by setting Python up to give you a call on the phone. In technical terms, the parts of Python you will learn are for loops, list comprehensions, and conditional statements, while at a higher level we'll get a lot on code style and other common ideas and practices that surround the specifics of how to code.

Jun 8th 2026
4 Weeks
Interactivity with JavaScript (Coursera) Coursera
University of Michigan

Interactivity with JavaScript (Coursera)

If you want to take your website to the next level, the ability to incorporate interactivity is a must. But adding some of these types of capabilities requires a stronger programming language than HTML5 or CSS3, and JavaScript can provide just what you need. With just a basic understanding of the language, you can create a page that will react to common events such as page loads, mouse clicks & movements, and even keyboard input.

Jun 8th 2026
4 Weeks
Introduction to HTML5 (Coursera) Coursera
University of Michigan

Introduction to HTML5 (Coursera)

Thanks to a growing number of software programs, it seems as if anyone can make a webpage. But what if you actually want to understand how the page was created? There are great textbooks and online resources for learning web design, but most of those resources require some background knowledge. This course is designed to help the novice who wants to gain confidence and knowledge. We will explore the theory (what actually happens when you click on a link on a webpage?), the practical (what do I need to know to make my own page?), and the overlooked (I have a page, what do I do now?).

Jun 8th 2026
3 Weeks
Basic 3D Modeling using Blender (edX) EdX
IIT Bombay,IITBombayX

Basic 3D Modeling using Blender (edX)

Learn basic 3D modeling skills, including modeling, texturing, and lighting, using free and open source tool: Blender. Animation is an emerging medium of communication, especially in education and entertainment domains. More and more learners are aspiring to make a career in animation. However, the animation training is expensive. One of the reasons is the high cost of proprietary software used for animation.

No sessions available
4 Weeks
Python Basics: Selection and Iteration (Coursera) Coursera
Codio

Python Basics: Selection and Iteration (Coursera)

Code and run your first python program in minutes without installing anything! This course is designed for learners with no coding experience, providing a solid foundation of not just python, but core Computer Science topics that can be transferred to other languages. The modules in this course cover printing, operators, iteration (i.e., loops), and selection (i.e., conditionals).

Jun 8th 2026
4 Weeks