Procedural Content Generation James Grisetti. Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future.

Slides:



Advertisements
Similar presentations
Performance Evaluation of Cache Replacement Policies for the SPEC CPU2000 Benchmark Suite Hussein Al-Zoubi.
Advertisements

Lecture 0: Course Overview
Jason Stredwick, MSU 2004 L-Systems Lindenmayer Systems algorithmicbotany.org.
ATEC Procedural Animation Introduction to Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa.
L-System Aristid Lindenmayer (1968), biologist. L-System A method of constructing a FRACTAL that is also a MODEL for plant growth. The Computational Beauty.
Evaluation in Digital Media Graphics Basic Concepts.
L systems (Aristid Lindenmayer)
L-systems Presented by Luv Kohli COMP258 October 30, 2002 Images copyright © 1992 D. Fowler, P. Prusinkiewicz, and J. Battjes.
Order-Independent Texture Synthesis Li-Yi Wei Marc Levoy Gcafe 1/30/2003.
Discrete-Event Simulation: A First Course Steve Park and Larry Leemis College of William and Mary.
Procedural Modeling L-Systems Procedural Terrain Procedural Behavior Based on the slides from Spring 2007.
Introduction to Computers and Programming. Some definitions Algorithm: –A procedure for solving a problem –A sequence of discrete steps that defines such.
Pseudorandom Number Generators
BPC: Art and Computation – Spring 2007 Overview of Spring Semester Tools and Technologies Glenn Bresnahan
Twelve painting with procedures. Overview Making shaded images with procedures Making a more elegant language Making textures with noise functions.
Procedural Content Generation Prof. Roger Crawfis Computer Science and Engineering The Ohio State University
Principles of Procedural Programming
MULTIMEDIA SYSTEM.
Bridging the Gap to the Real Wojciech Matusik Adobe Systems, Inc.
INTRODUCTION TO SCRATCH. About Me Resources Scratch Website Learn Scratch Washington-Lee Computer.
Confidence, mathematics and performance of Engineering Studies candidates at the New South Wales Higher School Certificate examination John Barlow Australian.
IlliDOL: A Framework for Exploration of L- Systems in Three Dimensions Vilas Dhar Math 198 Spring 2003.
Procgen Chaz Pratt 11/3/2009. overview What is procgen? What we tried? What worked? What didn’t? Try again?
Lecture 7: Simulations.
David Runyon Lauren Stana Kelsey Vaughn Molly Shelestak.
Survey of Procedural Content. Procedural Content Generation Procedural generation refers to content generated algorithmically rather than manually. –
Computer Hardware and Software Chapter 1. Overview Brief History of Computers Hardware of a Computer Binary and Hexadecimal Numbers Compiling vs. Interpreting.
1 Landscape Generation with L-Systems By: David Cole Supervisor: Jon McCormack.
Evolving a Sigma-Pi Network as a Network Simulator by Justin Basilico.
Modeling and Simulation
Computer Animation Lecture #1 송오영 Sejong University Department of Digital Contents.
AES Background and Mathematics CSCI 5857: Encoding and Encryption.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Cg Programming Mapping Computational Concepts to GPUs.
CSCE 5013 Computer Vision Fall 2011 Prof. John Gauch
Terrain Synthesis by Digital Elevation Models Howard Zhou, Jie Sun, Greg Turk, and James M. Rehg
L-Systems and Procedural Plants CSE 3541 Matt Boggus.
Procedural Generation of Virtual Cities for Computer Game Application Bruce Megget Andrew Gits Francois Grobbelaar Liz Harte.
The Artificial Life of Plants Przemyslaw Prusinkiewicz, Mark Hammel, Radom´ır Mˇech Department of Computer Science University of Calgary Calgary, Alberta,
Examining the World of Fractals. Myles Akeem Singleton Central Illinois Chapter National BDPA Technology Conference 2006 Los-Angeles, CA.
Continuous Model Synthesis Paul Merrell and Dinesh Manocha In SIGGRAPH Asia 2008 발표 : 이성호.
Lindenmayer systems Martijn van den Heuvel May 26th, May 26th, 2011.
L-system and SVG 2D SVG Tree 2002/10/16.
Evolutionary Robotics Using A Formal Grammar To Evolve Robot Bodies and Brains Hornby, G.S., Pollack, J. (2001) Creating high-level components with a generative.
How to Draw a Tree L-Systems in Computer Graphics Steven Janke.
1 Chapter 13 Artificial Life: Learning through Emergent Behavior.
Computer Science and Mathematical Basics Chap. 3 발표자 : 김정집.
I Robot.
Computer Engineering Rabie A. Ramadan Lecture 1. 2 Welcome Back.
Computer Graphics Researched via: Student Name: James Wood Date: 4/29/10.
Holistic Mobile Game Development with Unity 2015 Taylor & Francis. All rights Reserved.
CPSC : Data-driven Computer Graphics Jinxiang Chai.
Banff 2007: Innovations in Mathematics Education via the Arts Interactive Graphics Tools and Global Learning Mara Alagic & Glyn Rimmington Wichita State.
Computer Graphics Researched via: Student Name: Timothy Rorie Date: 4 / 11 / 11.
Student Name: Nyanka Joseph Date: 4/29/10. What is Computer Graphics? Graphics using computers The representation and manipulation of image data by a.
The man who knew 28% of mathematics. John Von Neumann ( ) Hans Bethe: Academic seminars (10.
ANIMATORS AND TECHNIQUES By Rhiannon james. ANIMATION Animation is the process of creating motion and shape change illusion by means of the rapid display.
1. COMPUTERS AND PROGRAMS Rocky K. C. Chang September 6, 2015 (Adapted from John Zelle’s slides)
Procedurally Generated ‘Virtual Cities’ for Computer Games Daniel Flower Neil Green Jonathan Rubin Tan Khanh.
G. Cowan Lectures on Statistical Data Analysis Lecture 5 page 1 Statistical Data Analysis: Lecture 5 1Probability, Bayes’ theorem 2Random variables and.
1.  How does the computer generate observations from various distributions specified after input analysis?  There are two main components to the generation.
Grammars, L-Systems Jim Whitehead UC Santa Cruz School of Engineering courses.soe.ucsc.edu/courses/cmps265/Spring14/01 23 Apr 2014.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
نظام المحاضرات الالكترونينظام المحاضرات الالكتروني Introduction :: Computer Organization and Architecture Computer.
A Look Into Photorealistic and Non-Photorealistic Rendering
ARCHITECTURAL PROCEDURAL MODELING MARKO KOLJANČIĆ MAKSIM ŠESTIĆ
System Design.
AN INTRODUCTION TO COMPUTER GRAPHICS Subject: Computer Graphics Lecture No: 01 Batch: 16BS(Information Technology)
Generating Random and Pseudorandom Numbers
Generating Random and Pseudorandom Numbers
Presentation transcript:

Procedural Content Generation James Grisetti

Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

Introduction What is Procedural Content Generation? Generic term for the usage of algorithms to generate content rather than manual creation of content. “Content” refers to media content such as in movies, games, pictures, simulation, etc.

Introduction Why Use Procedural Generation? Reduce production time by focusing on mechanics, rather than simulation artifacts Maintain consistent design style across multiple artifact designs, while allowing for controlled variation

Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

(Very) Brief History Procedural Content Generation has existed to some extent for as long as the Computer Science field Simple generators have been used in Monte Carlo simulation Used in computer games as early as 1982 First notable use of procedural animation was in the Lord of the Rings trilogy Widespread use in video games and simulation

Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

Basic Generators Linear Congruential Generator In the form of X N+1 = aX N + c (mod m) Programmer controls output through values of a, c, m, and X 0 (seed value) Implemented in the C language through rand() and srand() May be expanded to higher order polynomial

Basic Generators Linear Feedback Shift Registers Based on a “shift register” with bits shifted in to the left and shifted out to the right Programmer controls output through setting the “polynomial” and initial state Slightly higher quality than LCGs

Basic Generators Linear Feedback Shift Register Varieties Fibonacci Bit shifted in is based on several bits of current state Galois Several bits are modified based on bit shifting out

Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

Contemporary Generators Perlin Noise Mathematical interpolation of floating point numbers Creates fractional Brownian Motion Used to make CGI textures look more realistic

Contemporary Generators L-Systems Lindenmayer systems Defined as a 3-tuple V, the alphabet of the system (variables and constants) ω, initial string of the system (axiom, start, or initiator) P, set of production rules (one for each variable in V)

Contemporary Generators L-Systems Continued At each iteration, each variable in the current string is replaced with its corresponding production to produce the next string State is the string after a given number of iterations The state is usually used to direct a “turtle graphic” One of the most commonly used PCGs

Contemporary Generators L-Systems Continued Example V = {A,B} ω = A P = {A→AB, B →A} Iteration A AB ABA ABAAB ABAABABA

Contemporary Generators L-Systems Demonstration 1 V = {F,+,-} F means “draw forward” ‘+’ and ‘-’ are used to change angle ω = F--F--F-- P = {F→F+F--F+F}

Contemporary Generators L-Systems Demonstration 2 V = {X,F,[,],+,-} F means “draw forward” ‘[‘ and ‘]’ are used to save and restore position ‘+’ and ‘-’ are used to change angle X has no meaning outside of the L-System ω = X P = { X → F-[[X]+X]+F[+FX]-X, F → FF }

Contemporary Generators Expert Systems Departure from previous approaches Use statistical methods to determine world shape and item placement First notably used in Procedural Content Generation in Valve’s Left4Dead

Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

Future Work Most contemporary PCGs are involved in generating terrain artifacts (landscape) Some use in animations, textures, and lighting The next generation of Procedural Content Generation will be involved in creating entire maps

Future Work Going to the extreme: Programming programs that program programs In a paper published this year, Mahlmann, Togelius, Yannakakis at the IT University of Denmark suggest the use of Procedural Content Generation for entire games, including rule sets, unit hierarchies, game maps, etc.

Future Work Another paper by Dimovska, Jarnfelt, Selvig, Yannakakis from the same university explores the use of procedural techniques to aid in physical rehabilitation using the Wii platform

Example Applications Minecraft Terrain is generated procedurally “Mobs” are placed procedurally

Example Applications CityEngine Middleware intended for simulation and use in motion pictures Requires map data for input Creates road layouts, building shapes, and textures based on user parameters

Example Applications Subversion Independently developed game Goal is for the entire world to be procedurally generated

Example Applications.kkrieger Created circa 2004 for the then state-of-the- art hardware Uses PCG techniques to create maps, play music, and place items and enemies all at runtime Executable is 97,280 bytes

References Knowledge The omniscient Mahlmann, et al. “Towards Procedural Strategy Game Generation: Evolving Complementary Unit Types” (link)link Dimovska, et al. “Towards Procedural Level Generation for Rehabilitation” (link)link Müller and Parish. “Procedural Modeling of Cities” SIGGRAPH 2001 (link)link Example Applications:

"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." -- John von Neumann