Teorijska pozadina
Kao osnova sustava za generaciju gradova koriste se Lindenmayerovi sustavi ili skraćeno L-sustavi. Najmanji dio L-sustava su znakovi koji sačinjavaju nizove. Niz znakova predstavlja jedno stanje L-sustava, iz kojeg se prelazi u sljedeće stanje primjenom najvećeg mogućeg broja pravila transformacije kako bi se dobio novi niz. Pravila pretvaraju jedan znak u drugi znak ili niz znakova, a mogu ovisiti i o susjednim znakovima. Početno stanje L-sustava naziva se aksiomom i označava se malim grčkim slovom omega.
Postoji velik broj fraktala i zanimljivih matematičkih nizova koje je moguće generirati koristeći L-sustave, ali je od posebne zanimljivosti za ovaj rad model interakcije biljaka s okoliem izveden L-sustavima. Modeliranje biljaka L-sustavima je obièno izvedeno tako da je rezultat rada L-sustava bio skup naredba čija je sintaksa bila slična programskom jeziku Logo i čijim se izvravanjem dobio crtež biljke. Takav zapis je koristan za direktno iscrtavanje, ali nije primjeren za složenije postupke u kojima je važna interakcija s okoliem i položaj već stvorenih dijelova biljke. Ovo ograničenje je bilo nadjačano dodavanjem posebnih znakova upita.
Upiti od svojih susjeda prilikom stvaranja primaju parametre i u ovisnosti o znaku koji obilježava upit vraćaju vrijednost koja određuje sljedeće primijenjeno pravilo. Značaj upita je njihova komunikacija s okoliem - entitetom koji sadrži parametre poput osvjetljenja ili prisutnosti vode i putem upita saznaje i pamti informacije o novostvorenim biljkama. Postojanje okolia omogućava složene interakcije između biljaka poput natjecanja za svjetlost i vodu.
Važnost otvorenih L-sustava u modeliranju gradova je upravo u konceptu okolia koji omogućuje izgradnju modela u kojem odluke o dodavanju križanja i produljivanja cesta donosimo samo na temelju trenutačne ceste, a na temelju položaja drugih cesta i parametara vrimo korekcije ili brisanje novostvorenih cesta.