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, hyperRitual.com
 * 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() {
  println(counter);
  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);
  counter++;
  if(counter >= iterations) {
    println("done!");
    noLoop();
  }
}

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;
}

MagiCalc 2

I have created a new version of the Magical Probability Calculator. Edited (2015-12-29) to say you can view the code here, but it was written for Processing 1 and no longer works in 2 or 3 as-is, nor does the online Java applet work now. However, I have recently made a JavaScript version sans Processing.

MagiCalc 2 Screenshot

Changes in v0.2:

  • Updated m calculation to reflect changes made in Octavo.
  • Fixed NaN errors for various combos of p=1, m=1.
  • Added toggle for amplification/attenuation.
  • Added dynamic text displaying calculations.
  • Added graph to plot p_m.
  • Added percentage views for glsbm.

Enhancement ideas:

  • Add a toggle and slider for countermagic. (I had intended to do that for this release, but the logic to select ATT when e.g. the countermagic (M_C or Mcontra) exceeds M, was blowing up controlP5, and I did not find an elegant solution before the time I wanted to publish the new version.)

Magical Probability Calculator

Related articles: Psyleron REG-1 | Empirical Evidence of the Efficacy of Sex Magic?

Here is a Processing sketch that calculates magical probability per Peter Carroll’s first three equations of magic from Liber Kaos [1]:

  1. M = GL(1 − A)(1 − R)
  2. Pm = P + (1 − P) × M1/P
  3. Pm = P − P × M1/(1 − P)

Magical Probability Calculator

Edited (2016-01-13) to remove link to Java applet version since it no longer works predictably. Here is a somewhat improved version, also made with Processing, and here is a JavaScript version.

Operation

Use the blue sliders to manipulate the variables. The green and red bars show how natural (P)robability is adjusted by the amount of (M)agical power — (G)nosis and (L)ink increase magical power, (A)wareness and (R)esistance decrease it. The green bar shows magical influence on manifesting a desired outcome (→ 1.0); the red bar shows magical influence on preventing an undesired outcome (→ 0.0). Both bars become brighter as magical power increases.

Please use the comments section below to leave feedback or ask questions, or use the contact form.

Notes & References

  1. 1. Peter J. Carroll, Liber Kaos (Boston: Weiser Books, 1992) 41–51. In The Octavo, Carroll changed the formula for M to GLSB, i.e. Gnosis, Link, Subliminialization, and Belief, each from 0 to 1, and all multiplied together.