LINDFERN Lindenmayer Systems in VPython Nick Langhammer.

Slides:



Advertisements
Similar presentations
A question from last class: construct the predictive parsing table for this grammar: S->i E t S e S | i E t S | a E -> B.
Advertisements

This terms course Last term we both worked on learning 2 things –Processing –The concepts of graphics etc. This term will focus more on the basic concepts.
Turtle Graphics Eric Roberts Nifty Assignments SIGCSE 2013 March 9, 2013 This is not your typical assignmentCeux ne sont pas vos devoirs typiques.
JYC: CSM17 BioinformaticsCSM17 Week 8: Simulations (part 2): plant morphology sea shells (marine molluscs) fractals virtual reality –Lindenmayer systems.
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.
Chapter 16 Recursion: Another Control Mechanism. "The Practice of Computing Using Python", Punch & Enbody, Copyright © 2013 Pearson Education, Inc. a.
SCRIPTING AND CONSTRUCTION THREE DIMENSIONAL TREE By Ryan Pierce and Marco Rathjen.
So far we’ve done… Dynamics and chaos Thermodynamics, statistical mechanics, entropy, information Computation, Turing machines, halting problem Evolution,
L systems (Aristid Lindenmayer)
Stacks.
L-systems Presented by Luv Kohli COMP258 October 30, 2002 Images copyright © 1992 D. Fowler, P. Prusinkiewicz, and J. Battjes.
Procedural Modeling L-Systems Procedural Terrain Procedural Behavior Based on the slides from Spring 2007.
Simulating Trees with Fractals and L-Systems Eric M. Upchurch CS 579.
-1- Programming Project #1 (Moldels of Computation, Spring, 2001) Due: Section 1: March 1 (Thursday) Section 2 : March 2 (Friday) We know that formal languages.
1 Introduction to Stacks What is a Stack? Stack implementation using array. Stack implementation using linked list. Applications of Stacks.
CHAPTER 6 Stacks. 2 A stack is a linear collection whose elements are added and removed from one end The last element to be put on the stack is the first.
CS39N The Beauty and Joy of Computing Lecture #11 Recursion III It has been a challenge to power electronic components implanted within a body.
CS5371 Theory of Computation Lecture 8: Automata Theory VI (PDA, PDA = CFG)
Liang, Introduction to Java Programming, Tenth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 20 Lists, Stacks, Queues, and Priority.
LANGUAGE AND GRAMMARS © University of LiverpoolCOMP 319slide 1.
Synthetic Topiary. Premislaw Prunsinkiewicz (Prof. P) Mark James Radomír Měch.
Plant Modeling using L-Grammars Andreea Francu - Department of Electrical and Computer Engineering.
Chapter 19 Java Data Structures
Approaches To Infinity. Fractals Self Similarity – They appear the same at every scale, no matter how much enlarged.
Recall that a square matrix is one in which there are the same amount of rows as columns. A square matrix must exist in order to evaluate a determinant.
Morphogenesis and Lindenmayer Systems (L-systems) Gabriela Ochoa
IlliDOL: A Framework for Exploration of L- Systems in Three Dimensions Vilas Dhar Math 198 Spring 2003.
XL as an extension of the L-system formalism Tutorial "Modelling Plants with GroIMP", Cottbus, March 11-12, 2008 Winfried Kurth Ole Kniemeyer Reinhard.
Microsoft® Small Basic
Computing & Information Sciences Kansas State University Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 37 of 42 Monday, 28 April.
Dragon Curve Drawn in Project 4… How to generate the string of drawing commands? How does the dragon curve come about? 1.
by Chris Brown under Prof. Susan Rodger Duke University June 2012
Evaluation of Expressions Instructor : Prof. Jyh-Shing Roger Jang Designer : Shao-Huan Wang The ideas are reference to the textbook “Fundamentals of Data.
Collections F The limitations of arrays F Java Collection Framework hierarchy  Use the Iterator interface to traverse a collection  Set interface, HashSet,
Modelling of Ecosystems by Tools from Computer Science Summer School at Czech University of Life Sciences, Prague, September, 2013 Winfried Kurth.
TECH 104 – Technical Graphics Communication Week 13: 3D Modeling Basics.
L-Systems and Procedural Plants CSE 3541 Matt Boggus.
College of Computer and Information Science, Northeastern UniversityOctober 13, CS U540 Computer Graphics Prof. Harriet Fell Spring 2007 Lecture.
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.
L-Systems Lindenmayer Systems Prusinkiewicz and Lindenmayer
Summer School „Modelling and Simulation with GroIMP“ / Tutorial for beginners University of Göttingen (Germany), September, 2010 Winfried Kurth Some.
Main Points: - Python Turtle - Fractals
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 10/27/ :26 UML Simplicity in Complexity. 2 10/27/ :26 UML Rewriting Systems Classic Example: Koch 1905 Initiator Generator.
Tutorial and workshop „Modelling with GroIMP and XL“ / Tutorial for beginners University of Göttingen, 27 February, 2012 Winfried Kurth Introduction to.
Data Structures & Algorithms
Banff 2007: Innovations in Mathematics Education via the Arts Interactive Graphics Tools and Global Learning Mara Alagic & Glyn Rimmington Wichita State.
Lecture 8 Theory of AUTOMATA
ATEC Procedural Animation Introduction to Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa.
Experimenting with Grammars to Generate L-Systems October 29, 2007
Integration of simulation tools in online virtual worlds Stéphane SIKORA AI Lab of Paris5 University 2nd conference on.
Lecture # 15. Mealy machine A Mealy machine consists of the following 1. A finite set of states q 0, q 1, q 2, … where q 0 is the initial state. 2. An.
Modelling of Ecosystems by Tools from Computer Science Summer School at Czech University of Life Sciences, Prague, September, 2013 Winfried Kurth.
Programming Training kiddo Main Points: - Python Statements - Problems with selections.
Functional-Structural Plant Modelling with GroIMP and XL Tutorial and Workshop at Agrocampus Ouest, Angers, 5-7 May, 2015 Winfried Kurth University of.
MATLAB and SimulinkLecture 61 To days Outline Graphical User Interface (GUI) Exercise on this days topics.
TECH 104 – Technical Graphics Communication Week 12: 3D Modeling Basics.
Experimenting with Grammars to Generate L-Systems – in JFLAP March 31, 2011 Prof. Susan Rodger Computer Science Dept.
Grammars, L-Systems Jim Whitehead UC Santa Cruz School of Engineering courses.soe.ucsc.edu/courses/cmps265/Spring14/01 23 Apr 2014.
Chapter 19 Java Data Structures
ATCM 3310 Procedural Animation
Stack Lesson xx   This module shows you the basic elements of a type of linked list called a stack.
Frozen Graphics Lesson 3.
Stack Memory 1 (also called Call Stack)
Trees and Colored Edge Detection
Presentation transcript:

LINDFERN Lindenmayer Systems in VPython Nick Langhammer

WHAT IS A LINDENMAYER SYSTEM?  Introduced by biologist Aristid Lindenmayer in 1968 to model plant growth  Lindenmayer systems, or L-systems, are parallel rewriting systems  Used to generate self-similar fractals

COMPONENTS OF LINDENMAYER SYSTEMS  Each system starts with an axiom and has a set of production rules  These rules are applied to the respective components of the axiom  The number of times the rules are applied is the number of iterations

EXAMPLE  Axiom=A  Rules=(A to AB), (B to A)

TYPICAL COMMANDS IN TURTLE GRAPHICS  F=move forward  + = turn left  - = turn right  [ puts the current position and direction on top of a stack  ] pops the entry off of the top of the stack

MY PROJECT  Create a 3D representation of Lindenmayer systems in VPython

CONSTRUCTING BRANCHES  Position stored in 3 arrays-aa,bb, and cc  Axis stored in 2 arrays-dd and ff  Length is always 3, radius is always.25

MY COMMANDS  F=create a branch using the current position and axis  R=change the array dd to 1 to make the next branch lean right  L=change the array dd to -1 to make the next branch lean left  T=change the array ff to 1 to make the next branch lean forward  B=change the array ff to -1 to make the next branch lean backward  P=change the item in each array to the item it was before the previous branch was constructed

HOW MY PROGRAM WORKS  Takes axiom and rules  Applies rules to axiom  Returns results in a string

CONTD.  Converts string to array  Reads each item one at a time and performs the corresponding action

TRANSFORMATIONS TO POSITION DEPENDING ON AXIS

USING THE PROGRAM  Change axiom and rules however you want  Change value of number in the iterate function at the bottom to choose the desired amount of iterations  Run module

POSSIBLE FUTURE CHANGES  Randomize axiom and production rules  Allow branches to extend more than 45 degrees  Let the lengths and radii of cylinders change with number of iterations  Improve user interface so that users can enter the axiom, rules, and number of iterations while the module is running