Below are the C programs that accompany the book, Pattern Generation for Computational Art. You can download each as you need it, or all of them bundled into a zip file. All the automaton files used in the book can also be downloaded in a zip file.
This software is free and distributed under the terms of the GNU General Public License. It is written in ANSI C and should compile with any C compiler. If you have questions or comments contact: Stefan (stefan at exstrom dot com) or Richard (richard at exstrom dot com).
Generates all words of a given length accepted by an automaton.
Usage: autogen file.aut n s e1 e2 ... file.aut = automaton file n = length of words s = start state ei = end state i
Converts a binary number to decimal.
Usage: d2b n
Calculates the convergent of a continued fraction.
Usage: cfcv a0 a1 a2 ... an ai = simple continued fraction term
Generates the words of a context free grammar.
Usage: cfgen file.cfg n s file.cfg = grammar file n = number of derivation steps s = start variable
Calculates the continued fraction of a real number.
Usage: cfrac x n x = number n = number of terms
Calculates the continued fraction of the rational number p/q.
Usage: cfrat p q
Calculates the continued fraction of the square root of an integer.
Usage: cfsqrt n n = integer
Calculates the continued fraction of a quadratic surd: (A+sqrt(n))/B where n, A and B are integers and n>0.
Usage: cfsurd n A B n, A, B = integers, with n>0
Calculates a Christoffel sequence.
Usage: chseq p q n p = numerator q = denominator n = number of terms to generate, default=p+q
Converts a decimal number to binary.
Usage: d2b n
Translates a sequence of the numbers 0 to k.
Usage: katrans file.kat file.kat = k-automaton file
Generates an L-system string given an axiom and set of production rules.
Usage: lsysgen file.ldf n file.ldf = name of file with axiom and production rules. n = number of times to iterate.
Generates paper folding sequences.
Usage: pfold n m f n = number of terms, 1,3,7,15,31,63,127,... m = number of bits f = function number 0 -> 2^m-1
Generates random binary sequences.
Usage: rndseq n n = number of digits to generate
Generates the Rudin-Shapiro sequence.
Usage: rsseq n n = number of terms
Generates the Thue-Morse sequence.
Usage: tmseq n n = number of terms
Creates an svg file from turtle drawing instructions. Input is read from stdin.
Requires the Cairo graphics library.
Usage: turtledraw angle dangle file.svg angle = start angle dangle = increment angle file.svg = output svg file. Example: chseq 355 113 1872 | katrans t7.kat | turtledraw 0.0 90.0 file.svg
Send comments to: Richard Hollos (richard[AT]exstrom DOT com)
Copyright 2019 by Exstrom Laboratories LLC