Citygen: An Interactive System for Procedural City Generation

Similar documents
Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming

Presentation Martin Randers

Fig.25: the Role of LEX

2 Computing all Intersections of a Set of Segments Line Segment Intersection

Complete Coverage Path Planning of Mobile Robot Based on Dynamic Programming Algorithm Peng Zhou, Zhong-min Wang, Zhen-nan Li, Yang Li

In the last lecture, we discussed how valid tokens may be specified by regular expressions.

Slides for Data Mining by I. H. Witten and E. Frank

Section 10.4 Hyperbolas

Midterm 2 Sample solution

File Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment

PPS: User Manual. Krishnendu Chatterjee, Martin Chmelik, Raghav Gupta, and Ayush Kanodia

Before We Begin. Introduction to Spatial Domain Filtering. Introduction to Digital Image Processing. Overview (1): Administrative Details (1):

COMP 423 lecture 11 Jan. 28, 2008

What are suffix trees?

Simrad ES80. Software Release Note Introduction

GENERATING ORTHOIMAGES FOR CLOSE-RANGE OBJECTS BY AUTOMATICALLY DETECTING BREAKLINES

Agilent Mass Hunter Software

Today. Search Problems. Uninformed Search Methods. Depth-First Search Breadth-First Search Uniform-Cost Search

II. THE ALGORITHM. A. Depth Map Processing

CS321 Languages and Compiler Design I. Winter 2012 Lecture 5

From Dependencies to Evaluation Strategies

PARALLEL AND DISTRIBUTED COMPUTING

UT1553B BCRT True Dual-port Memory Interface

Today. CS 188: Artificial Intelligence Fall Recap: Search. Example: Pancake Problem. Example: Pancake Problem. General Tree Search.

CSCI 446: Artificial Intelligence

CSCI 3130: Formal Languages and Automata Theory Lecture 12 The Chinese University of Hong Kong, Fall 2011

1. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES)

AI Adjacent Fields. This slide deck courtesy of Dan Klein at UC Berkeley

6.3 Volumes. Just as area is always positive, so is volume and our attitudes towards finding it.

EECS150 - Digital Design Lecture 23 - High-level Design and Optimization 3, Parallelism and Pipelining

Dr. D.M. Akbar Hussain

M-Historian and M-Trend

SUPPLEMENTARY INFORMATION

Lab 1 - Counter. Create a project. Add files to the project. Compile design files. Run simulation. Debug results

Epson Projector Content Manager Operation Guide

P(r)dr = probability of generating a random number in the interval dr near r. For this probability idea to make sense we must have

Announcements. CS 188: Artificial Intelligence Fall Recap: Search. Today. Example: Pancake Problem. Example: Pancake Problem

this grammar generates the following language: Because this symbol will also be used in a later step, it receives the

OUTPUT DELIVERY SYSTEM

10.5 Graphing Quadratic Functions

A Sparse Grid Representation for Dynamic Three-Dimensional Worlds

Network Interconnection: Bridging CS 571 Fall Kenneth L. Calvert All rights reserved

CS143 Handout 07 Summer 2011 June 24 th, 2011 Written Set 1: Lexical Analysis

A Tautology Checker loosely related to Stålmarck s Algorithm by Martin Richards

vcloud Director Service Provider Admin Portal Guide vcloud Director 9.1

Distributed Systems Principles and Paradigms

Lexical Analysis. Amitabha Sanyal. ( as) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay

1 Quad-Edge Construction Operators

Reducing a DFA to a Minimal DFA

Unit 5 Vocabulary. A function is a special relationship where each input has a single output.

If you are at the university, either physically or via the VPN, you can download the chapters of this book as PDFs.

Agenda & Reading. Class Exercise. COMPSCI 105 SS 2012 Principles of Computer Science. Arrays

4452 Mathematical Modeling Lecture 4: Lagrange Multipliers

CS380: Computer Graphics Modeling Transformations. Sung-Eui Yoon ( 윤성의 ) Course URL:

Small Business Networking

2014 Haskell January Test Regular Expressions and Finite Automata

Sketching Reaction-Diffusion Texture

CS 221: Artificial Intelligence Fall 2011

CSEP 573 Artificial Intelligence Winter 2016

PNC NC code PROGRAMMER'S MANUAL

View, evaluate, and publish assignments using the Assignment dropbox.

Announcements. CS 188: Artificial Intelligence Fall Recap: Search. Today. General Tree Search. Uniform Cost. Lecture 3: A* Search 9/4/2007

Small Business Networking

The Greedy Method. The Greedy Method

Polycom RealPresence Media Editor Quick Start

USING HOUGH TRANSFORM IN LINE EXTRACTION

Unit #9 : Definite Integral Properties, Fundamental Theorem of Calculus

Algorithm Design (5) Text Search

Mobile IP route optimization method for a carrier-scale IP network

On the Detection of Step Edges in Algorithms Based on Gradient Vector Analysis

Small Business Networking

A dual of the rectangle-segmentation problem for binary matrices

MA1008. Calculus and Linear Algebra for Engineers. Course Notes for Section B. Stephen Wills. Department of Mathematics. University College Cork

Multiresolution Interactive Modeling with Efficient Visualization

Ma/CS 6b Class 1: Graph Recap

3.5.1 Single slit diffraction

LECT-10, S-1 FP2P08, Javed I.

Small Business Networking

ZZ - Advanced Math Review 2017

PIA INQUIRY QUESTIONS LEASED DARK FIBER AND SPECIAL CONSTRUCTION

Stack Manipulation. Other Issues. How about larger constants? Frame Pointer. PowerPC. Alternative Architectures

Definition of Regular Expression

CSCI 104. Rafael Ferreira da Silva. Slides adapted from: Mark Redekopp and David Kempe

12-B FRACTIONS AND DECIMALS

1 Drawing 3D Objects in Adobe Illustrator

Stained Glass Design. Teaching Goals:

A Comparison of High-Level Approaches for Speeding Up Pathfinding

TOWARDS GRADIENT BASED AERODYNAMIC OPTIMIZATION OF WIND TURBINE BLADES USING OVERSET GRIDS

3.5.1 Single slit diffraction

Systems I. Logic Design I. Topics Digital logic Logic gates Simple combinational logic circuits

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Winter 2016

Tilt-Sensing with Kionix MEMS Accelerometers

Small Business Networking

Small Business Networking

George Boole. IT 3123 Hardware and Software Concepts. Switching Algebra. Boolean Functions. Boolean Functions. Truth Tables

EasyMP Multi PC Projection Operation Guide

CS311H: Discrete Mathematics. Graph Theory IV. A Non-planar Graph. Regions of a Planar Graph. Euler s Formula. Instructor: Işıl Dillig

YMCA Your Mesh Comparison Application

Preserving Constraints for Aggregation Relationship Type Update in XML Document

How to Design REST API? Written Date : March 23, 2015

Transcription:

Citygen: An Interctive System for Procedurl City Genertion George Kelly kellygp@gmil.com Deprtment of Informtics Institute of Technology Blnchrdstown, Irelnd Astrct Contemporry D gmes re often situted within lrge urn environments. This necessittes time-consuming nd expensive content cretion process involving the modelling of vst mounts of geometric detil: including terrin, rods, uildings, nd other ssocited fetures. We present system clled Citygen tht ims to utomte s much of this s possile y employing procedurl genertion methods to rpidly crete the urn geometry typicl of modern city. Procedurl methods hve long een used within the grphics nd gme development communities to generte nturl phenomen such s plnts nd trees. We employ these methods to generte the underlying rod networks tht form the structure of cities nd urn neighourhoods. These rod networks re utomticlly mpped to ny supplied terrin model, nd dpt themselves to the specific geometry of the underlying terrin. Building footprints re utomticlly extrcted from the resulting model nd uildings cn then e inserted either procedurlly or y hnd. Our system is unique in tht it is designed to llow developers hnds-on interctive control over the genertion process. We chieve this y providing n interfce llowing the user to directly mnipulte geometric elements such s rod intersection nodes, nd to directly control nd specify mny spects of the procedurl genertion. The results re updted in rel time, thus fcilitting n interctive design process. Introduction Continuing improvements in technology nd computing power men tht more nd more detil, relism nd scle re possile in gmes nd other interctive grphics pplictions. The gme industry is presented with mjor chllenge to crete content tht mtches the expnded prmeters of wht is now possile on the ltest hrdwre. This prolem is excerted y consumers demnding qulity of content tht reches the r set y the lrgest projects nd the result is tht everydy production costs re spirlling out of control. Relted industries tht lso employ computer generted grphicl content, such s the film industry, fce similr chllenges. A common pproch to the content cretion prolem is to simply increse the numer of rtists working on project to produce lrger, more detiled nd more relistic content. However, incresingly the rtistic pipeline is not scling, mening tht Hugh McCe hugh.mcce@it.ie Deprtment of Informtics Institute of Technology Blnchrdstown, Irelnd dditionl rtist numers do not generte proportionl yield of content. The result of this is tht time nd money tht could hve een llocted to improving gme ply or dding innovtive fetures re lost on content cretion. A potentil solution is the ppliction of procedurl techniques. These methods employ lgorithms to utomticlly generte ssets nd hve een used for over 0 yers in the field of computer grphics []. A wide rnge of pplictions exist: dding noise to existing textures [8], creting D textures of nturl mterils such s mrle nd wood [6], visulising lifelike models of vrious tree nd plnt species [7] nd generting detiled cellulr textures such s skin or rk []. Recently procedurl techniques hve een expnded to construct geometric ssets[][7][6] nd entire procedurl worlds re now possile[]. Existing procedurl solutions primrily focus on the genertion of nturl phenomen[]. Our work ims to pply similr methods to the genertion of mn-mde phenomen, nd focuses in prticulr on the cretion of procedurlly generted cities for use in gmes nd grphicl pplictions. Cityscpes re rich in visul nd functionl complexity nd re result of evolution over hundreds of yers under the influence of countless fctors. Some of the mjor influentil fctors ffecting cities include popultion, trnsport, environment, elevtion, vegettion, geology nd culturl influence.[][0] It is difficult chllenge for reserchers nd developers to crete relistic model of such lrge nd complex system. We im to develop n ccessile interctive softwre system tht cn utomticlly generte relistic, detiled nd vried models of city suitle for use in rel-time rendering.. Citygen System We present system clled Citygen tht employs procedurl techniques to generte cityscpes for use in gmes nd other grphics pplictions. A key design gol of the system ws tht it would llow the user close control over the genertion process y mens of direct mnipultion of genertion lgorithm prmeters vi n ccessile nd intuitive visul interfce. Furthermore it ws regrded s crucil tht the results of these mnipultions would e computed nd rendered in rel time so tht the user gets immedite feedck on their effect. This is wht we men when we stte tht Citygen is n interctive procedurl city genertion system. The motivtion for this is so tht n itertive design pproch cn e followed. The user cn engge with the system y tweking prmeters, see their effect immeditely, twek gin, nd so on. This process cn e continued s long s necessry until the desired results re otined. We divide the city genertion prolem into three stges:. Primry Rod Genertion. Secondry Rod Genertion. Building Genertion

Primry rods re the min trffic flow rteries of the city whose function it is to trnsport people round the city nd from one district to nother (e.g. min rods, motorwys etc). Secondry rods re the rods inside the res enclosed y primry rods nd their function is to service districts. Buildings re situted on the res enclosed within secondry rods. The essentil chrcter of city is often dictted y the pttern of the primry rod network (grid-like, rdil etc..) nd therefore Citygen uses this s the strting point of the genertion process. The user cn crete, nd mnipulte, grphicl representtion of primry rod network. Vertices of the primry rod grph re clled nodes nd ct s control points, they cn e dded, moved, deleted nd so on. The rods which connect these nodes re procedurlly generted y the system, mpped to the underlying terrin model, nd rendered in rel time. Once region is enclosed the secondry rod network genertion process is initited utomticlly. Our system contins vriety of rod network ptterns nd the user cn choose which rod network pttern to use sed on the results desired (for exmple, grid-like streets or mendering suurn rods) nd ssign different ptterns to different prts of the city. Severl pttern presets re defined for convenience nd ech cn e esily modified to lter the efficiency, connectivity, scle nd flow of the resulting rod network. Once gin, the results re computed nd rendered in rel time llowing direct interctive mnipultion of the process. The finl stge of genertion is the construction of uildings. In order to ccomplish this it is necessry to compute uilding footprints onto which the uildings should e plced. This is done y clculting ll the enclosed res etween secondry rods nd then sudividing them into lots. The uildings re then plced within the lots nd the relevnt mterils re pplied to the generted geometry. During the genertion process the user cn mke chnges to ny stge nd see the result of the chnges propgted through in rel-time.. Relted Reserch Other reserchers hve tckled this prolem with vrying degrees of success. The most well known nd perhps most significnt reserch hs een crried out y Prish, Müller nd collegues on the CityEngine[], system tht is cple of producing relistic nd detiled models. The genertion lgorithms re inspired from the modelling of nturl phenomen with string grmmrs[7][] nd L-systems re pplied with geo-sttisticl imge mps to construct rod networks nd uildings[]. Our work is strongly influenced y the CityEngine, lthough we do not use string grmmrs or imge mps our secondry rod genertion is sed on prllel growth nd our lot division employs similr sudivision technique. Procedurl uilding genertion hs focused on the ppliction of grmmrs to descrie structure, like the Shpe Grmmrs originl proposed y Stiny[9]. These hve een pplied in vrious guises to the construction of uilding geometry[]. In [], Müller nd Wonk define specific grmmr to chrcterize uilding structure. This system defines rules to operte on shpes nd is pplied to crete rnge of detiled uildings in severl rchitecturl styles. Recently this pproch hs een extended to employ imging techniques to id in the cquisition of genertion rules from existing uilding fçdes []. Other pproches include the ppliction of intelligent gents, rel-time frustum filling nd templte sed genertion. Ben Wtson et l. to simulte the evolution of cities y modeling lnd use nd evolving city usge mp over time tht cn e used lter to crete city scpe[8][0]. Rel-time city genertion hs lso een ttempted, Greuter et l. implement city genertion system tht fills the view frustum rpidly with uildings of shpe comintions ut plcement is restricted to rod network consisting of regulr grid[][7][9]. Sun et l.[] propose the ppliction of templtes tht encpsulte ptterns such s rster rdil to generte rod networks. Urn Design nd Architecture uthors hve discussed the ptterns, constituent components nd perception of cities. In [], Lynch writes out the imge of the city nd humn perception, he itemises constituent elements of cities such s pths, edges, lndmrks, nodes nd regions. Alexnder et l. document numer of ptterns found in neighourhoods, pulic res nd uildings [0]. The principles discussed provide n insight into the design of urn spces nd hve direct pplictions for the genertion of cities.. Overview The rest of this pper is structured s follows. In Section we descrie the lgorithms nd techniques involved in representing, generting nd mnipulting primry rod networks. This includes n efficient grph dt structure for encoding the network, nd set of smpling lgorithms for computing rod trjectories tht follow underlying terrin in nturl nd convincing wy. Section dels with the genertion of the secondry rods. This involves the use of Minimum Cycle Bsis (MCB) lgorithm to compute cells in the primry rod grph nd set of genertion lgorithms for filling these cells with relistic looking secondry rods. In Section we del with the issues involved in uilding genertion, focussing on how to solve the prolem of computing lots nd uilding footprints in n efficient mnner. Section presents some results nd nlyses the output of the Citygen system. Section 6 concludes nd suggests some directions for further development.

Primry Rod Network. Adptive Rods Rod networks re represented s undirected plnr grphs nd re implemented s djcency lists. An djcency list contins n entry for ech node nd ech of these entries comprises of list of nodes tht this node is directly connected to (see Figure ). This dt structure provides n efficient wy to store, edit nd perform opertions on grph representtions of rod networks. 0 0 0 Figure Adjcency List These structures form the sis for ll of our rod network grphs, including oth primry nd secondry rods. We use two different grphs to store dt solely for the primry rod network nd ech neighourhood region lso uses n dditionl grph to store dt for it s secondry rod network. We cll the two primry rod network grphs, the high level grph, nd the low level grph. The nodes of the high level grph correspond directly to primry rod intersections nd n edge etween two nodes indictes tht these nodes re connected together with primry rod. So, in other words it stores the topologicl structure of the primry rod network. The low level grph defines the ctul pth ech rod tkes cross the terrin. It will lso hve nodes corresponding to primry nodes ut lso mny more nodes etween these indicting points on the terrin through which the rod psses. By keeping the high level topologicl rod grph seprte from the low level grph, we minimise the dt set for processing nd provide mens for the efficient extrction of connectivity informtion. The concept ehind dptive rods is to fit rod segments into the surrounding environment nd ensure tht the rods reflect the world in which they occupy. This is ccomplished y plotting the rod utomticlly using smpling technique nd vrious plotting strtegies to dpt the rods to the terrin. In prctice, to use dptive rods, the user simply positions the source node nd destintion node of the rod. These nodes correspond to the control nodes of the high level grph. The system then plots the pth in rel-time, providing immedite feedck nd tctile control for the user to fine tune ech segment. In ddition constrints re employed to mintin the integrity of the rod grph. Ech proposed segment is utomticlly snpped to existing infrstructure whenever possile. Aside from iding the user to rpidly crete rod grph, these constrints ensure tht the user cnnot crete n invlid rod segment or leve the rod grph in n unusle stte. By fitting ech rod to the environment sense of cohesiveness is chieved in the resulting rod network, long with incresed relism nd chrcter.. Smpling Rods re plotted y strting from source point nd smpling set of points t regulr intervls to define set of possile pths to the destintion. The rod grph is stored s n undirected grph nd the plotting opertion is designed to e commuttive (i.e. plot( ) == plot( ) ). The lgorithm opertes idirectionlly with smpling strting simultneously from oth the source node nd the destintion node nd then finlly termintes y meeting in the middle. Prmeters used to control the size of the smples, the numer of smples tken nd the mximum devition llowed from the trget direction. dsample : nsample : θdev : smple size numer of smples ngle of devition Ech control point trvels distnce dsample nd devites from the direction of the destintion point less thn n ngle θdev. A set of possile control points is otined from fn of nsample evenly spced smples which re evenly distriuted over n rc of degree θdev. src θdev d PROGRESS d DST dst d DST Figure Primry rod network grphs, Yellow: High level grph, Red: Low-level grph, Ornge: Plot smples nd interpoltion spline. Nodes of the high level grph function s control nodes nd cn e interctively mnipulted within the ppliction in order to to djust the topogrphy of the primry rod network. The nodes nd edges of the low level grph re then computed y the system using the smpling, plotting nd interpoltion processes to construct the ctul rod routes through the terrin. We cll these dptive rods. After ech mnipultion the low level rod grph contins the dt required to render the rods. The mnipultions of control nodes in the topologicl grph tke plce in grphicl interfce with rel-time disply of the finl dptive rods. Figure Rod intervl smpling The rod plotting process is complete when smple is within constnt dsnap of the destintion point, this is gurnteed y ensuring θdev < o nd dsnap > dstep*cos(θdev). By limiting the devince ngle of the rod smples the resulting rods re free to mender when necessry ut not without purpose s they re ounded to trvel towrds their gol. When the smpling is complete nd the pth hs een plotted, the selected smples re inserted into Ctmull Rom spline where fine grined segments cn e interpolted nd extrcted for insertion into the low level rod network grph for finl rendering.

. Smple Selection Strtegies Different selection strtegies re employed to choose the smples cquired in the smpling process. Smples re primrily selected from the elevtion difference etween the smple nd the previous plot point. In some strtegies dditionl mesurements re tken into ccount. A numer of these different smple selection strtegies re shown in ction in Figure nd explined elow. Secondry Rod Genertion Secondry rods service the locl re within districts y providing ccess to nd from the primry rod network. In our system, districts re the regions of the terrin enclosed y primry rods. We cll these city cells nd they form the sic units upon which the secondry rod genertion process opertes. The genertion of the secondry rod network within cells is ccomplished using growth sed lgorithm similr to the Lsystems technique pplied extensively to the genertion of nturl phenomen. There re importnt spects to this process tht will e descried: City Cell Extrction: How do we extrct the city cells from the primry rod network grph? Secondry Rod Growth: How do we generte rnge of rod ptterns in the secondry rod network within these cells? Snp Algorithm: How do we otin informtion on the intersection sttus nd proximity to existing rods from the network in n efficient mnner. Figure Adptive rods in Citygen. Blue - Minimum Elevtion, Red - Lest Elevtion Difference, Green - Even Elevtion Difference. Minimum Elevtion Strtegy: This is the most sic strtegy in which the smple with the lowest elevtion is selected resulting in rod pth similr to the route river or strem would tke. Minimum Elevtion Difference: A more competent strtegy thn the first, this strtegy voids elevtion drops or rises, nd seeks to mintin n even elevtion for the complete rod segment. However prolem cn occur when constructing rods etween source nd destintion node with lrge elevtion difference. In this cse the Minimum Elevtion Difference strtegy will void the required scent nd descent until the lst step when it hs to join in the middle. On certin terrins this cn result in rod with two smooth rod sections nd steep section joining the two. Even Elevtion Difference: To improve on the Minimum Elevtion Difference strtegy technique with some more foresight ws required. This is the impetus for the Even Elevtion Difference strtegy which ims to plot n even nd smooth pth for the rod y looking hed nd re-evluting the elevtion gol s it progresses. This strtegy opertes y clculting the elevtion difference etween the current position nd gol position. Bsed on the progress eing mde towrds the gol, the lgorithm seeks to scend or descend its even portion of elevtion for ech plot point. The Even Elevtion Difference strtegy selects the smple which hs the minimum difference etween distnce covered nd elevtion rtio, nd the gol distnce nd elevtion rtio. MinAs(elevtionSTEP / dprogress - elevtiondest / ddst) Ech smple ims to cover n even portion of the totl rod elevtion. The resulting rods re smooth curves tht mender when necessry weving through hilly terrin nd serching for even pths to scend or descend lrge elevtion differences.. City Cells City cells re formed from the enclosed regions of the primry rod network. These regions cn e determined y extrcting the closed loops from the high level primry rod grph. To extrct the cells we execute Minimum Cycle Bsis (MCB) lgorithm on the primry rod network nd store the cell dt in self contined units. Our design enles the efficient prllel execution of rod genertion within cells y ensuring tht ll cells re self contined nd tht the shred dt is miniml. City cell oundries re extrcted using Minimum Cycle Bsis (MCB) lgorithm executed on the rod network grph. The MCB is defined s the unique set of minimum cycles in grph tht ll other cycles cn e constructed from. There re numerous lgorithms ville to compute the MCB ut few tke the position of vertices into ccount, insted operting solely on the structure of the grph. 0 9 7 y 6 8 x 7 6 8 9 Figure : MCB lgorithm illustrtion The MCB lgorithm used in Citygen is tht descried y Dvid Eerly in []. Our implementtion of the lgorithm works y first sorting the nodes y the x loction nd then extrcting cell cycles in left to right order. Cycles re extrcted y using the clockwise orienttion of edges to prioritise explortion pths. As cycles re found they re mrked nd removed from the grph so s not to influence further serches. Filments re ordered sequences of vertices where the end vertices re either end points or rnch points nd those in the middle hve exctly two djcent vertices[]. In Figure the cycle {,,0,9,} is first extrcted nd the edges re mrked cycle edges, then edge {,} is removed nd filments connected to vertices nd re removed nd not

stored s they prt of cycle. This rief outline is included to provide n insight into the opertion of the lgorithm, for detiled explntion of the lgorithms opertion see []. the user to crete rnge of rod network ptterns on cell y cell sis. Control prmeters used for rod genertion include segment size, degree, snp size nd connectivity. After the cycles nd filments hve een extrcted, their contining cycles re determined nd the dt is grouped nd then stored in cell dt structure. Ech cell is self-contined nd consists of privte rod grph with the oundry cycle, filment rods nd smll set of prmeters to control rod genertion. As result of this self contined design, it is possile for secondry rod genertion to e executed efficiently in prllel. Prllel genertion of cells is currently implemented for multi-core systems running Citygen, ut hs cler pth to e extended further to use GPGPU progrmming. Segment size controls the size of ech proposed segment nd hence grnulrity of the neighourhood rod network. Smll segment sizes result in tightly pcked streets wheres lrger ones will give more sprse rod network. Degree controls the numer of times rod rnches t ny given node. Snp size lters the distnce threshold used to connect to existing infrstructure nd hence influences the efficiency of the rod network. The connectivity prmeter chnges the proility tht segments will connect together thus ffecting rod network flow.. Secondry Rod Growth Once city cell is creted, the genertion of secondry rods is initited within it using growth sed lgorithm. The choice of using growth sed lgorithm ws sed on success of the prior L-system work of Prusinkiewicz on plnts[7] nd Müller on city genertion[]. Although our ppliction does use L-systems it shres the concept of prllel growth. Our genertion lgorithm is distinct in tht it is computtionlly efficient nd contins numer of optimistion to enle it to run in rel-time. The genertion is flexile producing wide rnge of output nd functions y dding rod segments in prllel fshion similr to orgnic growth. A devince prmeter prtners ech control prmeter nd enles relevnt noise to e introduced y ltering the prmeters t ech step of rod genertion. The cell seed is pssed to the rndom functions t ech step nd governs the ltertion of prmeters ensuring tht genertion is 00% reproducile. Using this concise prmeter set rnge of different rod ptterns cn e constructed, from the regulr rster ptterns typicl of modern city centres, to the rndom mendering ptterns of orgnic development. Genertion Rod construction egins from the ordering primry oundry rods nd grows inwrds in prllel fshion. The strting point for the initil rod segment is otined using devited midpoint from selection of the longest sides in ny given cell. Rod growth is checked y n extensive snpping lgorithm tht provides informtion on intersections nd on the proximity to neighouring segments nd nodes. Using this informtion the genertion component cn intelligently modify ech proposed segment nd join to the existing network or discrd them if they do not meet the criteri set y the cell prmeters. Figure 6: Rod Growth 0, 00, 00 & 000 steps. Rod genertion is sensitive to existing infrstructure nd new segments cn connect to, nd extend, existing rods. Ech cell hs control prmeter set, whose vlues re fed into the growth lgorithm in order to control the genertion process. This llows Figure 7: Rod network pttern: Rster, Industril nd Orgnic Citygen provides n ccessile environment in which the secondry rod genertion process is esy to control nd suitle for non-expert users. Prmeters re esily ccessile vi property inspector nd e modified with their effect viewle in rel-time. Figure 8: Citygen: cell is een selected nd the control prmeter set is displyed in the property inspector which is ordered in red.

. Snp Algorithm Snp S ize Snpping is process in which proposed rod segments re checked ginst the existing rod network. The snpping lgorithm clcultes informtion on the proximity nd intersection sttus of proposed segment reltive to segments in the locl rod network grph. Rod segments re refined sed on the result returned from the snpping lgorithm to the genertion component. Figure 9 illustrtes the Figure 9: Snp re desired snp re for proposed segment with dimeter set y the snp size prmeter. Any existing segment tht my intersect with the proposed segment or is within defined distnce shll cuse snp event to occur. Severl events my occur for single proposed segment ut only one will e reported. Events re prioritised closest to the root of the proposed segment. In order to clculte snp informtion for n re similr to tht illustrted in Figure 9 numer proximity nd intersection tests re required. This series of opertions is normlly computtionlly intensive ut numer of optimistions hve een devised tht llevite the urden significntly. d c c e A sclr s is lso clculted nd used to determine the distnce etween node c nd segment. If this distnce is less thn set snp size node snp event will e produced. In ddition the sclr s indictes which side of the segment the node is locted on nd the vlues of r nd s for ech node re stored regrdless of whether or not snp event occurs. s<0 r s<0 s>0 r r lo west_ r r 0 r lo west_ r r 0 L c s>0 L r = (cx-x)(x-x) + (cy-y)(y-y) / L s = (y-y)(x-x) - (x-cx)(y-y) / L Figure : Node dt from test is used optimise test excluding 98% of segment test during secondry rod genertion in typicl city cell. d c testing. The sclr r is lso used to prioritise events closest to the root, this is illustrted in Figure 9, Test where the snp event t d hs precedence over e. As further optimistion when snp event occurs ny tests tht cnnot yield etter result re excluded, for exmple in the cse of snp event t node d or e, the Test series would not e executed. d e Test Test Test Figure 0: Tests used to retrieve informtion out proposed segment snp sttus. The proposed segment is coloured green, segments or node currently eing tested re coloured red nd inctive components grey. The first optimistion is to order the tests so if snp event occurs in Test or Test then the entire series of Test checks will not e le to provide snp event closer to the root node nd hence is not required nd not executed. The second optimistion is to include node to node testing in Test nd execute this test only when is hs een determined tht positive result is prole. The third optimistion is to store the initil results of Test in the grph dt structure nd then use this informtion to exclude segments from testing in Test. These optimistions re explined in more detil in the following outline of the lgorithm. Test : Proposed Segment Distnce to Nodes The distnce is clculted etween nodes in the rod grph nd the proposed segment nd is compred to the snp size. Firstly, the loction of the nodes perpendiculr to the line is clculted nd sclr vlue r is determined, if r is zero then the node is locted nerest to the root of the proposed segment, if r is one it is locted t the hed. Using the vlue of r check is mde to see if the node is locted within the line segment or outside on n extension of. In order to optimise the testing procedure, distnces tests normlly required etween node nd other nodes cn e excluded y requiring tht r indictes the nodes re within the purple region shown in Figure 9 efore Test : Proposed Segment Intersection Test An optimistion hs een developed to only execute the segment intersection test when n intersection is prole. For ech rod segment the node dt stored in Test cn e ccessed efficiently using the rod grph dt structure. From this dt we cn deduce if n intersection is prole: if oth nodes re on the sme side of the proposed segment or if oth node perpendiculrs re positioned on the sme extension of segment then n intersection is not possile. In ddition if snp event occurred previously the mximum vlue for r is reduced to the lowest r vlue for the previous event thus excluding even more segments from testing. See Figure. The ppliction of this optimistion results in 98% reduction of ll segments intersection tests in typicl city cell. Test : Proposed Node Distnce to Segments If snp event occurred in the previous tests then the third test will not e executed s it cnnot return snp event closer to the root thn the previous tests. However if no snp event is detected this finl test will e executed. Its opertion is similr to Test ut in this cse node of the proposed segment is tested ginst ll other segments in the locl rod grph. The check clcultes the distnce etween node nd every other line segment cd. If the distnce is within set snp size rod snp event will e triggered. Upon further inspection if the snp point on the neighouring segment is within set snp size of the defining nodes node snp event will e rised. After the snp lgorithm hs completed it nlysis of the proposed segment in reltion to the existing rod network result contining the snp event, loction nd reference to the node or rod involved. The rod genertion lgorithm decides on wht course of ction to tke sed on this result.

Building Construction The uilding construction stge of Citygen is ccomplished in three stges. Firstly the enclosed regions re extrcted from the secondry rod grph y pplying the Minimum Cycle Bsis lgorithm s descried previously in Section. Secondly the lots re identified y splitting the regions into miniml trcts or prcels of lnd suitle for development. Thirdly nd finlly the uildings re selected sed on their control prmeters nd constructed in the oundries of the lots nd textured ccordingly. this nd provide relistic lots for suurn networks modifiction ws mde to the lot division process in which division ws first prioritised long sides with rod ccess. As result of this chnge lmost ll lots were oriented perpendiculr to their ccess rod reflecting the conditions found in the rel world. In similr fshion the vlue of lots for development is clculted tking ppurtennces into ccount s used in the rel-estte industry. Lots without rod ccess re not considered suitle for uilding development nd re discrded or destined for green spce.. Blocks Blocks represent the enclosed regions of the secondry rod network. The role of the lock is to dd ny extr geometry such s footpths, signposts, trffic lights or post oxes onto the region efore lot sudivision occurs. Currently only footpths re implemented y pplying simple inset to the oundry polygon.. Lot Sudivision The lot division process opertes on the region oundry deifned in the city lock. A sudivision lgorithm is pplied sed on tht descried y Mueller et l. in [] ut without the requirement for regions to e convex. Both concve nd convex oundries re supported in our implementtion nd s result it is possile to extrct vlid lots from complex regions nd even fcilitte the presence of filment rods. This enles us to pply the technique to suurn res nd support filment rods. 7 8 9 c 0 6 0 d Figure : Lot Division Algorithm Figure : Down-town nd Suurn lots in Deug View. Building Genertion Buildings re generted on the lots creted y the lot sudivision process. Hints re ttched to ech neighourhood s prt of the control prmeter set nd dvise the uilding genertion lgorithm on wht clss of uilding to e generted nd how it should e positioned on the lot. Down-town uildings ttempt to mke mximum use of lot spce while suurn uildings retret in from their rod ccess side nd lso from ech other to mke room for grden re. Industril uilding retret in from their oundries to emulte the green spce found in industril esttes. Building construction egins with the positioning of the uilding footprint on the lot y in-setting the polygon oundry of the lot. After the footprint hs een clculted is is then extruded upwrds to produce solid oject. The geometry of the uildings is very sic ut with the id of norml mps we cn simulte extr geometry on the uilding. Figure shows typicl texture tile nd ssocited norml mp for uilding. The lgorithm works y sudividing ech region nd opertes recursively until trget lot size is reched. Ech split opertion is executed using the perpendiculr of the longest side. Steps required to complete single region split re s follows:. Identify the longest side eyond the trget lot size nd clculte the perpendiculr from devited midpoint to split the polygon. The devition introduces reproducile noise for more nturl looking lots.. Clculte the intersection points etween the line nd the oundry nd store them in the order encountered with ech polygon index included. {:, :7, c:9, d:}. Process the intersection segments excluding those outside the polygon nd construct dt structure to provide grph for the polygon. {c, d}.. Merge the intersection grph with the polygon nd extrct the cycles from the grph. The lot division lgorithm works fine for Mnhttn like regions where the input dt is generlly regulr nd lock shped. However when the lgorithm ws initilly tested on suurn rod networks the resulting lots were ngulr nd irregulr. To comt Figure : Building Texture, Norml Mp nd the resulting uilding fter the mteril hs een pplied.

Results In this section we show Citygen in ction nd introduce the user interfce. We lso present severl screenshot imges displying generted cities tht were creted in Citygen eing rendered in rel-time within the ppliction. Interfce Citygen is n interctive ppliction tht provides complete integrted workspce for city genertion. The ppliction is designed to e ccessile nd esy to use, expert knowledge is not required nd it is suitle for rtists nd non-technicl stff. Cities re edited nd view using point nd click interfce similr to D editor nd the ppliction interfce is structured simply with three min editing modes: node, rod nd cell. Ech mode hs n ssocited set of tools nd property inspector to view nd modify prmeter vlues. There is no need for preview mode s the ppliction provides live rel-time D view of the world using the uilt-in gme engine[] which is used throughout the genertion process. Output Figure 6 displys screenshot of generted test city. The city model shown contins over,000 uildings nd the complete genertion time for the city including dptive rods, secondry rods nd uildings is only. seconds. The uildings re currently textured using only smll numer of mterils. Further uilding textures hve not een dded due to time constrints, however the ppliction does provide fcility for the user to dd their own mterils. Even with this mount of geometry the city is nvigle t frme rtes nd cn e still e edited interctively. Note: Metrics were tken from Citygen running on lptop with the following specifictions: Intel Core Duo @.Ghz, ATI X600, GB RAM.

6 Future Reserch At present we hve developed n system tht implements the genertion of primry rods, secondry rods nd uildings in n interctive ccessile mnner. Although we re plesed with performnce nd output of the system numer of res for improvement nd future reserch cn e suggested. The system provides set genertion prmeters nd devition vlues from which norml rndom distriution is generted. If specilised distriutions were to e used y cquiring sttisticl dt from existing city ptterns then the genertion system would e le to crete more relistic cityscpes with little dditionl computtion required. An exmple of this is uilding height, currently the system genertes n even distriution of heights when more relistic solution could e mostly short uildings with few skyscrpers. Reserch is required to cquire the sttisticl dt nd vlidte this theory ut the chnges to the current genertion system would e trivil. Citygen is designed to enle prllel computtion whenever possile nd uses multiple threds to exploit multi-core processors. A logicl step forwrd to ccelerte performnce could e to offlod this prllel computtion on to the GPU where numerous execution units could help generte more rich nd detiled city model in rel-time. An ovious improvement to increse the relism of the output is to introduce lrger nd more vried texture set or even implement procedurl solution. Citygen ws developed with very limited texture set s it ws not the focus of the project, however there re no technicl resons not to include more textures only time constrints in creting them. Also offset/prllx mpping hd een implemented s superior method to dd depth to uildings ut lighting prolems occurred preventing its inclusion in the ppliction. To finish there re severl extensions to the rel-time rendering spect of the system tht could e expnded. The grph structures provide djcency informtion for cell, rod nd locks. This informtion could e exploited to enle fetures like city cell pging, method of geometry pging for cities. These techniques re of interest to us nd it is n re destined for future reserch. the horizon. In Imge Text nd Sound Confernce 00,,. [8] Thoms Lechner, Ben Wtson, Uri Wilensky, Seth Tisue; 00. Procedurl Modeling of Lnd Use in Cities. In,,. [9] Greuter S., Prker J., Stewrt N., nd Lech G.; 00. Rel-time procedurl genertion of `pseudo infinite' cities. In Proceedings of GRAPHITE 00, ACM Press, 87-9. [0] Thoms Lechner, Ben Wtson, Uri Wilensky, Mrtin Felsen; 00. Procedurl City Modeling. In,,. [] Peter Wonk, Michel Wimmer, Frncois Sillion, Willim Rirsky; 00. Instnt Architecture. In, Siggrph,. [] Dvid S. Eert; F Kenton Musgrve; Drwyn Pechy; Ken Perlin; Steven Worley; Texturing & Modelling - A Procedurl Approch. Morgn Kufmnn 00. [] Stefn Greuter, Nigel Stewrt, Jeremy Prker, Geoff Lech; 00. Undiscovered Worlds - Towrds Frmework for RelTime Procedurl Gener... In MelourneDAC 00 Proceedings, ACM Press,. [] Jing Sun nd Xioo Yu nd George Bciu nd Mrk Green; 00. Templte-sed genertion of rod networks for virtul city modeling. In,,. [] Yov I H Prish; Pscl Muller; 00. Procedurl Modeling of Cities. In,, 8. [6] Ken Perlin. Mking Noise, http://www.noisemchine.com/tlk/index.html. 999. [7] Prusinkiewicz, P., Lindenmyer, A., Hnn, J. S., et l.; The Algorithmic Beuty of Plnts. Springer-Verlg 990. [8] Ken Perlin; 98. An Imge Synthesizer, in Proc ACM SIGGRAPH. In,, 87-96. [9] Stiny, G.; Introduction to shpe nd shpe grmmrs..environment nd Plnning B 980. [0] Alexnder C, Ishikw S, Silverstein M; A Pttern Lnguge: Towns, Buildings, Construction. Oxford University Press 977. [] Kevin Lynch; The Imge of the City. Cmridge: MIT Press 960. References [] Steve Streeting nd JinHu Xie nd Phillip Cstned nd Justin Wlsh. Oject-Oriented Grphics Rendering Engine. 007. http://www.ogred.org [] Pscl Müller nd Gng Zeng nd Peter Wonk nd Luc Vn Gool; 007. Imge-sed Procedurl Modeling of Fcdes. In Proceedings of ACM SIGGRAPH 007 / ACM Trnsctions on Grphics, ACM Press,. [] Pscl Mueller nd Peter Wonk nd Simon Hegler nd Andres Ulmer nd Luc Vn Gool 006. Procedurl modeling of uildings. [] Interctive Dt Visuliztion Inc.. SpeedTree RT. http://www.speedtree.com 006. [] Side Effects Softwre. Houdini. 00. http://www.sidefx.com [6] Dvid Eerly; 00. The Miniml Cycle Bsis for Plnr Grph. [7] Stefn Greuter, Nigel Stewrt, Geoff Lech; 00. Beyond