Latööcarfian Explorer (Scratch ed.)

I have made a Scratch project that generates Latööcarfian images from chaotic attractors as described in Clifford A. Pickover’s Chaos in Wonderland: Visual Adventures in a Fractal World (St. Martin’s, 1994). It is based on the BASIC listing on page 268 of the book. Link to project page where you can view the complete instructions.


These are the same kinds of images I wrote about here. I have used them as the magical names of entities I have evoked.

Generative Sigils

Related articles: TAD2011.06 Lorenz Attractor | Processing + EPOC via OSC

In his book, Chaos in Wonderland: Visual Adventures in a Fractal World, Clifford Pickover describes methods for generating beautiful, complex images from certain chaotic equations. In the context of the book’s narrative, these images are the dreams of a species of inorganic, computer-like entities called the Latööcarfians — the “dream-weavers of Ganymede.” Here I consider using these images as algorithmically generated magical sigils (cf., generative art).

The images are generated by recursively plotting:

xt + 1 = sin(ytb) + c sin(xtb)
yt + 1 = sin(xta) + d sin(yta)

(There are variant equations that produce “mutations” — see “Appendix A: Mutations of Equations”, pp. 209–210.) Here is a sketch that will draw the following image in Processing:

/** Generative Sigil 1
 * Joshua Madara,
 * Based on code on pg. 26 of _Chaos in Wonderland_
 * by Clifford A. Pickover
 * Good ranges for a, b, c, and d:
 * (-3 < a, b < 3)
 * (0.5 < c, d < 1.5)

float a = 1.5641136;
float b = 2.7102947;
float c = 0.9680385;
float d = 0.995141;
float x, y = 0.1;
int counter = 0;
int iterations = 500000;

void setup() {
  size(700,700,P2D); // remove P2D for Processing v2.0
  background(0); // black
  stroke(255,255,255,90); // white, semi-transparent

void draw() {
  translate(width/2, height/2); // draw from center of window
  float xNew = sin(y*b) + c * (sin(x*b));
  float yNew = sin(x*a) + d * (sin(y*a));
  x = xNew; y = yNew;
  point(x*100, y*100);
  if(counter >= iterations) {

Generative Sigil 1

I hypothesize that the key to using such images successfully as magical sigils is to assign non-trivial values to the inputs, a, b, c, and d. E.g., one could randomly generate the values at an auspicious moment, or acquire values from some act or object, and map those to the optimal ranges for the algorithm’s inputs. The magician could wear the Emotiv EPOC during a magical ritual and at the ritual’s apex a Processing sketch could map data from the EPOC to the a, b, c, and d values for generating the image. The images could subsequently be used for divination or evocation.

N.b., even while keeping the input values within optimal ranges, not all sets of values produce interesting images. Here is a Processing function to calculate the set’s Lyapunov exponent (based on the code on p. 62 of Chaos in Wonderland) — values >= 0.5 tend to be more interesting:

float calcLyapunovExponent(float a, float b, float c, float d) {
  float Lsum = 0;
  float n = 0;
  float x = 0.1;
  float y = 0.1;
  float  xe = x + 0.000001;
  float ye = y;
  float xx, yy, xsave, ysave, dLx, dLy, dL2, df, rs, L = 0;
  float bigNumber = 2139095039; /* Pickover's algorithm calls 
     for a long int (1000000000000) here, but I often get NaN returned 
     when using it in Processing, and I have found that using a 
     large float returns a value close enough to Pickover's to 
     be useful. */
  for(int i=0; i<10000000; i++) {
    xx = sin(y*b) + c*sin(x*b); yy = sin(x*a) + d*sin(y*a);
    xsave = xx; ysave = yy; x = xe; y = ye; n++;
    xx = sin(y*b) + c*sin(x*b); yy = sin(x*a) + d*sin(y*a);
    dLx = xx - xsave; dLy = yy - ysave; dL2 = dLx*dLx + dLy*dLy;
    df = bigNumber*dL2; rs = 1/sqrt(df);
    xe = xsave + rs*(xx - xsave); ye = ysave + rs*(yy - ysave);
    xx = xsave; yy = ysave; Lsum = Lsum + log(df); L = 0.721347*Lsum/n;
    x = xx; y = yy;
  return L;

Talismachine Draft

Here is a proof-of-concept draft I made last night, for the talismachines. The print was designed in Inkscape and laser-printed onto cotton letterhead, then hand-painted over with Bare electrically conductive paint. It includes a coin-cell battery, on-off switch, and white LED from the LilyPad Arduino family. The inverted triangle in the upper-right is an alchemical symbol for blood, and contains a drop of (my) blood.

Talismachine Draft 2

The magical purpose of the talisman is to give “great knowledge and wisdom in mechanical arts,” and it features the sigil of the Goetic demon Barbas (or Marbas). It shows also the hammer and anvil of Tubal Cain, and a classical symbol for fire indicating Hephaestus/Vulcan. Its practical purpose is to experiment with the media. The proper talismachines will be screen-printed on parchment or canvas, and will include a LilyPad microcontroller for more interesting interactions. I may need to run conductive thread behind the parchment, because the Bare Paint rapidly increases its resistance over the lines.

Talismachine Draft 5

Click here for more photos.

Bare Conductive Paint Has Launched!!

Related articles: Conductive Sigils

Bare Conductive creates electrically conductive paint (Bare Paint) and body paint (Bare Skin). I first wrote about BC in 2009, and have been waiting since then for it to become available, which it now has—well, sort of. Bare Paint is available now, and Bare Skin is scheduled to go on sale at the end of the October (according to their website).

This opens up a vast dimension of possibilities for magic sigils and art that interact with electronic components and system.