Introduction to Computer Graphics - labs (2023/24)

There will be 9 assignments (including three 3D graphics assignments). You can choose which ones to solve - but keep in mind Requirements.

You will be able to use AI assistants if you document your progress well.

Current Assignments

See the NPGR003-23 repository. Each task is assigned one numbered directory NN-*, e.g. 01-AllTheColors.

Brief overview of planned tasks (subject to change):

  • 01-AllTheColors – image containing all 16M colors
  • 02-ImagePalette – color scheme inspired by an input image
  • 03-SFC – Space Filling Curves for passing through pixels of a 2D image
  • 04-Mandala – drawing circular symmetric pictures (mandalas)
  • 05-Animation – animation mandalas (based on 04-Mandala)
  • 06-ImageRecoloring – portrait-preserving re-coloring of images
  • 07-Fireworks – simulate a 3D fireworks as a particle system (using OpenGL and Silk.NET)
  • 08-AntAttack – rendering a simple 3D city à la "Ant Attack" (OpenGL and Silk.NET)
  • 09-NotYet – not yet decided (OpenGL and Silk.NET)

For all other information about the tasks, see the public GIT repository NPGR003-23.

Table of awarded points

This shared table is frequently updated to reflect the current status of tasks, their deadlines, and their submission status.

Assignments from previous years

051. Colour palette from an image (deadline 30. 10. 2022) – 8-14 points

Color scheme inspired by an input image.

098. A maze generator which directly outputs SVG (deadline 13. 11. 2022) – 9-16 points

Procedural generation of 2D maze in SVG format.

082. Interesting image from circles (deadline 20. 11. 2022) – 6-12 points [can be 3D]

Generate an interesting image using only circles.

083. Animation using circles (deadline 3. 1. 2023) – 5-20 points [can be 3D]

Generate an animation based on the circle images from the 092 assignment.

044. Animating the CGG logo (deadline 3. 1. 2023) – 5-20 points [can be 3D]

Short, scripted animation of CGG logo.

084. A creative image filter (deadline 4. 12. 2022) – 7-14 points

Implement an artistic image filter.

116. Animated real-time camera (do 28. 2. 2023) – 7-22 points [3D]

Definition of camera trajectory with smooth translation and rotation.

039. Terrain Generation (do 28. 2. 2023) – 10-24 points [3D]

Generation and rendering of 3D (fractal) terrain, optional simulation of hovercraft.

087. Fireworks (deadline 28. 2. 2023) – 7-22 points [3D]

Simulate a 3D fireworks as a particle system.

117. Our basic framework for raster image projects

A framework for loading, analysing and displaying images.

123. Procedural generation of an image (deadline 07. 11. 2021) – 3-10 points

Think up an image (geometric shape, pattern, interesting color transition, ...), which could be easily defined by some equation(s) or an algorithm – every pixel should be independently calculated by your function, which will be implemented as a CS-script (C#) on in a separate C# module.

120. Portrait-preserving image re-colouring (deadline 14. 11. 2021) – 8-12 points

Perform hue changes in an image without altering skin tone colours.

092. Line image drawing (deadline 21. 11. 2021) – 6-12 points

Generate an interesting image using only lines.

093. A line-based animation (deadline 03. 01. 2022) – 5-20 points

Generate an animation based on the line images from the 092 assignment.

084. A creative image filter (deadline 05. 12. 2021) – 7-14 points

Implement an artistic image manipulation filter.

125. Anti-aliasing of an image (deadline 19. 12. 2021) – 4-8 points

Generate an anti-aliased raster image.

113. Plotting 2D functions with OpenGL (deadline 28. 02. 2022) – 8-20 points [3D]

Plotting functions of two variables in 3D by using OpenGL.

087. Fireworks (deadline 28. 02. 2022) – 8-22 points [3D]

Simulate a 3D firework, including effects like gravity and particle systems.

096. Rubik's cube (deadline 28. 02. 2022) – 10-18 points [3D]

Interactive 3D simulator of Rubik's cube.

Credit requirements

Students have to earn a total of at least 50 points, upper limit is 80 points (at least 16 points have to be from 3D graphics assignments).
Deadline for winter-term credit is 3. 3. 2024 !
Deadline for summer-term credit is 31. 6. 2024 !

Credit points will be added to examination result (max 100 points) and the final grade will be determined using the following Grading Table:
150+ points A (výborně)
130 to 149 points B (velmi dobře)
110 to 129 points C (dobře)
less than 110 points F (nevyhověl(a))

How to earn credit points

A1. assignments running through the whole term NPGR003 (implemented in C#)

Assignments are given in the labs (practicals), one assignment will be given in each lab. Students will have at least two weeks to deliver a solution. Number of points awarded for a solution depends on the difficulty, solution quality, robustness, and elegance. Additional bonus points can be given, e.g. in case of a contest.

A2. semester project NPGR004 (C#)

The project you will be working on throughout the entire semester. For detailed information, step-by-step instructions, and checkpoints, see the detailed pages of the exercise.

B. transfer from previous year

90% of last-year points could be transferred from the previous year (upon explicit student's request via email).


Some assignments have a well-defined quantitative criterion for solution comparison, based on which one can assemble a chart of best solutions. Such tasks will be marked as "CONTEST" and there will be a public chart displaying the best achieved results. In case the assignment is handed in by at least 10 students/teams, the three best solutions will obtain a premium of 10, 6, and 3 pts, respectively. (In case the solution was done in a team, all its members get the premium.) Only solutions submitted before the deadline are allowed to enter the contest!


Since grading of the assignments is very time consuming, your are kindly requested to follow several simple rules:
  • Mail messages have to be sent from an e-mail identity where your civil first name and surname can be easily determined.
    (Use something like "Malcolm Reynolds" <>.)
  • Message subject has to contain a task number (NPGR003 ... two-digit decimal number). Everything else is optional.
  • TEST functionality of your code. When grading, the code could be run in conditions slightly different from the obvious ones. If it fails, points go down. So make sure to produce robust code! Handle all (even weird) input conditions well. This is especially true if you have the code generated by an AI assistant!

Submission of assignment solutions

We will use your GIT "copy" ... details are specified in the public GIT repository.

Penalty for late submission

There is a penalty of 1 point for every day of delay after an assignment deadline.

Lab schedule

See lab schedule on the SIS server.

Copyright (C) 2015-2023 J. Pelikán & T. Iser, last change: 2023-10-29 17:25:28 +0100 (Sun, 29 Oct 2023)