Midterm Project: L-systems in Practice and Theory

Size: px
Start display at page:

Download "Midterm Project: L-systems in Practice and Theory"

Transcription

1 Midterm Project: L-systems in Practice and Theory Joey Gonzales-Dones March 28, Introduction Lindenmayer systems, or L-systems, are systems for algorithmically rewriting a string of characters. Given a string µ over an alphabet V (µ V ), a set of productions P is used to replace substrings of µ to form a new string over V. The system must also include an axiom string, ω, which represents its initial state. (An L-system can formally be represented as a 3-tuple G = (V, ω, P ), using the same elements defined above.) L-systems are similar to Chomsky grammars, another category of string rewriting systems, and have similar naming conventions (context-free, context-sensitive). However, in Chomsky grammars, productions are applied one at a time, whereas in L-systems, productions are simultaneously applied to the whole string. This makes L-systems strictly more powerful than their corresponding grammars. [1, 1-3]. For example, the set {x a : x = 2 n, n 0} (i.e., all strings of all as whose length is a power of 2), is not generated by any context-free grammar (proof omitted for brevity s sake; see [2, 153] for the general idea), but it is generated by the context-free L-system V : {a} ω: a P : {a aa} Given the axiom a, we can apply the system s rule a aa to produce the string aa, then apply the same rule on both of the as simultaneously to produce the string aaaa. We could then produce aaaaaaaa using a third iteration, and so on. In addition to generating formal languages, the strings that L-systems generate can, when interpreted suitably, create mathematically interesting graphics, including fractals and plant-like shapes. 1

2 2 Graphical Interpretations Consider the Koch snowflake, a fractal formed by taking an equilateral triangle and recursively replacing each straight edge with a generator figure, as Prusinkiewicz and Lindenmayer illustrate in their book. Figure 1: An illustration of how the Koch snowflake is constructed. [1, 2] The book brings up the Koch snowflake as an example of the initiator and generator pattern without explicitly giving the the L-system that produces it. However, if we take an L- system that operates on strings and assign to each character an operation using turtle graphics (a system consisting of an imaginary turtle with a pen with a location point (x, y) R 2 and an orientation angle α R. See [1, 7] for a more in-depth explanation), we can easily use L-systems to produce graphical patterns. Using the Koch snowflake example, notice that the equilateral triangle initiator can be produced with turtle graphics using the following sequence of steps: 1: Draw forward 1 unit 2: Turn right by 120 (i.e., 60 twice) 3: Draw forward 1 unit 4: Turn right by 120 (i.e., 60 twice) 5: Draw forward 1 unit 2

3 Meanwhile, the generator can be produced with turtle graphics using the following sequence of steps: 1: Draw forward 1 unit 2: Turn left by 60 3: Draw forward 1 unit 4: Turn right by 120 (i.e., 60 twice) 5: Draw forward 1 unit 6: Turn left by 60 7: Draw forward 1 unit This suggests that we can produce the Koch snowflake with the following L-system: V : {A,, +} ω: A A A P : {A A + A A + A} with turtle interpretations A: Draw forward 1 unit +: Turn left by 60 : Turn right by 60. Note that there are no productions with + or on their left-hand sides; it is assumed in this case that the identity productions + + and hold. The first few strings produced by this L-system are: 0: A A A 1: A+A A+A A+A A+A A+A A+A 2: A+A A+A+A+A A+A A+A A+A+A+A A+A A+A A+A+A+A A+A A+A A+A+A+A..., 3

4 We see that this does indeed produce the Koch snowflake. Figure 2: The starting state and the first 4 iterations of an L-system that generates the Koch snowflake, visualized with OpenSCAD. For this and for subsequent examples, I wrote a Java program to represent an arbitrary L- system, and then for each example, another Java program to interpret the L-system string and carry out the turtle s actions. Rather than having the Java program draw directly, I decided to have it produce an OpenSCAD file using the turtle s position at each step. More specifically, the OpenSCAD file creates an ordered list (p 1, p 2,..., p k ) of rectangular prisms at each of the points the turtle visits, and then produces the convex hull of prisms p i and p i+1 for all i k 1, which creates a wall along the turtle s path. For another example (taken from Wikipedia), this is an L-system to produce the Sierpinski triangle, another common example of a fractal. V : {F, G,, +} ω: F G G P : {F F G + F + F F, G GG} 4

5 with turtle interpretations F, G: Draw forward 1 unit +: Turn left by 120 : Turn right by 120. Figure 3: The 5th iteration of an L-system that generates the Sierpinski triangle [3], visualized with OpenSCAD. Figure 4: A 3D print I made from the model in the above figure. 5

6 3 Stochastic L-systems So far, all the examples of L-systems have belonged to the simplest class, deterministic context-free L-systems, or DOL-systems. Since they are deterministic, DOL-systems will always produce the exact same string every time their productions are applied on the starting axiom. This is uninteresting and unrealistic when trying to model real-life objects such as plants. However, stochastic (context-free) L-systems have for each symbol in their alphabet a set of possible productions, along with a probability distribution π : P (0, 1], which maps to each production a probability that it will be chosen in a derivation. (A stochastic L-system is thus formally be represented as a 4-tuple G = (V, ω, P, π). [1, 28]). For a simple example, consider the stochastic L-system V : {A, a} ω: A P : {A 0.75 AA, A 0.25 a} Every time a production with left-hand side A occurs, there is a 75% chance of applying the production A AA, and a 25% chance of applying the production A a. Since there are no listed productions with a on their left-hand side, it is assumed that the identity production a 1.00 a holds. Here s an example 10-step derivation of this system: 0: A 1: AA 2: AAa 3: AAAAa 4: AAaaAAa 5: AAaaaaaa 6: AAAAaaaaaa 7: AAAAAAAAaaaaaa 8: AAaaAAAAAAaAAaaaaaa 9: AAAAaaAAAAAAaAAAAaaaaaaaaa 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa I made up my own interpretation for this system as follows. When interpreting the ith character: A: Draw a red rectangular prism at the coordinate x = i a: Draw a yellow rectangular prism at the coordinate x = i 6

7 Figure 5: The interpretations in OpenSCAD of four different derivations (for n = 10) of the stochastic L-system given above. (Note that the viewport is the same in all four images.) Here s another example, taken from Prusinkiewicz and Lindenmayer ([1, 28]): V : {F, +,, [, ]} ω: F P : {F 0.33 F [+F ]F [ F ]F, F 0.33 F [+F ]F, F 0.34 F [ F ]F } Again, we use a (slightly more complicated) turtle interpretation. This time, the turtle also has a stack (a data structure where an item may only be pushed onto or popped off of the top, which means data enters the stack in a last-in, first-out manner.) F : Draw forward 1 unit +: Turn left by δ : Turn right by δ [ : Push the turtle s current position and angle onto the stack ] : Pop the stack and set the turtle s current position and angle to the values that were popped. 7

8 As a result of introducing the brackets to the L-system s alphabet, it can create branched structures that resemble simple trees: Figure 6: Five trees rendered in OpenSCAD, using the above L-system and interpretation for n = 5 iterations, and a change in angle of δ = 20. 8

9 Figure 7: A close-up view of the trees in the previous figure. 4 Context-sensitive L-systems Another variation of L-systems are known as context-sensitive L-systems; this means that the symbol on the left, on the right, or on both sides of the current symbol (the strict predecessor) determines which production to apply. For example, the production a l < a > a r χ means Apply the rule a χ if and only if the symbol a l is to the immediate left of a and a r is to the immediate right of a. [1, 30] Context-sensitive L-systems can model more complex phenomena than context-free L-systems. Prusinkiewicz and Lindenmayer given an example involving signal propagation: V : {b, a} ω: baaaaaaaa P : {b < a b, b a} Notice that this system contains both a context-sensitive and context-free production; in that case that they both have the same strict predecessor, the context-sensitive production takes precedence. [1, 31] This system produces the following strings: 9

10 0: baaaaaaaa 1: abaaaaaaa 2: aabaaaaaa 3: aaabaaaaa 4: aaaabaaaa 5: aaaaabaaa 6: aaaaaabaa 7: aaaaaaaba 8: aaaaaaaab 9: aaaaaaaaa After iteration 9, the system does not change further (i.e., only the identity production a a is ever applied). It is more complicated to implement context-sensitive L-systems with brackets, which are useful for generating tree structures. In this case, the symbols to the immediate left and right of the strict predecessor may not be the correct left and right contexts, and thus we may need to skip over an arbitrary number of symbols to find the correct contexts. [1, 32] 5 Future Work Although I feel that I accomplished a lot over the course of this project, there are many more ways I could explore L-systems in the future. I did not have the time to implement bracketed contextsensitive L-systems, and thus do not have any interesting graphical models to show involving them. There is also one more important class of L-systems, parametric L-systems, which come in both context-free and context-sensitive varieties. Parametric L-system strings consist of modules, which are made of letters A V with associated sequences of parameters a 1, a 2,..., a n R. [1, 41] Modules work somewhat like functions in programming languages; In the example taken from Wikipedia, we might have the production rule a(x, y) : x == 0 a(1, y + 1)b(2, 3), so that the example string a(0, 1)[b(0, 0)]a(1, 2) will become a(1, 2)b(2, 3)[b(0, 0)]a(1, 2). Parametric L-systems allow properties associated with turtle interpretations, such as line segment length and change in angle, to become part of the system itself. [3] 10

11 As 2-dimensional turtle interpretation of L-systems is possible, so is 3-D turtle interpretation. The turtle s location is represented by a point (x, y, z) R 3, and its heading is represented by a set of three mutually orthogonal vectors H (heading), L (left), and U (up). Rotations about these three vectors can be represented by 3 3 matrices. Since I took the course CSCI 383: Theory of Computation, I have been interested in systems capable of general computation, and it would be interesting to study L-systems from that angle. I briefly mentioned in the introduction how L-systems are more powerful than Chomsky grammars of the same class. I suspect that parametric context-sensitive L-systems may be as powerful as Turing machines, since non-parametric context-sensitive L-systems are already more powerful than context-sensitive grammars, which are as powerful as nondeterministic linear-bounded automata (nondeterministic Turing machines with their tape limited to the length of their input) [2, 258]. A construction that converts an arbitrary Turing machine to a parametric context-sensitive L-system (and vice versa), may be something possible to study in the future. References [1] Prusinkiewicz, Przemyslaw, and Aristid Lindenmayer. The Algorithmic Beauty of Plants. New York, NY: Springer-Verlag, Print. [2] Kozen, Dexter C. Automata and Computability. New York, NY: Springer-Verlag, Print. [3] L-system. L-system. Wikipedia: The Free Encyclopedia, 25 Feb Web. 23 Mar

Fractals and L- Systems

Fractals and L- Systems Fractals and L- Systems Sanyam Gupta January 26, 2018 1 Lindenmayer systems Have you ever wondered, how to formulate a mathematical equation for the plant in your verandah or garden? The nature produces

More information

12.2 Plants. CS Dept, UK

12.2 Plants. CS Dept, UK 1 12.2 Plants - modeling and animation of plants represents an interesting and challenging area - exhibit arbitrary complexity while possessing a constrained branching structure - grow from a single source

More information

CS 4300 Computer Graphics. Prof. Harriet Fell Fall 2012 Lecture 28 November 8, 2012

CS 4300 Computer Graphics. Prof. Harriet Fell Fall 2012 Lecture 28 November 8, 2012 CS 4300 Computer Graphics Prof. Harriet Fell Fall 2012 Lecture 28 November 8, 2012 1 Today s Topics Fractals Mandelbrot Set Julia Sets L-Systems 2 Fractals The term fractal was coined in 1975 by Benoît

More information

Computer Science 173 Fall, Project 3: Lindenmayer Systems Due in class on Monday, September 28

Computer Science 173 Fall, Project 3: Lindenmayer Systems Due in class on Monday, September 28 Computer Science 173 all, 2015 Project 3: Lindenmayer Systems Due in class on Monday, September 28 Work on this project with a partner. Create a new directory for this project, copy the Makefile from the

More information

Topics. Recursive tree models. Procedural approach L-systems. Image-based approach. Billboarding

Topics. Recursive tree models. Procedural approach L-systems. Image-based approach. Billboarding Plant Modeling Topics Recursive tree models Billboarding Procedural approach L-systems Image-based approach Tree Model The structure of a tree Trunk (linkage) Branches (linkage, child of trunk node) Leaves/Buds/flowers/fruit

More information

Developmental Systems

Developmental Systems Developmental Systems 1 Biological systems Early development of the Drosophila fly http://flybase.bio.indiana.edu dorsal view lateral view 2 Biological systems Early development of Drosophila [Slack 2006]

More information

Imaginary Gardens A Model for Imitating Plant Growth

Imaginary Gardens A Model for Imitating Plant Growth Imaginary Gardens A Model for Imitating Plant Growth Anne M. Burns Mathematics Department Long Island University, C.W. Post Campus Brookville, NY 11548, USA Email: aburns@liu.edu Abstract A simplified

More information

Genetic L-System Programming: Breeding and Evolving Artificial Flowers with Mathematica

Genetic L-System Programming: Breeding and Evolving Artificial Flowers with Mathematica Genetic L-System Programming: Breeding and Evolving Artificial Flowers with Mathematica C. Jacob, jacob@informatik.uni-erlangen.de, Chair of Programming Languages, Department of Computer Science, University

More information

CSE 167: Lecture #15: Procedural Modeling. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Lecture #15: Procedural Modeling. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture #15: Procedural Modeling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Monday, Nov 26: Midterm review in

More information

Parametric L-Systems and borderline fractals

Parametric L-Systems and borderline fractals 1 Parametric L-Systems and borderline fractals A preprint version of a Mathematical graphics column from Mathematica in Education and Research. Mark McClure Department of Mathematics University of North

More information

L-Systems. Simulation of development and growth

L-Systems. Simulation of development and growth L-Systems Simulation of development and growth The algorithmic beauty of plants L-Systems The central concept of L-Systems is that of rewriting A classical example of an object defined using rewriting

More information

Koch-Like Fractal Images

Koch-Like Fractal Images Bridges Finland Conference Proceedings Koch-Like Fractal Images Vincent J. Matsko Department of Mathematics University of San Francisco vince.matsko@gmail.com Abstract The Koch snowflake is defined by

More information

Novel Approach of Modeling Self Similar Objects using Parallel String Rewriting Methods through Combined L-System Techniques

Novel Approach of Modeling Self Similar Objects using Parallel String Rewriting Methods through Combined L-System Techniques International Journal of Information & Computation Technology. ISSN 0974-2255 Volume 2, Number 1 (2012), pp. 1-12 International Research Publications House http://www. ripublication.com Novel Approach

More information

A New Vision of Fractal Geometry with Triangulation Algorithm

A New Vision of Fractal Geometry with Triangulation Algorithm A New Vision of Fractal Geometry with Triangulation Algorithm Yasser M. Abd El-Latif, Fatma S.Abousaleh, and Daoud S. S. Abstract L-system is a tool commonly used for modeling and simulating the growth

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Dynamically evolving L-system generated plant visualizations Name: Sander Ruijter S1415212 Date: 25/08/2016 1st supervisor: Dr. M.T.M. Emmerich 2nd supervisor: Dr.

More information

1/16. Emergence in Artificial Life. Sebastian Marius Kirsch Back Close

1/16. Emergence in Artificial Life. Sebastian Marius Kirsch Back Close 1/16 Emergence in Artificial Life Sebastian Marius Kirsch skirsch@moebius.inka.de 2/16 Artificial Life not life as it is, but life as it could be very recent field of science first a-life conference in

More information

Journal of Applied Mathematics and Computation (JAMC), 2018, 2(1), 13-20

Journal of Applied Mathematics and Computation (JAMC), 2018, 2(1), 13-20 Journal of Applied Mathematics and Computation (JAMC), 2018, 2(1), 13-20 http://www.hillpublisher.org/journal/jamc ISSN Online:2576-0645 ISSN Print:2576-0653 Generation of Fractal Vessel Structure Functions

More information

CHAPTER-3 STUDY OF GRAMMAR TREE USING L-SYSTEM. The central concept of L-systems is that of rewriting. In general, rewriting is a

CHAPTER-3 STUDY OF GRAMMAR TREE USING L-SYSTEM. The central concept of L-systems is that of rewriting. In general, rewriting is a CHAPTER-3 39 CHAPTER-3 STUDY OF GRAMMAR TREE USING L-SYSTEM Generation is a needful solution to render fractal objects like trees that have a complex geometry characterized by a huge quantity of details..this

More information

CSE 167: Lecture #17: Procedural Modeling. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

CSE 167: Lecture #17: Procedural Modeling. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011 CSE 167: Introduction to Computer Graphics Lecture #17: Procedural Modeling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011 Announcements Important dates: Final project outline

More information

Procedural modeling and shadow mapping. Computer Graphics CSE 167 Lecture 15

Procedural modeling and shadow mapping. Computer Graphics CSE 167 Lecture 15 Procedural modeling and shadow mapping Computer Graphics CSE 167 Lecture 15 CSE 167: Computer graphics Procedural modeling Height fields Fractals L systems Shape grammar Shadow mapping Based on slides

More information

Constructive Solid Geometry and Procedural Modeling. Stelian Coros

Constructive Solid Geometry and Procedural Modeling. Stelian Coros Constructive Solid Geometry and Procedural Modeling Stelian Coros Somewhat unrelated Schedule for presentations February 3 5 10 12 17 19 24 26 March 3 5 10 12 17 19 24 26 30 April 2 7 9 14 16 21 23 28

More information

Modeling Leaf Shapes Using L-systems and Genetic Algorithms

Modeling Leaf Shapes Using L-systems and Genetic Algorithms Modeling Leaf Shapes Using L-systems and Genetic Algorithms Yodthong Rodkaew Intelligent System Lab (ISL), Department of Computer Engineering, Faculty of Engineering, Chulalongkorn University 43718130@student.chula.ac.th

More information

Graphical modeling using L-systems

Graphical modeling using L-systems Chapter 1 Graphical modeling using L-systems Lindenmayer systems or L-systems for short were conceived as a mathematical theory of plant development [82]. Originally, they did not include enough detail

More information

Generate Leaf Shapes using L-system and Genetic Algorithms

Generate Leaf Shapes using L-system and Genetic Algorithms Generate Leaf Shapes using L-system and Genetic Algorithms Yodthong Rodkaew 1, Suchada Siripant 2, Chidchanok Lursinsap 3 and Prabhas Chongstitvatana 4 Department of Computer Engineering Faculty of Engineering

More information

L-Systems and Affine Transformations

L-Systems and Affine Transformations L-Systems and Affine Transformations Moreno Marzolla Dip. di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright 2014, Moreno Marzolla, Università di

More information

Fun with Fractals Saturday Morning Math Group

Fun with Fractals Saturday Morning Math Group Fun with Fractals Saturday Morning Math Group Alistair Windsor Fractals Fractals are amazingly complicated patterns often produced by very simple processes. We will look at two different types of fractals

More information

Implementing Lindenmayer Systems Simon Scorer BSc Computer Science & Mathematics (International) 2004/2005

Implementing Lindenmayer Systems Simon Scorer BSc Computer Science & Mathematics (International) 2004/2005 Implementing Lindenmayer Systems Simon Scorer BSc Computer Science & Mathematics (International) 2004/2005 The candidate confirms that the work submitted is their own and the appropriate credit has been

More information

TREE FAÇADES. Generative Modelling with an Axial Branch Rewriting System

TREE FAÇADES. Generative Modelling with an Axial Branch Rewriting System C. M. Herr, N. Gu, S. Roudavski, M. A. Schnabel, Circuit Bending, Breaking and Mending: Proceedings of the 16th International Conference on Computer-Aided Architectural Design Research in Asia, 175-184.

More information

8 Special Models for Animation. Chapter 8. Special Models for Animation. Department of Computer Science and Engineering 8-1

8 Special Models for Animation. Chapter 8. Special Models for Animation. Department of Computer Science and Engineering 8-1 Special Models for Animation 8-1 L-Systems 8-2 L-Systems Branching Structures Botany Display geometric substitution turtle graphics Animating plants, animals 8-3 Plant examples http://algorithmicbotany.org/papers/#abop

More information

Turtle Graphics and L-systems Informatics 1 Functional Programming: Tutorial 7

Turtle Graphics and L-systems Informatics 1 Functional Programming: Tutorial 7 Turtle Graphics and L-systems Informatics 1 Functional Programming: Tutorial 7 Heijltjes, Wadler Due: The tutorial of week 9 (20/21 Nov.) Reading assignment: Chapters 15 17 (pp. 280 382) Please attempt

More information

biologically-inspired computing lecture 7 Informatics luis rocha 2015 biologically Inspired computing INDIANA UNIVERSITY

biologically-inspired computing lecture 7 Informatics luis rocha 2015 biologically Inspired computing INDIANA UNIVERSITY lecture 7 -inspired Sections I485/H400 course outlook Assignments: 35% Students will complete 4/5 assignments based on algorithms presented in class Lab meets in I1 (West) 109 on Lab Wednesdays Lab 0 :

More information

Animating Plant Growth in L-System By Parametric Functional Symbols

Animating Plant Growth in L-System By Parametric Functional Symbols Animating Plant Growth in L-System By Parametric Functional Symbols Somporn Chuai-aree, Suchada Siripant, and Chidchanok Lursinsap Advanced Virtual and Intelligent Computing Center (AVIC) Department of

More information

Genetic L-System Programming

Genetic L-System Programming Genetic L-System Programming Christian Jacob Chair of Programming Languages, Department of Computer Science, University of Erlangen-Nürnberg, Martens-Str. 3, D-958 Erlangen, Germany email: jacob@informatik.uni-erlangen.de

More information

Do not write in this area. Style (10) TOTAL. Maximum possible points: 30

Do not write in this area. Style (10) TOTAL. Maximum possible points: 30 Name: Student ID: Lab Instructor: Borja Sotomayor Impl (20) Do not write in this area Style (10) TOTAL Maximum possible points: 30 This is your individual grading sheet. You must hand this sheet along

More information

ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES *

ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES * ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES * Pradip Peter Dey, Mohammad Amin, Bhaskar Raj Sinha and Alireza Farahani National University 3678 Aero Court San Diego, CA 92123 {pdey, mamin,

More information

Theory of Computation Dr. Weiss Extra Practice Exam Solutions

Theory of Computation Dr. Weiss Extra Practice Exam Solutions Name: of 7 Theory of Computation Dr. Weiss Extra Practice Exam Solutions Directions: Answer the questions as well as you can. Partial credit will be given, so show your work where appropriate. Try to be

More information

CSE 167: Introduction to Computer Graphics Lecture #16: Procedural Modeling

CSE 167: Introduction to Computer Graphics Lecture #16: Procedural Modeling CSE 167: Introduction to Computer Graphics Lecture #16: Procedural Modeling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Reduced office hours today and tomorrow

More information

Representations of Palindromic, Prime and Number Patterns

Representations of Palindromic, Prime and Number Patterns Representations of Palindromic, Prime and Number Patterns Inder J. Taneja 1 Abstract This work brings representations of palindromic and number patterns in terms of single letter a. Some examples of prime

More information

A Characterization of the Chomsky Hierarchy by String Turing Machines

A Characterization of the Chomsky Hierarchy by String Turing Machines A Characterization of the Chomsky Hierarchy by String Turing Machines Hans W. Lang University of Applied Sciences, Flensburg, Germany Abstract A string Turing machine is a variant of a Turing machine designed

More information

Theory of Programming Languages COMP360

Theory of Programming Languages COMP360 Theory of Programming Languages COMP360 Sometimes it is the people no one imagines anything of, who do the things that no one can imagine Alan Turing What can be computed? Before people even built computers,

More information

CSC 470 Computer Graphics. Fractals

CSC 470 Computer Graphics. Fractals CSC 47 Computer Graphics Fractals 1 This Week Approaches to Infinity Fractals and Self-Similarity Similarity Iterative Function Systems Lindenmayer Systems Curves Natural Images (trees, landscapes..) Introduction

More information

More modelling. Ruth Aylett

More modelling. Ruth Aylett More modelling Ruth Aylett Overview The great outdoors: fractals L-systems City Models Procedural generation of models How to make models.. Interactive modeling Human with a software modeling tool Scanning

More information

Improving the Process of Plant Modeling: The L+C Modeling Language UNIVERSITY OF CALGARY. Radosław Mateusz Karwowski A THESIS

Improving the Process of Plant Modeling: The L+C Modeling Language UNIVERSITY OF CALGARY. Radosław Mateusz Karwowski A THESIS UNIVERSITY OF CALGARY Improving the Process of Plant Modeling: The L+C Modeling Language by Radosław Mateusz Karwowski A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES IN PARTIAL FULFILMENT OF THE

More information

Theory of Computations Spring 2016 Practice Final Exam Solutions

Theory of Computations Spring 2016 Practice Final Exam Solutions 1 of 8 Theory of Computations Spring 2016 Practice Final Exam Solutions Name: Directions: Answer the questions as well as you can. Partial credit will be given, so show your work where appropriate. Try

More information

Fractals & Iterative Function Systems

Fractals & Iterative Function Systems CS 543: Computer Graphics Fractals & Iterative Function Systems Robert W. Lindeman Associate Professor Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu (with lots of help from

More information

Fractals. Fractals. Beautiful designs of infinite structure and complexity Qualities of Fractals:

Fractals. Fractals. Beautiful designs of infinite structure and complexity Qualities of Fractals: Fractals Fractals Beautiful designs of infinite structure and complexity Qualities of Fractals: Fractional dimension Self similarity Complex structure at all scales Chaotic dynamical behavior Simple generation

More information

Fractals: Self-Similarity and Fractal Dimension Math 198, Spring 2013

Fractals: Self-Similarity and Fractal Dimension Math 198, Spring 2013 Fractals: Self-Similarity and Fractal Dimension Math 198, Spring 2013 Background Fractal geometry is one of the most important developments in mathematics in the second half of the 20th century. Fractals

More information

Natural Generation of Realistic Trees. Craig Bonathan

Natural Generation of Realistic Trees. Craig Bonathan Craig Bonathan Bachelor of Science in Computer Science with Honours The University of Bath April 2009 This dissertation may be made available for consultation within the University Library and may be photocopied

More information

CS402 - Theory of Automata Glossary By

CS402 - Theory of Automata Glossary By CS402 - Theory of Automata Glossary By Acyclic Graph : A directed graph is said to be acyclic if it contains no cycles. Algorithm : A detailed and unambiguous sequence of instructions that describes how

More information

6.045J/18.400J: Automata, Computability and Complexity. Practice Quiz 2

6.045J/18.400J: Automata, Computability and Complexity. Practice Quiz 2 6.045J/18.400J: Automata, omputability and omplexity March 21, 2007 Practice Quiz 2 Prof. Nancy Lynch Elena Grigorescu Please write your name in the upper corner of each page. INFORMATION ABOUT QUIZ 2:

More information

Chapter 5. Models of plant organs. 5.1 Predefined surfaces

Chapter 5. Models of plant organs. 5.1 Predefined surfaces Chapter 5 Models of plant organs Many concepts presented in the previous chapters were illustrated using realistic images, but the modeling techniques for leaves and petals have not been described yet.

More information

11. Recursion. n (n 1)!, otherwise. Mathematical Recursion. Recursion in Java: Infinite Recursion. 1, if n 1. n! =

11. Recursion. n (n 1)!, otherwise. Mathematical Recursion. Recursion in Java: Infinite Recursion. 1, if n 1. n! = Mathematical Recursion 11. Recursion Mathematical Recursion, Termination, Call Stack, Examples, Recursion vs. Iteration, Lindenmayer Systems Many mathematical functions can be naturally defined recursively.

More information

12. Recursion. n (n 1)!, otherwise. Educational Objectives. Mathematical Recursion. Recursion in Java: 1, if n 1. n! =

12. Recursion. n (n 1)!, otherwise. Educational Objectives. Mathematical Recursion. Recursion in Java: 1, if n 1. n! = Educational Objectives You understand how a solution to a recursive problem can be implemented in Java. You understand how methods are being executed in an execution stack. 12. Recursion Mathematical Recursion,

More information

CS39N The Beauty and Joy of Computing

CS39N The Beauty and Joy of Computing CS39N The Beauty and Joy of Computing UC Berkeley Computer Science Lecturer SOE Dan Garcia Lecture #11 Recursion III 2009-11-09 It has been a challenge to power electronic components implanted within a

More information

Smooth Animation for Plant Growth Using Time Embedded Component and Growth Function

Smooth Animation for Plant Growth Using Time Embedded Component and Growth Function Smooth Animation for Plant Growth Using Time Embedded Component and Growth Function Somporn Chuai-Aree 1, Willi Jäger 1, Hans Georg Bock 1, Suchada Siripant 2 1 Interdisciplinary Center for Scientific

More information

Copyright 2009 Pearson Education, Inc. Chapter 9 Section 7 - Slide 1 AND

Copyright 2009 Pearson Education, Inc. Chapter 9 Section 7 - Slide 1 AND Copyright 2009 Pearson Education, Inc. Chapter 9 Section 7 - Slide 1 AND Chapter 9 Geometry Copyright 2009 Pearson Education, Inc. Chapter 9 Section 7 - Slide 2 WHAT YOU WILL LEARN Transformational geometry,

More information

Communication Complexity and Parallel Computing

Communication Complexity and Parallel Computing Juraj Hromkovic Communication Complexity and Parallel Computing With 40 Figures Springer Table of Contents 1 Introduction 1 1.1 Motivation and Aims 1 1.2 Concept and Organization 4 1.3 How to Read the

More information

Theory and Compiling COMP360

Theory and Compiling COMP360 Theory and Compiling COMP360 It has been said that man is a rational animal. All my life I have been searching for evidence which could support this. Bertrand Russell Reading Read sections 2.1 3.2 in the

More information

From Theorem 8.5, page 223, we have that the intersection of a context-free language with a regular language is context-free. Therefore, the language

From Theorem 8.5, page 223, we have that the intersection of a context-free language with a regular language is context-free. Therefore, the language CSCI 2400 Models of Computation, Section 3 Solutions to Practice Final Exam Here are solutions to the practice final exam. For some problems some details are missing for brevity. You should write complete

More information

Plant synthesis Due: Monday, November 17

Plant synthesis Due: Monday, November 17 CMSC 23700 Introduction to Computer Graphics Project 2 Fall 2003 October 30 Plant synthesis Due: Monday, November 17 1 Introduction One of the xenobiology groups at NASA has finally found alien DNA hanging

More information

: Intro Programming for Scientists and Engineers Assignment 1: Turtle Graphics

: Intro Programming for Scientists and Engineers Assignment 1: Turtle Graphics Assignment 1: Turtle Graphics Page 1 600.112: Intro Programming for Scientists and Engineers Assignment 1: Turtle Graphics Peter H. Fröhlich phf@cs.jhu.edu Joanne Selinski joanne@cs.jhu.edu Due Date: Wednesdays

More information

Decidable Problems. We examine the problems for which there is an algorithm.

Decidable Problems. We examine the problems for which there is an algorithm. Decidable Problems We examine the problems for which there is an algorithm. Decidable Problems A problem asks a yes/no question about some input. The problem is decidable if there is a program that always

More information

CREATION OF THE TREE MODEL ADAPTING TO ENVIRONMENT

CREATION OF THE TREE MODEL ADAPTING TO ENVIRONMENT CREATION OF THE TREE MODEL ADAPTING TO ENVIRONMENT Ryota Ueno Yoshio Ohno {ryota ohno}@on.ics.keio.ac.jp Graduate School of Science and Technology, Keio University 3-14-1 Hiyoshi, Kohoku-ku Yokohama 223-8522

More information

L-system Implementation of Multiresolution Curves Based on Cubic B-Spline Subdivision

L-system Implementation of Multiresolution Curves Based on Cubic B-Spline Subdivision L-system Implementation of Multiresolution Curves Based on Cubic B-Spline Subdivision K. Poon, L. Bateman, R. Karwowski, P. Prusinkiewicz and F. Samavati University of Calgary Abstract It has been previously

More information

Lecture 3: Art Gallery Problems and Polygon Triangulation

Lecture 3: Art Gallery Problems and Polygon Triangulation EECS 396/496: Computational Geometry Fall 2017 Lecture 3: Art Gallery Problems and Polygon Triangulation Lecturer: Huck Bennett In this lecture, we study the problem of guarding an art gallery (specified

More information

ECS 120 Lesson 16 Turing Machines, Pt. 2

ECS 120 Lesson 16 Turing Machines, Pt. 2 ECS 120 Lesson 16 Turing Machines, Pt. 2 Oliver Kreylos Friday, May 4th, 2001 In the last lesson, we looked at Turing Machines, their differences to finite state machines and pushdown automata, and their

More information

Languages and Compilers

Languages and Compilers Principles of Software Engineering and Operational Systems Languages and Compilers SDAGE: Level I 2012-13 3. Formal Languages, Grammars and Automata Dr Valery Adzhiev vadzhiev@bournemouth.ac.uk Office:

More information

Final Exam 2, CS154. April 25, 2010

Final Exam 2, CS154. April 25, 2010 inal Exam 2, CS154 April 25, 2010 Exam rules. he exam is open book and open notes you can use any printed or handwritten material. However, no electronic devices are allowed. Anything with an on-off switch

More information

Reflection in the Chomsky Hierarchy

Reflection in the Chomsky Hierarchy Reflection in the Chomsky Hierarchy Henk Barendregt Venanzio Capretta Dexter Kozen 1 Introduction We investigate which classes of formal languages in the Chomsky hierarchy are reflexive, that is, contain

More information

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation Chapter 7 Introduction to Matrices This chapter introduces the theory and application of matrices. It is divided into two main sections. Section 7.1 discusses some of the basic properties and operations

More information

Scope and Sequence for the New Jersey Core Curriculum Content Standards

Scope and Sequence for the New Jersey Core Curriculum Content Standards Scope and Sequence for the New Jersey Core Curriculum Content Standards The following chart provides an overview of where within Prentice Hall Course 3 Mathematics each of the Cumulative Progress Indicators

More information

Parallel and perspective projections such as used in representing 3d images.

Parallel and perspective projections such as used in representing 3d images. Chapter 5 Rotations and projections In this chapter we discuss Rotations Parallel and perspective projections such as used in representing 3d images. Using coordinates and matrices, parallel projections

More information

Directed Graph for Finite-State Machine

Directed Graph for Finite-State Machine Directed Graph for Finite-State Machine Tito D. Kesumo Siregar (13511018) 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

More information

CS 441G Fall 2018 Exam 1 Matching: LETTER

CS 441G Fall 2018 Exam 1 Matching: LETTER CS 441G Fall 2018 Exam 1 Matching: match the best term from the following list to its definition by writing the LETTER of the term in the blank to the left of the definition. All 31 definitions are given

More information

3. Syntax Analysis. Andrea Polini. Formal Languages and Compilers Master in Computer Science University of Camerino

3. Syntax Analysis. Andrea Polini. Formal Languages and Compilers Master in Computer Science University of Camerino 3. Syntax Analysis Andrea Polini Formal Languages and Compilers Master in Computer Science University of Camerino (Formal Languages and Compilers) 3. Syntax Analysis CS@UNICAM 1 / 54 Syntax Analysis: the

More information

Generation of 3D Fractal Images for Mandelbrot and Julia Sets

Generation of 3D Fractal Images for Mandelbrot and Julia Sets 178 Generation of 3D Fractal Images for Mandelbrot and Julia Sets Bulusu Rama #, Jibitesh Mishra * # Department of Computer Science and Engineering, MLR Institute of Technology Hyderabad, India 1 rama_bulusu@yahoo.com

More information

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer The exam consists of 10 questions. There are 2 points per question for a total of 20 points. You

More information

Logic, Algorithms and Data Structures Recursion and Stacks. By: Jonas Öberg

Logic, Algorithms and Data Structures Recursion and Stacks. By: Jonas Öberg Logic, Algorithms and Data Structures Recursion and Stacks M1 By: Jonas Öberg What is recursion? Quick answer: A recursive function is a function which uses itself Example We define by the use of f( n

More information

Grade 6 Math Circles. Shapeshifting

Grade 6 Math Circles. Shapeshifting Faculty of Mathematics Waterloo, Ontario N2L 3G1 Plotting Grade 6 Math Circles October 24/25, 2017 Shapeshifting Before we begin today, we are going to quickly go over how to plot points. Centre for Education

More information

CGT 511 Procedural Methods

CGT 511 Procedural Methods 3D object representation CGT 511 Procedural Methods Volume representation Voxels 3D object representation Boundary representation Wire frame Procedural Fractals Bedřich Beneš, Ph.D. Purdue University Department

More information

pp Variants of Turing Machines (Sec. 3.2)

pp Variants of Turing Machines (Sec. 3.2) pp. 176-176-182. Variants of Turing Machines (Sec. 3.2) Remember: a language is Turing recognizable if some TM accepts it. Adding features may simplify programmability but DO NOT affect what a TM can compute.

More information

Turing Machine Languages

Turing Machine Languages Turing Machine Languages Based on Chapters 23-24-25 of (Cohen 1997) Introduction A language L over alphabet is called recursively enumerable (r.e.) if there is a Turing Machine T that accepts every word

More information

Repositorio Institucional de la Universidad Autónoma de Madrid.

Repositorio Institucional de la Universidad Autónoma de Madrid. Repositorio Institucional de la Universidad Autónoma de Madrid https://repositorio.uam.es Esta es la versión de autor del artículo publicado en: This is an author produced version of a paper published

More information

In this lesson, students build fractals and track the growth of fractal measurements using tables and equations. Enduring Understanding

In this lesson, students build fractals and track the growth of fractal measurements using tables and equations. Enduring Understanding LessonTitle: Fractal Functions Alg 5.8 Utah State Core Standard and Indicators Algebra Standards 2, 4 Process Standards 1-5 Summary In this lesson, students build fractals and track the growth of fractal

More information

A Double-Minded Fractal

A Double-Minded Fractal A Double-Minded Fractal Andrew J. Simoson, King College, Bristol, TN 376, ajsimoso@king.edu The fractal in Figure 1 appears to say Yes at the topmost level, then No at the secondary level, and Yes at the

More information

Lindenmayer systems, fractals, and their mathematics

Lindenmayer systems, fractals, and their mathematics Lindenmayer systems, fractals, and their mathematics Alasdair McAndrew Alasdair.McAndrew@vu.edu.au College of Engineering and Science Victoria University PO Box 14428, Melbourne, Victoria 8001, Australia

More information

Introduction to Computers & Programming

Introduction to Computers & Programming 16.070 Introduction to Computers & Programming Theory of computation 5: Reducibility, Turing machines Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT States and transition function State control A finite

More information

Mathematics 350 Section 6.3 Introduction to Fractals

Mathematics 350 Section 6.3 Introduction to Fractals Mathematics 350 Section 6.3 Introduction to Fractals A fractal is generally "a rough or fragmented geometric shape that is self-similar, which means it can be split into parts, each of which is (at least

More information

Finite Automata. Dr. Nadeem Akhtar. Assistant Professor Department of Computer Science & IT The Islamia University of Bahawalpur

Finite Automata. Dr. Nadeem Akhtar. Assistant Professor Department of Computer Science & IT The Islamia University of Bahawalpur Finite Automata Dr. Nadeem Akhtar Assistant Professor Department of Computer Science & IT The Islamia University of Bahawalpur PhD Laboratory IRISA-UBS University of South Brittany European University

More information

Does it Look Square? Hexagonal Bipyramids, Triangular Antiprismoids, and their Fractals

Does it Look Square? Hexagonal Bipyramids, Triangular Antiprismoids, and their Fractals Does it Look Square? Hexagonal Bipyramids, Triangular Antiprismoids, and their Fractals Hideki Tsuiki Graduate School of Human and Environmental Studies Kyoto University Yoshida-Nihonmatsu, Kyoto 606-8501,

More information

Fractals and Solid Modeling

Fractals and Solid Modeling EUROGRAPHICS '92 / A. Kilgour and L. Kjelldahl (Guest Editors), Blackwell Publishers Eurographics Association, 1992 Volume 11, (1992), number 3 Fractals and Solid Modeling Eduard Gröller Technische Universität

More information

CS5371 Theory of Computation. Lecture 8: Automata Theory VI (PDA, PDA = CFG)

CS5371 Theory of Computation. Lecture 8: Automata Theory VI (PDA, PDA = CFG) CS5371 Theory of Computation Lecture 8: Automata Theory VI (PDA, PDA = CFG) Objectives Introduce Pushdown Automaton (PDA) Show that PDA = CFG In terms of descriptive power Pushdown Automaton (PDA) Roughly

More information

Space Filling: A new algorithm for procedural creation of game assets

Space Filling: A new algorithm for procedural creation of game assets Space Filling: A new algorithm for procedural creation of game assets Paul Bourke ivec@uwa, The University of Western Australia, 35 Stirling Hwy, Crawley, Perth, West Australia 6009. Email: paul.bourke@uwa.edu.au

More information

We can create PDAs with multiple stacks. At each step we look at the current state, the current input symbol, and the top of each stack.

We can create PDAs with multiple stacks. At each step we look at the current state, the current input symbol, and the top of each stack. Other Automata We can create PDAs with multiple stacks. At each step we look at the current state, the current input symbol, and the top of each stack. From all of this information we decide what state

More information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 1 Graphics Systems and Models 3 ?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

More information

CT32 COMPUTER NETWORKS DEC 2015

CT32 COMPUTER NETWORKS DEC 2015 Q.2 a. Using the principle of mathematical induction, prove that (10 (2n-1) +1) is divisible by 11 for all n N (8) Let P(n): (10 (2n-1) +1) is divisible by 11 For n = 1, the given expression becomes (10

More information

PDA s. and Formal Languages. Automata Theory CS 573. Outline of equivalence of PDA s and CFG s. (see Theorem 5.3)

PDA s. and Formal Languages. Automata Theory CS 573. Outline of equivalence of PDA s and CFG s. (see Theorem 5.3) CS 573 Automata Theory and Formal Languages Professor Leslie Lander Lecture # 20 November 13, 2000 Greibach Normal Form (GNF) Sheila Greibach s normal form (GNF) for a CFG is one where EVERY production

More information

From Modeling Foliage with L-systems to Digital Art

From Modeling Foliage with L-systems to Digital Art From Modeling Foliage with L-systems to Digital Art Glyn M. Rimmington glyn.rimmington@wichita.edu Mara Alagic mara.alagic@wichita.edu Wichita State University 1845 N Fairmount Wichita, Kansas, 67260-0142

More information

A Visual and Interactive Automata Theory Course with JFLAP 4.0

A Visual and Interactive Automata Theory Course with JFLAP 4.0 A Visual and Interactive Automata Theory Course with JFLAP 4.0 Ryan Cavalcante Duke University Durham, NC 27708-0129 Thomas Finley Cornell University Ithaca, NY 14853-7501 Susan Rodger Duke University

More information

Procedures: Algorithms and Abstraction

Procedures: Algorithms and Abstraction Procedures: Algorithms and Abstraction 5 5.1 Objectives After completing this module, a student should be able to: Read and understand simple NetLogo models. Make changes to NetLogo procedures and predict

More information