Introduction to Computer Graphics - labs (2018/2019)

Current Assignments

2D graphics

115. Mandala color palette (deadline 4. 11. 2018) - 8 to 11 pts

A cyclic color scheme for a "mandala"-like image.

114. Transition of two images (deadline 11. 11. 2018) - 6 to 16 pts

Definition of a transition animation between two raster images.

094. Tone-mapping of an HDR image (deadline 18. 11. 2018) - 6 to 14 pts

Conversion of an HDR image into a common "LDR" format (8 bits per channel).

082. Image from dots and discs (deadline 25. 11. 2018) - 6 to 12 pts

Generate an interesting image from dots and discs.

083. Animated dots and discs (deadline 6. 1. 2019) - 5 to 20 pts

Scripted animation using dots and discs (cf. previous assignment).

005. Noise-reduction filter (deadline 2. 12. 2018) - 8 to 14 pts

Filter that suppresses noise but maintains edges (rotating mask, directional filter, bilateral filter, non-local means, etc.).

035. Plasma simulation (deadline 9. 12. 2018) - 3 to 14+ pts

Real-time simulation of plasma/flame in a discrete 2D field.

3D graphics

057. 3D mesh construction - Generalized Lissajous curve (deadline 30. 12. 2018) - 6 to 23 pts [3D]

Algorithmic construction of a 3D mesh based on the generalized Lissajous curve. The curve is represented by a triangle mesh forming a "tube" around the ideal curve. Optional "beauty" render of your geometry in 3ds Max / Corona renderer.

116. Animated real-time camera (deadline 13. 1. 2019) - 7 to 26 pts [3D]

Definition of a camera trajectory in time, smooth translation and orientation. Optionally tracking of a moving object. Optional flythrough modeled and rendered in 3ds Max.

096. Rubik's cube (deadline 17. 2. 2019) - 10 to 18 pts [3D]

Interactive 3D simulator of Rubik's cube.

058. Marbles - simple 3D physics simulation (deadline 17. 2. 2019) - 12 to 22 pts [3D]

Assignment 058: Marbles - simple 3D physics simulation Balls (marbles) moving through space and interacting with one another + gravitation.

Assignments from previous years

051. Colour palette from an image (until 5. 11. 2017) - 9 points

098. Maze generation in SVG (until 12. 11. 2017) - 9+ points

Automatic generation of a well-formed maze in SVG form.

004. Manual creation of an HDR image (until 19. 11. 2017) - 8-11 points

Your task is to create an HDR image from a sequence of photos that you took yourself.

099. Draw an image by using only horizontal and vertical lines (until 26. 11. 2017) - 6-12 points

Generation of an image in a turtle graphics setting that is restricted to orthognal lines.

110. Animation using only horizontal and vertical lines (until 7. 1. 2018) - 5-20 points

Scripted 2D animation in a turtle graphics setting that is restricted to orthognal lines.

084. Artistic image filter (until 15. 12. 2017) - 8-14 points

Applying an artistic filter to arbitrary colour input images.

112. Clock faces (until 21. 12. 2017) - 8+ points

Character display via clock faces in 2D.

057. Construction of a 3D scene (until 14. 1. 2018) - 6 to 14 points [3D]

Algorithmical construction of simple scenes: platonic solids, and similar shapes.

113. Plotting 2D functions with OpenGL (until 18. 2. 2018) - 8 to 20 points [3D]

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

087. Fireworks (until 18. 2. 2018) - 8 to 22 points [3D]

Simulated fireworks. Particles that are influenced by gravity, and user input!

Credit requirements

Students have to earn min 50 points, upper limit is 80 points (Intro CG: at least 16 points have to be from 3D graphics assignments).
Deadline for winter-term credit is 17. 2. 2019 !
Deadline for summer-term credit is 30. 6. 2019 !

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

A. assignments running through the whole term (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 the assignments. 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.

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" <>.)
  • One message = one solution. If you want to ask an additional question or send a complaint, use a different email message!
  • Message subject has to contain the class code (NPGR003) and assignment ID number (a three-digit decimal number). Everything else is optional.
  • You absolutely must follow rules for source-file naming. There is a clear definition on each assignment's web page. Don't forget to write your name into a comment on the first line of the source file!
  • Do not send any unwanted extra files (there are exceptions but they are quite rare)
  • Never send huge mail attachments! If you want to send an image (demonstration of a good/bad case, input picture, etc.), use low resolution, or send an URL to, say, gyazo. Large files (e.g. videos) should be uploaded to a file sharing site (Dropbox, Google drive, OneDrive, etc.) and you will send the file URL in the email instead.
  • 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.
  • Sometimes we will include special comments into source files to mark places where your code/changes should go. Please don't feel restricted by those comments. You can insert any variable/support class/data structure as long as it stays in the source file declared for consignment. Don't add more source files to the task project - they will be disregarded during the grading (and therefore you will not receive any points, because the program will probably not compile).

Submission of assignment solutions

Simply attach the requested source code to a mail message. Uncompressed, unecrypted, follow rules declared earlier (message subject, source file naming)!

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) 2000-2018 J.Pelikán and J. Křivánek, last change: 2019-01-07 09:25:27 +0100 (Mon, 07 Jan 2019)