
The Algorithmic Beauty of Plants (1990) - GregBuchholz
http://algorithmicbotany.org/papers/#abop
======
grownseed
When I was 7, my dad introduced me to my first programming concept ever. While
having a walk in the forest, he asked me to look at fern and made me inquire
about its structure. He proceeded to tell me about recursivity and a very long
conversation ensued. Needless to say, my mind was absolutely blown.

Over the years, we had many discussions like that first one, relating
programming concepts to real-life principles. My dad was never (and still
isn't) a "hardcore" programmer, but as far as understanding and explaining
logic go, I'm still to find somebody capable of explaining things so simply
and beautifully.

Quite a few years later at University, my teacher with two PhDs failed to
explain the basics of OOP to my class in a 4 hours span, entangling himself
and everybody in lingo and concepts that even confused me, who already knew
OOP. Academics would sometimes do well to relate to the real world and deflate
their egos.

~~~
wallflower
> Academics would sometimes do well to relate to the real world and deflate
> their egos.

This is really the key to teaching beginners. The difference between telling
someone what something is versus encouraging them to see it for themselves.

Apart from the tired car analogy, how would you (or better how would your dad
have) explain(ed) OOP to a relative beginner?

We find that we sometimes have to start with the very basics - as in a
variable is a 'box' to put a value in. Literally, we hand out boxes. Really,
simple intuitive stuff like variables is something that is non-intuitive for
most people.

~~~
SixSigma
We keep the cooking equipment and raw materials in the kitchen. Same goes for
the bathroom, laundry, den, bedroom.

These are all "rooms" which share features like doors, heating, floors,
lights.

These will be in building, which could be detached, block, semi-detached,
terrace.

These also have common processes but differences.

We human computers move between these rooms, sometimes we bring data with us
(are we hungry, sleepy, with friends, naked) and use the processes and data in
the rooms to perform useful actions. Once compete we might be in a different
state (dressed, sated, refreshed, clean), the room might be different for the
next person (dirty, empty, wet), we might leave the outputs there or take them
with us to a different room or even outside of the building.

------
foenix
Another great resource about fractals and l-systems is Jeffery Ventrella's
"Brainfilling Curves", which is also available for free online to read and
download: [http://www.fractalcurves.com/](http://www.fractalcurves.com/)

~~~
bglazer
Oh wow. This is a huge nostalgia rush. Jeffery Ventrella's website absolutely
hooked me on programming. The visualizations were totally mesmerizing for me
as a 10 year old kid. Especially this:
[http://www.ventrella.com/Ideas/Fluid/fluid.html](http://www.ventrella.com/Ideas/Fluid/fluid.html).
It's a 167kb fluid simulation that ran smoothly on a pc circa 1999.

And Darwin Pond too! Most engaging artificial evolution simulation I've ever
seen.
[http://www.ventrella.com/Darwin/darwin.html](http://www.ventrella.com/Darwin/darwin.html)

Edit: I've been looking for this forever. Thanks for the link.

------
jordan0day
For something in a similar vein, but perhaps more approachable, check out The
Computational Beauty of Nature ([http://www.amazon.com/The-Computational-
Beauty-Nature-Explor...](http://www.amazon.com/The-Computational-Beauty-
Nature-Explorations/dp/0262561271)).

~~~
gwf
Thanks for making the recommendation for CBofN (I am the author). I should
also add that the naming of my book was clearly inspired by ABofP (or ripped-
off, depending on your point of view). ABofP was a real inspiration to me.

~~~
jordan0day
I really loved CBoN -- it really is a very good book. I felt like each chapter
was approachable enough that I could just casually read it and felt like I
"got it", but when I sat down with pencil and paper and worked through it I
gained a real appreciation for each section.

~~~
gwf
Thanks. That was an explicit goal of mine, so I am glad that it worked out
that way for you.

------
placebo
I can understand why the algorithm for some fractals can turn out to look like
plants. What I don't understand (probably for lack of reading up on the
subject) is why do plants look like fractals. I mean you won't find some
microprocessor in every plant issuing orders to grow according to a fractal
formula so I assume this is a emergent statistical phenomena from constraints
within the plant genetics - but is the bridge between the fractal shapes and
plant shapes well understood?

~~~
dougabug
Fractals have no inherent dependency on microprocessors. Microprocessors can
be used to generate fractals simply because they can execute the generation
rules of a fractal, but you could could likewise generate them with anything
which can perform a specific affine transformation, for instance a copy
machine. An affine transformation is simply a linear transformation together
with a translation, for fractals the linear transformation would typically be
a scaling composed with a rotation. You could easily imagine how you might
follow such a simple growth pattern, just iterate the same scale rotate and
translate operation mechanically so the branches look like the whole thing.

~~~
placebo
I wasn't really suggesting that microprocessors are required to generate
fractals, but rather that I don't understand how the process that eventually
generates the fractal shapes occurs in plants. You have a good point that all
that is needed is a relatively simple operation repeated in every part of the
system which indeed makes it easier for me to imagine how the shape forms.
From what level this operation starts to be expressed is probably something
botanists can answer.

------
username223
Mandatory Romanesco broccoli link:

    
    
        https://en.wikipedia.org/wiki/File:Romanesco_broccoli_(3).jpg
    

It's almost too cool-looking to eat.

------
dmritard96
Thanks for this, my mom is a botanist and I have always been into drawing
plants with code.

------
obsurveyor
I've got this on my bookshelf right next to "The Algorithmic Beauty of Sea
Shells" and "The Science Fractal Images". Hope more old books like this get
digital releases for free/modest cost.

------
agumonkey
Mandatory Turing morphogenesis :
[http://www.brandeis.edu/now/2014/march/turingpnas.html](http://www.brandeis.edu/now/2014/march/turingpnas.html)

------
spacemanmatt
I didn't realize what a prize it was to buy a hardback edition in the mid-90s.
Now I keep the e-book on my tablet for reference. Not that I have to refer to
L-systems often.

------
jamespollack
after reading ABOP, i did a lot of searching on L systems and found this
amazing three.js library -- [http://grow3.zyxxy.de/](http://grow3.zyxxy.de/)

------
kristopolous
couldn't someone also entitle this "the incredible clumsiness of human
perception"

------
twtwtaway
How can one not believe in God after seeing this?

~~~
tizzdogg
Because it shows that it just takes simple math and algorithms to make complex
beautiful things, and not an all-powerful deity?

Some people see the order behind natural beauty as evidence of a designer, but
I think this actually demonstates how beautiful systems can arise on their own
without guidance. If something was designed by an all-powerful being, it would
be surprising if we mere humans could understand its patterns at all.
Different perspectives, I guess.. you are of course free to believe whatever
you want.

~~~
twtwtaway
Yeah, different perspectives indeed. But to me it seems unreasonable that for
example the tablet I'm writing this on somehow came into existence by itself.
Touchscreen, CPU, OS and no creator at all? The things we see in nature are
much more complex than my tablet?

~~~
alexqgb
The fault in your logic is your failure to account for the _extrordinary_
difference in timescales involved in the creation of tablets and ferns.

It's worth remembering that Charles Darwin was a geologist by training. At the
time, geology was a relativly new discipline, and the first line of scientific
inquiry that demanded any concept of deep time. Its development signaled the
dawning realization that the Earth was a _lot_ older than anyone had
previously guessed ("possibly a _billion_ years" speculated Charles).

Acquiring an accurate measure of the timescales on which geological events
played out is what set the stage for an evolutionary theory of life's
development. Indeed, the theory of evolution is virtually inconceivable in the
absence of these scales.

~~~
twtwtaway
So what you are saying is that given enough time and some random events my
tablet could actually come to existance all by itself?

And who set the whole environment for this to happen?

~~~
alexqgb
Obviously not. And that's for the simple reason that the theory of evolution
describes _living_ things. As I'm sure you know, a tablet is not a living
thing. Therefore, the theory of evolution doesn't even try to account for its
appearance.

Of course, people talk about the evolution of inanimate objects all the time.
But most of them are aware that they're using the term loosely, and not it its
proper scientific sense. In other words, when people talk about the
"evolution" of tablets, they are not asserting that new tablets are the
product of existing tablets having sex with each other and producing little
baby tablets which ship themselves to retail outlets when they're all grown up
and ready for sale. Rather, they are speaking metaphorically, and describing a
process which, in many ways, _looks_ like evolution.

Nevertheless, the incremental development of tablets is not actual evolution
any more than a person wearing a lion costume is an actual lion. I hope this
clears things up

