Skip to main content

Generative Modelling

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.

Generative Modelling

There is one session available:

After a course session ends, it will be archivedOpens in a new tab.
Starts Jan 21
Ends Feb 28
Estimated 5 weeks
4–6 hours per week
Progress at your own speed
Optional upgrade available

About this course

Skip About this course

As part of our “Spatial Computational Thinking” program, this “Generative Modelling” course focuses on the generation of complex spatial information models capturing various relationships and constraints. You will learn how to tackle challenging problems by integrating multiple procedures that work together to generate spatial information models.

This course will build on the previous procedural modelling course. In this course, the complexity of the spatial information modelling tasks will increase, requiring a more advanced type of generative modelling approach. You will learn advanced generative modelling techniques, such as using law curves and resolving spatial constraints by implementing your own solvers. You will learn skeletal modelling strategies that make it easier to control the complexity of the generative process.

You will also learn a range of general mathematic techniques that are critical to basic types of spatial reasoning, including working with vectors, rays, and planes, and using various mathematical functions such as periodic functions, and dot product and cross product functions. You will also revisit the debugging process, learning how flowcharts can be used to isolate errors.

In the process, you will also further develop your coding skills. You will revisit the loops and conditional and discover how these can be nested to create more complex control flows. You will also discover how list and dictionary data structures can be nested to create more complex types of data structures.

The modelling exercises and assignments during this course will also become more advanced. The spatial information models will now represent complex buildings with a range of different types of components and parts, tagged with attributes and grouped into collections.

The course prepares you for the next and final course in the “Spatial Computational Thinking” program, focusing on performative modelling.

At a glance

What you'll learn

Skip What you'll learn

Learning algorithmic thinking:

* How parameters define a search space of possible configurations

* How to decompose a problem by breaking it down into smaller sub-problems

* Recognise underlying algorithmic principles within spatial configurations

Learning generative modelling:

* Using skeletal modelling strategies to control model complexity

* Modelling spatial relationships using law curves

* Modelling with spatial constraints, for example, Floor-Area Ratio

* Strategies for solving constraints

* Creating simple constraint solvers using ‘for loops’

* Pushing attributes through the topological hierarchy

* Visualizing models with colour and materials

* Understanding polygon normals and their impact on light

* Importing and exporting geometric and geospatial data models

Learning coding:

* Spatial reasoning with vector mathematics

* Working with infinite planes and infinite rays

* Modelling with periodic functions: sin(), cos(), tan()

* Spatial reasoning using the dot product and cross product functions

* Optimizing code to improve execution speed

* Developing complex data structures using nested lists and dictionaries

* Using nested loops and nested conditionals

* Strategies for looping: using a counter or iterating over a list?

* How to avoid deep nesting of loops using data structures

Learning Möbius Modeller:

* Strategies for creating and debugging flowcharts

* Documenting flowcharts and parameters

* Publishing flowcharts online for others to interact with and explore

* The Möbius Spatial Information data model

* Interrogating models in the 3D viewer

* Difference between local and global functions

* Creating flowcharts that can be imported as global functions

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 any Chromium-based web browser (such as Google Chrome, Microsoft Edge, Opera, or Brave). 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 recent mid-range laptop will be sufficient. A laptop with a dedicated graphics card will result in a 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 for manipulating 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 (JavaScript, Python 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 JavaScript, Python, etc, 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?

* Most of 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. For the last assignment of the course, you will be required to create your own model from scratch. This final assignment will be manually graded.

Who can take this course?

Unfortunately, learners residing in one or more of the following countries or regions will not be able to register for this course: Iran, Cuba and the Crimea region of Ukraine. While edX has sought licenses from the U.S. Office of Foreign Assets Control (OFAC) to offer our courses to learners in these countries and regions, the licenses we have received are not broad enough to allow us to offer this course in all locations. edX truly regrets that U.S. sanctions prevent us from offering all of our courses to everyone, no matter where they live.

Interested in this course for your business or team?

Train your employees in the most in-demand topics, with edX for Business.