Lets do some Lex Systems!

   2243   3   4
User Avatar
Member
277 posts
Joined: July 2006
Offline
Hi!
A year ago I was writing my Bachelor of Science Thesis “Lex Systems - specification of high-level character processing language”.

I have been working for a long time on this programming language, which could very efficiently generate L-Systems and is a lot more powerful than standard L-Systems processors.
Technically, it allows for definition of almost all languages of Chomsky's Type-2 and 3 grammars.

Results I get were really good. I was planning that I would post them in a couple of months, because I wanted to start off with my blog or small website. But the reality was horrible. I am working as technical director in one of the film studios in Poland and in parallel I'm developing several open and closed source projects, so I've got so much work, that probably this website will not be alive for log time

The following results are a year old, but this really does not matter

Lex Systems is a variant of formal gramma, but more universal, than L-Systems. It even allows for writing standalone programs performing some computation, make some complex algorithms and of course generate L-Systems. The most powerfull feature is its syntax, which is very easy to learn (a lot more straightfoward than L-Systems syntax, but it is simmilar) and gives users a lot more control over the execution and data flow. This syntax is powerful and simple - rules in Lex-Systems could be as short as in L-Systems.

What is really interesting is that my compiler of Lex-Systems is a LOT faster than Houdini's one (I tested it against Houdini 9,10,11,12 and 12.1 - almost the same results). It is written in C and it is optimized to get really good results and be stable even for large files.
It seems, that my solution have a lot lower computational complexity, that Houdini's solution.
I and a lot of people, that were reading and rating my work, have tested if results are correct. They are (we were testing if the resulting geometry is the same. Because of the size of the geometry, the tests were executed on dells workstation with 2*3.2GHz Xeon and 64 Gb of RAM).

So lets put some facts in this post!

I was testing the generation of L-Systems, not the drawing process in viewport! The tests are running against houdini batch and houdini master (fx) without displaying the results in viewport (for example by telling only the node to cook)

some tests:

premise: FFFA
rules:
A -> !"////////B
B -> &FFFA

for the first 14 generations results are similar, but next generations give us real feedback about whats going on:

generation 17 - houdini: 0.84s, Lex-Systems: 0.29s
generation 18 - houdini: 10.65s, Lex-Systems: 0.53s
generation 19 - houdini: 24.25s, Lex-Systems: 0.87s
generation 20 - houdini: 144.61s, Lex-Systems: 1.58s
generation 17 - houdini: 345.49s, Lex-Systems: 2.58s
generation 21 - houdini: 2,013.52s, Lex-Systems: 4.76s
generation 22 - houdini: 3,887.33s, Lex-Systems: 7.28s
generation 23 - houdini: crash, Lex-Systems: 14.28s

Please notice, that the 22th generation took about 1 hour Houdini to process and only about 7 second L-Systems to get the same results!

another example:


premise: F+F+F+F
rules:
F -> F-F+F+F-F+F-F-F+F

generation 3 - houdini: ~2*10^(−3)s, Lex-Systems ~2*10^(-3)s
generation 4 - houdini: 2.7*10^(−2)s, Lex-Systems 4*10^(-3)s
generation 5 - houdini: 1.01s, Lex-Systems 2.4*10^(-2)s
generation 6 - houdini: 371.5s, Lex-Systems 0.2s
generation 7 - houdini: after 7 hours we get 80% of generation process, Lex-Systems: 1.76s
generation 8 - houdini: impossible, Lex-Systems: 15.97s
generation 9 - houdini: impossible, Lex-Systems: 145.77s


——————————-

Additional I created 2 more tools: a plugin for houdini, and pythons translator of L-System language to Lex-Systems language (it has less than 100 lines of code, because the basics of Lex-Systems are simmilar to L-Systems)

As a result - all my previous tools that were using L-systems now work A LOT faster and allow for making animation of L-Systems parameters really fast.

Due to some limitations in license of my thesis I cannot make it public (I have to talk about it with my university, but I've got not so much time).

I would be happy to hear some feedback!
If you would like, I will post some more info!

Thank you,
Wojciech Daniło
Edited by - Sept. 9, 2012 07:16:56
User Avatar
Member
339 posts
Joined: Aug. 2007
Offline
That sounds really cool, I'm sure everyone would love to see more! Can you link to any papers you referenced?
Jesse Erickson
Fx Animator
WDAS
User Avatar
Member
277 posts
Joined: July 2006
Offline
If I only get agreement from my university I'll make the thesis public The problem is, it is in polish

I don't think, that papers I referenced would help in understanding deeply this topic, because the language and compilers algorithms were developed exclusively by me.

The main positions in reference papers, that could help are:
(in polish) Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. Kompilatory. Reguły, metody i narzędzia.
Wydawnictwo Naukowo-Techniczne, 2002

Przemyslaw Prusinkiewicz, Aristid Lindenmayer. The Alogirthmic Beauty of Plants.
Springer, New York, 2004.
User Avatar
Member
7743 posts
Joined: July 2005
Offline
danilo2
(in polish) Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. Kompilatory. Reguły, metody i narzędzia.
Wydawnictwo Naukowo-Techniczne, 2002

This is just the Dragon Book [en.wikipedia.org].

danilo2
Przemyslaw Prusinkiewicz, Aristid Lindenmayer. The Alogirthmic Beauty of Plants.
Springer, New York, 2004.

This is available online for free these days at Dr. P's website
http://algorithmicbotany.org/papers/#abop [algorithmicbotany.org]
  • Quick Links