Assignment archive

Reversed chronological list

058. Marbles – simple 3D physics simulation (Intro to CG, C#, 2012, 2013, 2015, 2018) 2019/02

Balls (marbles) moving through space and interacting with one another + gravitation.

096. Rubik's cube (Intro to CG, C#, 2016, 2018) 2019/02

Interactive 3D simulator of Rubik's cube.

116. Animated real-time camera (Intro to CG, C#, 2018) 2019/01

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.

057. 3D mesh construction – Generalized Lissajous curve (Intro to CG, C#, 2018) 2018/12

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.

035. Plasma simulation (Intro to CG, C#, 2011, 2014, 2018) 2018/12

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

005. Noise-reduction filter (Intro to CG, C#, 2010, 2018) 2018/12

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

083. Animated dots and discs (Intro to CG, C#, 2015, 2018) 2018/11

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

082. Image from circles and discs (Intro to CG, C#, 2015, 2018) 2018/11

Generate an interesting image from circles and discs.

094. Tone-mapping of an HDR image (Intro to CG, C#, 2016, 2018) 2018/11

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

114. Transition of two images (Intro to CG, C#, 2018) 2018/11

Definition of a transition animation between two raster images.

115. Mandala color palette (Intro to CG, C#, 2018) 2018/11

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

065. Efficient parametric surface for RT (Photorealistic, C#, 2017) 2018/07

General parametric surface (defined symbolically) for ray-tracing. Suitable acceleration technique.

088. Depth of field camera (Photorealistic, C#, 2017) 2018/07

Depth of field simulation (real camera lens with true aperture) using distributed ray-tracing.

061. RT scene design (Photorealistic, C#, 2017) 2018/07

Design of an interesting 3D scene for Ray-tracing using the CSharpScript format.

gpu012. Laser show in CUDA (Realtime & GPU, C++/C#, 2017) 2018/07

CUDA/OpenCL simulation of a laser show with disco balls etc. Ray-triangle intersection implemented in a CUDA/OpenCL kernel, OpenGL interop for rendering.

gpu016. Hovercraft mini-game (Realtime & GPU, C++/C#, 2017) 2018/07

A simple interactive game simulating a hovercraft flying above terrain surface (see the task 005). User interaction, certain motion simulation fidelity, game "achievements", 3rd person view, ...

gpu005. Terrain with LoD (Realtime & GPU, C++/C#, 2017) 2018/07

Implementation of a LoD (Level of Detail) system for potentially infinite terrain. The surface will be rendered from low altitudes (land vehicle, hovercraft with limited speed).

079. Implicit surface for RT (Photorealistic, C#, 2017) 2018/06

Implicit function-defined surface for ray-tracing + demo scene.

gpu006. Crystal ball (Realtime & GPU, C++/C#, 2017) 2018/06

Fragment shader implementing light refraction in a crystal ball.

072. 3D noise-based texture (Photorealistic, C#, 2017) 2018/05

Continuous 3D noise function + some 3D texture based on it (wood, marble, ...).

062. RT scene animation (Photorealistic, C#, 2017) 2018/05

RT scene animation, camera animation is possible (perhaps the one from 022) + demo animation script. Making of video file, uploading to YouTube..

gpu003. Procedural texture using noise (Realtime & GPU, C++/C#, 2017) 2018/05

Noise function implementation on GPU (fragment shader) + implementation of actual "natural" texture (wood, marble, ..). 2D or 3D approach.

gpu015. GPU benchmark (Realtime & GPU, C++, 2017) 2018/05

Compare several variants how to render massive data (106 triangles) on a modern GPU. Write a report about it.

063. Flame animation (Photorealistic, C#, 2017) 2018/04

Procedural 2D flame animation. Implementation of your own (deterministic) noise function.

022. Alternative camera (Photorealistic, C#, 2017) 2018/04

Ray generator for ray-based rendering methods. Implementation of a new camera (panoramic, fish-eye, ..) + demo scene.

087. Fireworks (Intro to CG, C#, 2015, 2017) 2018/02

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

113. Plotting 2D functions with OpenGL (Intro to CG, C#, 2017) 2018/02

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

057.2017 Construction of a 3D scene (Intro to CG, C#, 2010, 2012-2015, 2017) 2018/01

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

112. Clock faces (Intro to CG, C#, 2017) 2017/12

Character display via clock faces in 2D.

084. Artistic image filter (Intro to CG, C#, 2017) 2017/12

Applying an artistic filter to arbitrary colour input images.

110. Animation using only horizontal and vertical lines (Intro to CG, C#, 2017) 2017/11

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

099. Draw an image by using only horizontal and vertical lines (Intro to CG, C#, 2017) 2017/11

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

004. Manual creation of an HDR image (Intro to CG, C#, 2010-2014, 2016, 2017) 2017/11

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

098. Maze generation in SVG (Intro to CG, C#, 2017) 2017/11

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

051. Colour palette from an image (Intro to CG, C#, 2012, 2014, 2017) 2017/11

Automatic calculation of a nice palette of colors (e.g. for web design). The color set must be based on an input raster image, from which several major colors should be extracted. Evaluation page.

gpu014. Pool simulation (Realtime & GPU, C++/C#, 2016) 2017/07

Simulation of a small pool (waves, tiling, light refraction and absorbtion/coloring) using fragment shader only.

089. Efficient sphereflake for RT (Photorealistic, C#, 2016) 2017/05

Fractal object called "sphereflake", speeding up the computing of intersections.

097. Orange peel (Photorealistic, C#, 2016) 2017/05

Noise function used for orange peel imitation (bump-texture).

gpu007. Vinyl surface shader (Realtime & GPU, C++/C#, 2016) 2017/05

Vinyl record groove simulation in a fragment shader.

gpu010. Texture animation using shaders (Realtime & GPU, C++/C#, 2016) 2017/05

Any interesting effect involving texture animation using fragment shader. Bitmap texture can be used as well.

021. Layered reflectance model Weidlich-Wilkie (Photorealistic, C#, 2016) 2017/04

Implementation of the Weidlich-Wilkie reflectance model. Include material definition class and a demo scene.

022.2016 360°/180° equirectangular camera (Photorealistic, C#, 2016) 2017/04

Ray-generator (ICamera) for panoramatic 360°/180° equirectangular camera, demo scene, upload panorama to FB/Google.

gpu004. Trackball (Realtime & GPU, C++, 2016) 2017/04

Intuitive 3D object rotation using mouse + some nice 3D object. Momentum.

039. Terrain Generation (Intro to CG, C#, 2011, 2014, 2016) 2017/02

Generation of a fractal 3D terrain, optionally with fly-overs and non-trivial shading.

095. Building a 3D scene - SFC (Intro to CG, C#, 2016) 2017/01

Algorithmic construction of a 3D scene with a space filling 3D curve.

068. Halftoning for a Laser printer (Intro to CG, C#, 2013, 2014, 2016) 2016/12

Stochastic halftoning for a high-resolution laser printer.

093. Line Animation (Intro to CG, C#, 2016) 2017/01

Generate an interesting animation by using Lines / Polylines.

092. Line Graphics (Intro to CG, C#, 2016) 2016/11

Generate an interesting image by using Lines / Polylines.

091. SVG Fractal (Intro to CG, C#, 2016) 2016/11

Generating a 2D fractal, and storing it in an SVG file.

051.2016 Image colour palette (Intro to CG, C#, 2016) 2016/11

Design an algorithm which generates a colour palette from an image: and in particular, a colour palette that is somehow representative for the image in question. Evaluation page.

gpu008. Particle system in CUDA (Realtime & GPU, C++/C#, 2015) 2016/07

CUDA implementation of simple particle system with statical obstacles. Particle vs. obstacle collisions, no inter-particle interaction.

gpu013. Ocean waves (Realtime & GPU, C++, 2015) 2016/05

Realtime simulation of ocean waves in vertex shader (Gerstner formula or better).

044. Animating the logo of the CGG (Intro to CG, C#, 2011, 2012, 2015) 2016/01

Create a short animation of the CGG logo, which could be used as a standard feature in videos produced by the group.

085. Segmentation of profile pictures (Intro to CG, C#, 2015) 2015/12

Design and implement an algorithm that can segment an input image into two sets: the background and an object. The user interactively roughly defines which areas of the image belong to which category, and the algorithm then tries its best to separate these components.

084.2015 Artistic image filter - impressionism (Intro to CG, C#, 2015) 2015/12

Design and implement an algorithm that calculates the effect of an artistic image filter on a given raster image. The result should be similar to an impressionist painting techniques, e.g. a simulation of pointilism.

081. An image with 16M colours (Intro to CG, C#, 2015) 2015/11

Generate an interesting image that includes all 24-bit colors! (i.e. it must have a minimum of 16M pixels). Optional task is to base 16M colour image on aritrary input picture.

033. Nice color palette (Intro to CG, C#, 2010, 2011, 2015) 2015/11

Design an algorithm for computing a nice color palette based on one or two input colors (application: WWW page design = CSS color scheme, etc).

070. Subdivision surface in OpenGL (Intro to CG, C#, 2013, 2014) 2015/02

Adaptive subdivision surface rendering using the Loop scheme. Triangle mesh should be rendered using OpenGL.

075. Polygon animation (Intro to CG, C#, 2014) 2015/01

Scripted animation using filled 2D polygons only.

069. Subdivision curve (Intro to CG, C#, 2013, 2014) 2014/12

Develop a rasterization algorithm for subdivision curves defined by Chaikin's rule.

052. Restricted color transformation of an image (Intro to CG, C#, 2012, 2014) 2014/11

Color transform algorithm which is able to "re-color" some hues while keeping the rest unchanged.

gpu011. School of fish in CUDA (Realtime & GPU, C++, 2013) 2014/06

School of fish (flock of birds) simulation using CUDA/OpenCL. Individual particles (creatures) are aware of and derive their movement from the movement of the surrounding particles.

041. Lindenmayer systems (Intro to CG, C#, 2011, 2013) 2014/01

Extension of a L-system interpreter template. 3D plants rendering by OpenGL.

012. Scripted animation (Intro to CG, C#, 2010-2013) 2014/01

Arbitrary scripted animation made from individual 2D images. Video encoding using ffmpeg.

067. Image filter – mosaic (Intro to CG, C#, 2013) 2013/12

Implementation of a mosaic effect.

034. ASCII art (Intro to CG, C#, 2011, 2013) 2013/11

Making of an "ASCII art" output from an arbitrary raster image.

066. Histogram of a raster image (Intro to CG, C#, 2013) 2013/11

Histogram of a raster image visualized in a simple 2D graph.

059. R2 -> R graph rendering (Intro to CG, C#, 2012) 2013/02

Algorithm able to visualize graph of R2 -> R function. OpenGL should be used for rendering.

056. Interactive 3D camera (Intro to CG, C#, 2010, 2012) 2013/01

Interactive 3D camera for exploring of arbitrary 3D scene (read from an .OBJ file). You must provide viewing/projection matrices to the OpenGL pipeline.

055. Quadtree encoding (Intro to CG, C#, 2010, 2012) 2012/12

Quadtree encoding of an arbitrary raster image.

054. Color reduction (Intro to CG, C#, 2012) 2012/11

Algorithm computing an adapted color palette for a raster imahe.

053. Picture from rectangles (Intro to CG, C#, 2012) 2012/11

Generating an interesting raster image made only from rectangles.

040. 3D morphing (Intro to CG, C#, 2011) 2012/02

3D morphing of topologically equivalent triangle meshes, OpenGL is used for rendering.

038. Interactive 3D rotation – Track-ball (Intro to CG, C#, 2011) 2011/12

Implement the interactive 3D scene examiner "Track-ball".

037. Complex boundary for flood-fill (4-dir) (Intro to CG, C#, 2011) 2011/12

Design the most complex boundary for 4-directional flood-fill (complexity is measured by max FIFO size needed).

036. Image from circles (Intro to CG, C#, 2011) 2011/11

Generate an interesting image from circles.

003. Color transform of an image (Intro to CG, C#, 2010, 2011) 2011/11

Design and implement an interesting color transformation of an image using the HSV space.

018. CSG rendering by Ray-casting (Intro to CG, C#, 2010) 2011/06

Complete the ray-casting algorithm for rendering CSG scenes (all set operations have to be implemented correctly).

017. Graph of function with visibility (Intro to CG, C#, 2010) 2011/01

Implement visibility computation for real function graph in 3D (R2 -> R).

009. Flood fill (Intro to CG, C#, 2010) 2010/11

Implementation of 4-directional point-based flood-fill algorithm.

007. Randomization of Error Distribution Dithering (Intro to CG, C#, 2010) 2010/11

Modification of classical error distribution dithering to reduce any patterns or regularities (see "blue noise dithering").

Very old assignments

Copyright (C) 2019 J.Pelikán, last change: 2019-11-09 16:32:27 +0100 (Sat, 09 Nov 2019)