Algorithmic art
Jean-Pierre Hébert, a 68-year-old French artist, is an algorist. This is a name, proposed by Jean himself, for artists who create arts using unique computer algorithms. Apple featured Jean and his works in May 2008. You can read about him here so I am not going to repeating writing about him and his works.
When I was doing shopping alone this evening, the idea flashed in my mind. I could use Mathematica to explore algorithmic art. So, I sat down in front of my Mac and explored. Here’s my first piece of algorithmic art . It is not comparable to what Jean has done but is definitely a good start. I can’t call myself algorist yet because I created no algorithm.
The following examples are two very simple mathematics equations. The plots demonstrate that mathematics can be visualized as art.
Butterworth low-pass filters
I was reading about Butterworth low-pass filters since two weeks ago. Signal processing was not my favorite but this particular linear analog electronic filter had somehow captured my attention. I have interns working on some projects. One project uses Butterworth low-pass filters to process signal acquired from some sensors.
I have to verify their works using Mathematica on Mac OS X for data modeling. But there is a problem with this software. It does not have a built-in function of Butterworth low-pass filter so I need to build one.
The gain G(ω) of an n-order Butterworth low pass filter is given in terms of transfer function H(s) as:

where ωc is break frequency.
The Mathematica code with break frequency normalized at 1 rad/s:
butterworth[w1_, w2_, o_] = 1/(1 + (w1/w2)^(2*o));
LogLinearPlot[
Evaluate[Table[
10*Log[10, butterworth[w1, 1, order]], {order, 5}]], {w1, 0.01, 100},
PlotRange -> {-100, 0}, PlotPoints -> 100, ImageSize -> 400]
Export["butterworth.jpg", %]

Plot of the gain of Butterworth low-pass filters of the n-order 1 through 5.
Mathematics - The Systematic Reasoning
I remembered the way my mathematic teachers taught maths in class. Although none of them explained why we must learn maths, as it was the way supposed to be, they taught me systematic problem solving. I began to appreciate the beauty of mathematics when I started immersing myself in programming. The algorithm development and language constructs which are based on mathematics fascinate me with its beauty.
A good programming language teaches us systematic discipline and systematic reasoning. The first programming language which I learned was Commodore BASIC. I hated that. I learned half way (as the matter of fact, 2 days) and I switched to Apple Basic. In the mid 1980s, Apple II was the most popular home computer after Commodore VIC 20. Apple II that ran Apple DOS caught on the wagon very fast. The most common programming tool on Apple II was of course Apple BASIC. That was my first programming language and I had written many programs with it.
Then I was exposed to FORTRAN 77. The language construct was pretty much like Apple BASIC. I caught on with FORTRAN pretty fast. Then under some influences from friends whom I met at the computer center, I learned Apple Pascal. We challenged one another to increase the boot speed of Apple DOS. We rewrote Apple DOS with Apple Pascal and evidently increased the booting speed of Apple DOS.
Pascal is a very structured language (compared to Apple BASIC and FORTRAN 77) invented by Professor Niklaus Wirth to teach students programming and systematic reasoning. The structural construct of the language enable the programmer to think of the problem in a structural approach. Pascal cultivates structural discipline in solving programming problems. Pascal has provided me most of the necessary training in systematic discipline and systematic reasoning in solving problems.
When CP/M was introduced on Apple II, I was able to use UCSD Pascal on CP/M enabled Apple II machines. It won’t be long before IBM and IBM compatibles (8086) stirred up a turmoil with MS-DOS. Then, Turbo Pascal (by Borland) emerged. Turbo Pascal was the lightest and fastest compiler at that time. I became addicted in writing computer programs with Turbo Pascal.
Then I caught on with C and C++ and began to develop software with Borland’s Turbo C/C++ compiler. When MS Windows became a de-facto standard on every desktop computers, I dwelled into Borland’s Delphi (based on Object Pascal) to develop GUI applications.
During Apple CP/M era, I was exposed to Ada. I discovered Ada compiler by accident in another computer shop. I bought the program without thinking twice. Of course, it was a pirated copy. There was no copyright law then. But thanks to the pirated Ada compiler, otherwise I would not know such beautiful programming language has ever existed!
In 1995, I started to learn Ada when books were available. In no time, I fell in love with Ada until today. Whenever I was told or perhaps requested to look at computer programs written in any other languages, e.g. PHP, Visual Basic, C/C++ and etc., I feel that represent an insult to mind trained in systematic reasoning as in Pascal papers which Professor Wirth wrote.
Ada and Pascal are very alike because Ada developers had adopted Pascal’s structural language construct. Both Ada and Pascal clearly represent logical expression without any difficulties. Both languages are constructed heavily based on mathematic concepts and thus enforce systematic discipline and systematic reasoning.
My new blog title
As you can see, I have a new blog title “Pragmatic Revelations”. I also like my old title “The Eccentric Logic of An Eclectic Mind”. Actually, I am a little too sentiment to change to the new blog title and not using the old one. When M emailed me she preferred the old title, I did agree with her that my old title is more catchy. But at the same time, I also like Pragmatic Revelations. How greedy I am!
When I write something and come out of some nice ideas, I become sentimental and get attached to them very quickly. So, in order to not losing both, I come out another idea. A little confusing though but I think it matches the new title.
If you notice the title on your browser window, it reads “Pragmatic Revelations ⊃ The Eccentric Logic of An Eclectic Mind”. To help readers understand better, “The Eccentric Logic of An Eclectic Mind”, meaning the unconventional (or unusual or odd) way of logical reasoning of a mind made up of or combining elements from a variety of sources. The dictionary precisely describes “Pragmatic” and “Revelations” so I do not want to repeat their meanings here. Now…
(Super set) A ⊇ B means every element of B is also element of A. A ⊃ B means A ⊇ B but A ≠ B.
Got it?
Computational Mathematics
I am not a mathematician but I realize and love the beauty of mathematics. Our life and surroundings are all driven and governed by mathematics. How?
Everything in this universe can be modeled using mathematics equation. When we move our fingers, when coins are dropped, when we kick, when two cars collide, and everything. Nothing cannot be modeled by mathematics.
Imagine a ripple on a surface of water. How can we model the ripple using mathematics equation? Consider this simple equation:

This 3D model (QuickTime movie) was generated using this simple equation to model the water ripples. Fascinating, isn’t it? Of course, this is only a simple modeling.



Listen to my podcast