Code: 2-MPG-211/15
Continuous assessment: independent work
Objective: To introduce the philosophy of procedural modelling and present various graphical methods from the perspective of procedural modelling.
Course syllabus:
Topics for independent projects:
- Program several quasi-random number generators (Halton, Van der Corput, Hammersley) and visually compare them (using 2D or 3D points with random coordinates) with the internal generator and another programmed LCG.
- Render a 2D texture created using turbulence and Perlin noise. Use, for example, a characteristic function for marble or wood.
- Create an image using diffusion-limited aggregation (DLA). Use fractal Brownian motion (fBM) calculated by summing noise octaves.
- Render patterns using the Gray-Scott reaction-diffusion model in 2D with at least two morphogens.
- Render a fern or another plant using stochastic IFS. Use matrices of basic transformations (rotation, translation, scaling, shearing) and add a random change (number) to one of them. Multiply them and use them as an affine transformation for generating IFS.
- Create 3D terrain using the diamond-square method (midpoint displacement) and a predefined function or height map. Also use a modulation function to influence the height generated randomly.
- Program a 1D cellular k-state automaton or a two-state 2D automaton. A simpler 1D two-state (Wolfram) automaton is worth half the points.
Literature:
Useful links:
Testing Random Numbers Generators (pdf) - a short article about several random number generators and their testing
Generating Perlin Noise - page of software developer Andreas Jönsson
Understanding Perlin Noise - explanation of the idea of creating textures using Perlin noise
Computer Graphics for the 'rest of us' - site for everyone who wants to learn basic computer graphics programming techniques
Texture Generation using Random Noise - Lode's computer graphics tutorial
Perlin Noise Function and Its Application - short article about Perlin noise from a fractals series
Reaction-Diffusion Tutorial - guide to creating a simulation of two morphogens behaviour using the Gray-Scott model
Inigo Quilez: articles - articles by a populariser of computer graphics who enjoys creating beautiful images and sharing them online
Fractals on root.cz - series about fractals from the perspective of a former computer graphics teacher
Fractals - articles about fractals with a gallery of fractals by Pavel Tišnovský
Fractal geometries - website dealing with the basics of fractal geometry
PlaNET Alife - website of the Artificial Life group, dealing with theoretical questions of artificial life and its application possibilities
Elementary Cellular Automaton - basics of 1D cellular automata from Wolfram
MCell - discover the world of CA with an online applet by Mirek Wojtowicz
Cellular Automata - online book The Nature of Code by Daniel Shiffman for programmers
Cellular Automata - non(philosophical) reflections on cellular automata from Stanford
Exploring Emergence - principles of CA operation illustrated by examples
Genetic Algorithms - a small tutorial on genetic algorithms with interactive Java applets
Genetic Algorithms and Evolutionary Computation - online article by Adam Marczyk
Genetic Cars, Genetic walkers - two interesting HTML5 applets
Particle Systems - a very brief introduction to particle systems by Allen Martin
Build New Games: Particle Systems From the Ground Up - site about particle systems aimed at game developers
Intro to Particle Systems in Computer Graphics - interesting video explaining basic concepts of particle systems
Downloadable materials are accessible only after logging in! (The login name is modelovanie, the password will be provided upon request)
{show condition="modelovanie"}
Collected downloadable materials:
{/show condition}