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

Interactive 3D simulator of Rubik's cube.

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.

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.

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

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

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

Generate an interesting image from circles and discs.

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

Definition of a transition animation between two raster images.

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

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

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

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

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

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, ...

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).

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

Fragment shader implementing light refraction in a crystal ball.

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

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

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

Compare several variants how to render massive data (10^{6} triangles) on a modern
GPU. Write a report about it.

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

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

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

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

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

Character display via clock faces in 2D.

Applying an artistic filter to arbitrary colour input images.

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

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

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

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

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.

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

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

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

Vinyl record groove simulation in a fragment shader.

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

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

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

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

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

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

Stochastic halftoning for a high-resolution laser printer.

Generate an interesting animation by using Lines / Polylines.

Generate an interesting image by using Lines / Polylines.

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

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.

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

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

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

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.

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.

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.

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

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

Scripted animation using filled 2D polygons only.

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

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

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.

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

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

Implementation of a mosaic effect.

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

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

Algorithm able to visualize graph of R^{2} -> R function. OpenGL
should be used for rendering.

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

Quadtree encoding of an arbitrary raster image.

Algorithm computing an adapted color palette for a raster imahe.

Generating an interesting raster image made only from rectangles.

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

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

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

Generate an interesting image from circles.

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

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

Implement visibility computation for real function graph in 3D (R^{2} -> R).

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

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

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