GEO1004: 3D modelling of the built environment is part of the MSc Geomatics programme at the Delft University of Technology. The course provides a detailed description of the main ways in which the built environment is modelled in three dimensions, covering material from low-level data structures for generic 3D data to high-level semantic data models for cities.

The current version of the course (with entirely new content) was run for the first time on Q3 of the 2019-2020 academic year. In that year, the course was based on blended learning, using a mix of online content with in-person labs until the covid-19 pandemic struck half-way through the course, forcing us to move all activities online. For the second edition (2020-2021 Q3), we adapted to the ongoing pandemic by doing everything fully online from the start and focussed on improving the lesson handouts. For the third edition (2021-2022 Q3), we have compiled the improved handouts into a 3D book and we will attempt to move back to a blended learning model. For this fourth edition (2022-2023 Q3), we are adapting the contents to have more in-person sessions.

We expect to have several in-person short lectures and demos at the scheduled times. However, this course follows a blended learning model, where students are mostly expected to study the lessons on their own, by watching the videos and studying the materials that are provided in this website. Moreover, the idea is to learn mostly by doing—spending more time actively working on assignments rather than passively listening to lectures or videos.

We have specific contact hours (2 x 2 hours per week) marked in the schedule, but these are mainly meant to answer any questions you might have, to check on your progress and provide help for the assignments. We will often use the beginning of the contact hours for other things, such as to introduce the course and the assignments, or to provide you with general feedback for the assignments or the exams.

You can ask us questions online (through Discord) at any time, but during the contact hours we will be fully available to help you online and most likely in person too (depending on the covid situation).

The activities planned for the day will be announced in advance through Discord and in the course website. Note that while you can do most of the course asynchronously, it is necessary to be available for the midterm exam on March 15 and the final exam on April 21.

All the assignments are programming tasks (to be done with the C++ programming language), based solely on open-source libraries and software.

How to best follow this course

Every week:

  1. Go the course homepage and check the week’s schedule. If some information will be given live during the contact hours, we will mark it in the timetable. We will also let you know on Discord. If so, try to attend it.
  2. In your own time, study the lessons of the week by watching the videos and reading the materials. The course works best if you do it in advance, but we know that this is not always possible.
  3. If you have any doubts about the contents of the lessons, ask questions on Discord. Asking on the geo1004 text channel is best, but a DM is okay if you are uncomfortable with that. If you ask during the contact hours, we will answer quickly. If not, we will still answer, but it might take longer.
  4. Try to answer the questions included at the end of the book chapter for a lesson. If you are not sure if your answers are correct, ask on Discord.
  5. Optionally, have a look at some of the other materials (eg papers and videos) listed at the end of the chapter.
  6. After studying the lessons of the week, work on the assignment(s) listed for that week.
  7. As you work on an assignment, discuss it with your classmates and with us. High-level collaboration (eg general strategies to tackle a problem) is encouraged. Copying and pasting others’ code is not and will be considered plagiarism.
  8. If you get stuck in part of an assignment or want to run your strategy by us, tell us on Discord. We will not give you the solution to an assignment, but we will help you get to a good track to complete it.

All deadlines and rules are posted in this website, but we can be flexible with the rules if needed (such as if you get sick). We will also be widely available to help you on Discord and most likely in person too, so don’t hesitate to ask questions. General software or programming questions are also okay, so please ask ahead. No one is born an expert, so there are no dumb questions.


Discord is a service for text and voice chats plus video calls that is mostly used by gamers. You can install the app (better) or use it directly from the browser (still okay).

First, join the Geomatics server’s geo1004 text channel. This is a public text chat, which you can use to post questions, to discuss, or for general chatting. It is usually best to ask questions here, since everyone can benefit from the answers.

There is also a voice channel for the course, which is called geo1004 voice channel. This is a public voice chat, which you join manually by clicking on it. If you join it, you will listen to what the others in the voice channel are saying (unless you deafen it -> headphones icon) and everything you say will be also heard by the others (unless you mute it -> mic icon). You are free to use it anytime to discuss anything with the rest of your classmates (who are in the channel at that point).

Once you have joined the voice channel, you can also use it to share your screen (or a single window) with your classmates (Go Live -> icon with display and arrow). When you do so, a red LIVE icon will appear next to your username, and people will be able to click on your user and see your stream.

If you want to ask very detailed questions that are only relevant to your work, it is probably better to do a separate one-to-one or small group call (with possible video and/or screen sharing). For that, let us know on the text channel (better) or send us a DM (still okay). When one of us is free, we will add you as a friend (or you can do that anytime!), and we can then start the call.

Now, if you are not together with your assignment groupmate or want to talk to other classmates, how about doing a one-to-one or group call with them?

Expected prior knowledge

Anyone is free to follow the course, but it is mainly designed for students from the MSc Geomatics. Formally, the following courses/knowledge are required prerequisites:

  1. GEO1000 (or knowledge of scripting/programming);
  2. GEO1002 (or basic knowledge of GIS).

The course GEO1015 covers complementary topics to this course (2.5D vs 3D), so following it too is highly recommended.

Course content

The main topics described in the course are:

Responsible staff

Ken Arroyo Ohori photo

Ken Arroyo Ohori

kenohori#5365 | |

Hugo Ledoux photo

Hugo Ledoux

hledoux#8017 | |

Ravi Peters photo

Ravi Peters

Fabian Visser photo

Fabian Visser


3 assignments 50% (10%+20%+20%)
midterm exam 5%
final exam 45%