Procedural Generation and Simulation
Prof. Dr. Lena Gieseke | l.gieseke@filmuniversitaet.de
Teaching Assistant: Sylvia Rybak | sylvia.rybak@filmuniversitaet.de
[Cassiopeia A; 2023, NASA, ESA, CSA], [Zoom into the image →]
Syllabus
This course introduces participants to procedural and simulation algorithms for 2D and 3D graphics. Focus lies on the creation of patterns and abstracted design. Topics are reflected from all sides: their underlying formal theories, their practical implementations as well as their design. Different implementation frameworks can be used, the course focuses on Unreal.
Learning Objectives
- Overview about techniques and their capabilities
- Understanding of formal theories and algorithms
- Practical implementation experiences
- Implementation of specific design goals
Time and Place
- Wednesdays, 10.00-13.30, room 6119
- 9 sessions in total
- 3 SWS, 4 ECTS
Method of Instruction
The class is conducted as lectures with exercises. Exercises are weekly and biweekly. The attendance of the lectures is not mandatory. However, I do not guarantee that all lecture content is given by the scripts and exercises.
Schedule of Topics
Chapter | Title | Topic |
---|---|---|
1 | Introduction | Topics |
Tools | ||
Abstraction | ||
2 | Beauty in Maths | Numbers |
Formulas | ||
3 | Pattern | Function Design |
4 | Tilings | Islamic Designs |
5 | Noise | Properties |
Function | ||
Cellular | ||
6 | Dynamics | Forces |
7 | Agency | Particles I |
8 | Complex Systems | Particles II |
9 | Fluids? | |
Crowds? | ||
Explosions? |
Please note that the chapters and their order are subject to change!
Final Exercise
- The last exercise is mandatory to pass the class.
- Less than 16h, meaning two days of work, are the minimum requirement for the final exercise.
- The project must refer to one of the lecture topics. You must come up with your own task.
- You can also base your project on a tutorial from the internet. The result of the tutorial will not be enough however, you have to develop the project somehow further and make it your own.
- The (hard) deadline for the final exercise is July 31st.
Evaluation
Weekly exercises result in 10 points, biweekly exercises in 20 points, unless specifically stated otherwise. The final exercise counts for 40 points.
The requirements to pass the course are
- at least 4 completed sessions with at least 70% of the points
- the final exercise, which is an individually chosen task.
There will be a grade.
Grading
The grade is computed from the assignment points and the final exercise.
You can hand in exercise results up until July 31st to make them count (this is a hard deadline).
If you hand in an exercise after the deadline that is given in a session 15% of the total points will reduced (e.g. for 10 points 1.5 points are reduced).
Criteria
As the exercises might be relatively open-ended problems, the grading criteria are based on
- conceptual mastery,
- the amount of work put in,
- engineering effort, code / setup organization, code / setup quality, and
- the (e.g. visual) quality.
Some tasks might have specific grading criteria, which are then indicated per task.
Materials
- On Wednesday all session materials are published for the following week.
- Exercise results will usually be due on Mondays and we will discuss the results of the assignments the following Wednesday.
- You hand in all materials through GitHub.
Structure
Materials are structured as follows:
- In
Sessions
you find a folder with an index for each week (session = week).- The README.md in each session folder gives you an overview of all the readings, assignments, practical exercises, etc. that you have to do for that week - it is your todo list! I recommend to start your work with going through that file.
- In
Scripts
you find all scripts. - In
Slides
you find all slides. - In
assignments
you submit your work each week to the folder with your last name and a folder with the session index. You will submit all assignments to the same folder (the one with your last name).- Please do not submit files larger than 25 MB. Upload large in this Owncloud folder. Follow the same folder naming scheme as in Github.