Talk:Lsystem
This is the talk page for discussing improvements to the Lsystem article. This is not a forum for general discussion of the article's subject. 
Article policies

Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · NYT · TWL 
This article is of interest to the following WikiProjects:  

Tilings[edit]
This paragraph is unclear to me:
 As an Lsystem these tilings are called Penrose's rhombuses and Penrose's tiles. Above pictures were generated for n=6 as an Lsystem. If we properly superimpose Penrose tiles as an Lsystem we get next tiling:
It doesn't define what n is. It doesn't define what "properly superimpose as an Lsystem" means. It doesn't say which Lsystem was used to generate those images. I can't guess these from context. LC
in the canter dust example,it contains a line of "constant" about some 60 degrees. what's that line doing there? I think it is wrong.
in the Koch snowflake example, shouldn't the plus and minus sign be part of the alphabet?
i think the penrose tiling example is a bit forced. Penrose tilings are aperiodic. So, i doubt it can be reduced to a string replacement system.
also, i'm not sure LSytem has a place in serious math. If it does, it is or relates to formal logic. Should there be a mention?
thanks.
Xah P0lyglut 11:18, 2004 Jan 15 (UTC)
Constants?[edit]
In Example 3, Cantor Dust, what are the constants for? (I'm not even sure if that's one, two, or three constants you're trying to list.) You never seem to use them.
Concerning the Koch curve shouldn't + and  be constants (clearly there're no productions for them). According to the definition stated, the alphabet consists of variables, hence I disagree with the poster asking that they should be included in the alphabet.
Koch curve[edit]
I would like to see one higher order iteration (n=20 ?) of the Koch curve. IMO, the result is illustrative and pretty impressive especially for people new to the subject.
Need new Penrose time images[edit]
The three images of Penrose tilings are all untagged, and they don't have authorship info (dating from before "the big conversion"). I guess when the next untaggedimage jihad gets underway these images may well meet with infinite justice, so we need to start thinking about replacements for them ASAP. It's a bummer, as they're really attractive images.  Finlay McWalter  Talk 15:17, 7 October 2005 (UTC)
 These images were made by me with Winfract version 18.21, and we can tag them as public domain. I'll do that right the way. xJaM 14:02, 21 October 2005 (UTC)
Example 1 seems strange to me[edit]
Lindenmayer's original Lsystem for modelling the growth of algae.
 variables : A B
 constants : none
 start : A
 rules : (A → AB), (B → A)
which produces:
 n=0 : A → AB
 n=1 : AB → ABA
 n=2 : ABA → ABAAB
 n=3 : ABAAB → ABAABABA
I would expect it to look like this more in keeping with how the others are shown:
 n=0 : A
 n=1 : AB
 n=2 : ABA
 n=3 : ABAAB
 n=4 : ABAABABA
Am I missing something? Hogan 02:11, 29 April 2006 (UTC)
 Yes, you are right  the format of Example 1 was not consistent with the format of other examples. I have fixed it. Gandalf61 08:16, 2 May 2006 (UTC)
As I had problmes to follow the intial example I would suggest this (only in the first example, to make the principle more clear):
n=0: A start/axiom/initiator / \ n=1: A B the single A spawns into an A followed by a B / \ n=2: A B A the former A again spawns into AB, B turnes into A /  \ n=3: A B A A B note all A's producing a copy of themself in the first place, then a B, which turns /  \ \ \ n=4: A B A A B A B A into an A one generation later, starting to spawn/repeat/recurse then
which is inspired by the (existing) external link [1] (13 MB!). Maybe an image instead of the ASCII graphic would be even more apropriate?
Also the Fibonacci example 2 refers to example 1. Then ex. 1 should have a start/axiom/initiator of B (and the above diagram extended accordingly), else the reference doesn't hold true!  Deerwood (talk) 05:02, 1 July 2008 (UTC)
Example 1 seems clearly wrong. Also, it's unclear what the terminology (A → AB), (B → A) means. Does (A → AB) mean "A gets followed by AB"? Or does it mean "A gets replaced by AB"?
If (A → AB means "A gets followed by AB" then example 1 is clearly incorrect. In that case, we would have
 n=0 : A
 n=1 : AAB
 n=2 : AABA
 n=3 : AABAAB
 n=4 : AABAABA and so on. In short, you'd always get nothing but a repetition of AAB over and over again. Since that's obviously not what an Lsystem does, your explanation doesn't seem to have made clear what's going on.
If, on the other hand, (A → AB) means "A gets replaced by AB," then your first example is also clearly incorrect. In that case, we would get
 n=0 : A
 n=1 : AB
 n=2 : ABA
 n=3 : ABAB
 n=4 : ABABA and so on. In short, a mere repetition of AB over and over again. This is also clearly not what an Lsystem does.
So either I'm completely missing something, or the rules you've given are being used in some way that's not at all clear from your explanation, or Example 1 is simply incorrect.
Either way, some more clarification of exactly what the symbols mean and precisely how the rules are supposed to operate would be a big help. — Preceding unsigned comment added by 140.211.8.7 (talk) 20:28, 31 October 2013 (UTC)
Another example: Heighway dragon[edit]
Another nice example is a dragon curve. It is described by the following Lsystem:
 variables : L R
 constants : + −
 start : R
 rules : (R → R+L), (L → R−L)
meaning, respectively:
 L, R — step forward
 plus — turn right by 90°
 minus — turn left by 90°
Some initial strigns are:
 n=0 : R
 n=1 : R+L
 n=2 : R+L+R−L
 n=3 : R+L+R−L+R+L−R−L
 n=4 : R+L+R−L+R+L−R−L+R+L+R−L−R+L−R−L
CiaPan 20:53, 6 October 2006 (UTC)
I've added graftal to the "See Also" section, but does it really need a separate article? There doesn't seem to be a whole lot of difference between Lsystems and graftals. Perhaps the articles should be merged together. What do you think?  Sakurambo 桜ん坊 13:53, 15 May 2007 (UTC)
This is a good suggestion, since, as you noted, there is not much difference. In fact, a graftal is an LSystem. So I definitely support this idea. Kwvan (talk) 18:29, 12 October 2009 (UTC)
Better examples[edit]
Some of the examples given in this article are a bit rubbish. The first example provides no explanation of what is going on. What does the string "ABAABABAABAABABAABABAABAABABAABAAB" have to do with algae? If the only important information is the length of each sequence, then how does this differ from Fibonacci's modelling of rabbit populations? The second example is completely redundant — the first example also generates a Fibonacci sequence, in case you hadn't noticed, and in any case, there's a much simpler algorithm for calculating this series, so in what way is this a useful example of the capabilities of an Lsystem? Examples 5 and 9 are quite useless without the rules used to produce these figures.  Sakurambo 桜ん坊 14:10, 15 May 2007 (UTC)
 The Penrose tiling algorithm is given at the article of the same name, though the syntax is different. I could try translating between notations myself, but I am loathe to introduce errors. The modified Koch curve I'm not sure about, from the Koch curve page the standard curve uses
Alphabet : F Constants : +, − Axiom : F++F++F Production rules: F → F−F++F−F
I am guessing that the variant would alternate the production rule between F → F−F++F−F and F → F+FF+F though this is pure speculation from the description, I have no idea how it was actually generated. As to the criticism of the first examples, algae was merely what he was historically trying to model the growth of, I don't think it is meant to represent the useful capabilities of the system, more to provide an example that correlates it with a well known algorithm. Nazlfrag (talk) 06:27, 13 June 2008 (UTC)
Explanations[edit]
I added an explanation ASCII art to the first example and hope this doesn't get deleted immediately without discussion.
Visitors/readers of an encyclopedia ain't expected to be mathematicians, programmers or specialists in any way, are they? Readers should at least be able to understand the concept/essentials ... may be, one or the other reader then gets inspired to read on, learn and understand? And, may be, contribute?  Deerwood (talk) 03:38, 3 July 2008 (UTC)
IFS[edit]
Is there a reference for the statement that "Lsystems can also be used to generate selfsimilar fractals such as iterated function systems"? Richard Pinch (talk) 21:17, 16 July 2008 (UTC)
I removed that bit about IFSs in the intro, as I thought it was stated in a misleading way. In my understanding, IFSs and Lsystems are considered two different methods both able to generate fractal objects. Oftentimes an Lsystem (usually with Turtle interpretation) and an IFS can generate the same object (such as the Koch curve) however in these cases we wouldn't say the Lsystem is generating an IFS itself (i.e., the set of transformations). The formal relationship between IFSs and Lsystems is an area of research which could serve as its own section. There are methods of constructing equivalent IFSs out of certain kinds of Lsystems [2] (equivalent meaning they each generate the same object), and also methods of expressing certain kinds of IFSs as equivalent Lsystems [3]. Because they are quite expressive, perhaps you *could* have an Lsystem which quite literally generates an IFS. However, I don't think that's what the intro was getting at, as Lsystem fractal generation is most often written about in the context of Turtle graphics. Druggiero (talk) 02:08, 18 March 2018 (UTC)
Examples...[edit]
Example 1 and 2 are practically the same system; having both is somewhat redundant.
Example 3(?) the dust example, should be changed to use conventional notation namely F for draw forward and f for move forward.
Example 5(?) the penrose tilings example, doesn't supply the rules for the system; the rules need to be added or the example scrapped.
All the examples really need reworking; the term 'constants' isn't one that's really used in any of the published papers on Lsystems.
The article could use an example of the various common types of Lsystem, stochastic (random), parametric and context sensitive.
87.194.144.173 (talk) 15:36, 3 May 2010 (UTC)
Cantor example is nothing like the diagram[edit]
The rules give:
n = 1 : ABA n = 2 : ABABBBABA n = 3 : ABABBBABABBBBBBBBBABABBBABA n = 4 : ABABBBABABBBBBBBBBABABBBABABBBBBBBBBBBBBBBBBBBBBBBBBBBABABBBABABBBBBBBBBABABBBABA
now only if each line is scaled to the same lenghth might you get something like the picture. Paddy (talk) 23:33, 14 May 2011 (UTC)
 The scaling is so typical, perhaps it was overseen to mention it. The Lsystem itself is just the evolution of the character strings from one generation to the next. On top of that one may feed the character string of each generation as command sequence into a drawing machine like the (LOGO) Turtle. To obtain convergence of some kind one has to care how the characters relate to commands. This means adjusting the angles and step sizes, and also the orientation of the turtle at the start point, if in 2D. In the Cantor example this is simple  three times as many characters, each a move forward, means one third of the step size from one generation to the next.LutzL (talk) 13:19, 15 May 2011 (UTC)
Chomskys "Ultraconservative" views[edit]
Without wanting to make any statement about the facts, could the sentences "yes: in language theory, Chomsky is ultraconservative" please be reworked or removed? This does not sound very encyclopedialike. In general, the whole paragraph "Chomsky's conservative...refer to Chomsky.[2]" should probably not in the introduction of the article but maybe at some later point. 95.117.217.100 (talk) 11:24, 25 July 2011 (UTC)
 I have removed that paragraph from the article's lead. I am not completely sure what the editor who wrote this was trying to say, but in any case it has no relevance to the subject of this article. Gandalf61 (talk) 11:40, 25 July 2011 (UTC)
Contextfree systems[edit]
I don't know Lsystems so well but in general formal languages the contextfree ones are a strictly larger class that the mentioned equivalents of regular languages. It seems to apply here as well. Can someone competent look at it and eventually fix it? Neználek (talk) 13:17, 11 April 2012 (UTC)
This Article Needs A ReWrite[edit]
As it is now, I can't tell if it's supposed to be about some type of mathematics or what. The article has tons of images of random plants and is talking all about biology and other nonmath things. I'm pretty sure the concept of "LSystem" is purely mathematical.... please remove these ancillary or tangential "connections" or at least dont make them the focus of the article anymore. — Preceding unsigned comment added by 71.201.95.139 (talk) 21:02, 8 May 2013 (UTC)
 Lsystems are a mathematical concept that have applications in modelling plants and other organisms. We can't write about Lsystems without including these applications. However, I have modified the lead paragraph so that it says what an Lsystem is before it mentions applications in biology. Gandalf61 (talk) 08:48, 9 May 2013 (UTC)
Edit by RCB I think so too, the article is not precise. Like for example "growth patterns of various types of algae, such as the blue/green bacteria Anabaena catenula."  Algae are NOT BACTERIA! — Preceding unsigned comment added by 62.61.159.141 (talk) 13:38, 22 June 2015 (UTC)
 The thing the article is talking about is what is known as Cyanobacteria. One of the common names for cyanobacteria is "bluegreen algae". It may be a misnomer, but it is not at odds with common usage. — Preceding unsigned comment added by 2003:69:CD6A:F401:D189:4DF8:E1B0:B7D0 (talk) 11:53, 15 September 2015 (UTC)
 It isn't at odds with common use of bluegreen algae, but the term algae does not include bluegreen algae. Referring to the one as the general case, and the other as a specific case, is plainly wrong. The Real Marauder (talk) 21:18, 18 May 2017 (UTC)
Subset or Superset of Languages[edit]
The article states in the "Lsystem structure" section that "Lsystems are strict subsets of languages". Since formal languages are produced by applying only one production rule at a time in each iteration, but Lsystems apply all possible matching production rules in each iteration, shouldn't Lsystems be considered supersets of languages (or, equivalently, that languages are strict subsets of Lsystems)? At present, there is no citation or reference for the subset claim. — Loadmaster (talk) 15:40, 25 October 2016 (UTC)
Angle Used for Koch curve[edit]
Should be 60 degrees not 90 degrees. Flaviusvulso (talk) 19:25, 24 March 2017 (UTC)
External links modified[edit]
Hello fellow Wikipedians,
I have just modified 2 external links on Lsystem. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 Added archive https://web.archive.org/web/20020503212834/http://spanky.triumf.ca/WWW/FRACTINT/lsys/truefractal.html to http://spanky.triumf.ca/www/fractint/lsys/truefractal.html
 Added archive https://web.archive.org/web/20031220074045/http://www.generation5.org/content/2002/lse.asp to http://www.generation5.org/content/2002/lse.asp
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to declutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}}
(last update: 18 January 2022).
 If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
 If you found an error with any archives or the URLs themselves, you can fix them with this tool.
Cheers.—InternetArchiveBot (Report bug) 22:01, 25 May 2017 (UTC)
Hilbert curve example[edit]
Hi, the Hilbert_curve#Representation_as_Lindenmayer_system is not so didactic as here, can you add the Hilbert curve (in a more didactic steps) as more one example?