你将学到什么
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
课程概况
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 you will build on the previous two courses that covered procedural and semantic modelling. In this course, the complexity of the spatial information modelling tasks will increase, requiring a more advanced type of generative modelling approach.
While in the previous two courses, models were generated using a single procedure, in this course you will learn how to combine and integrated multiple procedures. This will also allow you to keep your procedure short and to visualize the modelling results at intermediate stages, thereby making it easier to tackle more complex types if challenges.
You will then learn how to create flowcharts with multiple nodes, where each node contains its own procedure. You will learn skeletal modelling strategies that make it easier to control the complexity of the generative process. You will also learn more advanced generative modelling techniques, such as using law curves and resolving spatial constraints by implementing your own solvers.
In the process, you will also further develop your coding skills. In particular, you will 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.
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.
预备知识
Completion of Course-1: Procedural modelling and Course-2: Semantic modelling of 'Spatial Computational Thinking' program.
常见问题
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.