11
$\begingroup$

Harold Cohen

Harold Cohen (1928 - 2016) was a British pioneer of computer-generated art. After his studies at the Slade School of Fine Arts in London he became soon well known in London as an abstract painter, representing the UK at the Venice Biennale and other international exhibitions in the 1960s. His work has been widely collected by major museums.

enter image description here

Cohen coloring the forms produced by the AARON drawing turtle at the Boston Computer Museum, 1982.

AARON Software

Cohen started working with computers in 1968, upon his residency as a visiting professor in the Art Department at the University of California, San Diego. There he developed AARON, the earliest program for artmaking. Cohen initially wrote AARON in C but eventually converted to Lisp, citing that C was "too inflexible, too inexpressive, to deal with something as conceptually complex as color."

enter image description here

An early AARON painting (Amsterdam Suite, 1977)

AARON cannot learn new styles or imagery on its own; each new capability had to be hand-coded by Cohen. On the other hand, it is capable of producing a practically infinite supply of distinct images in its own style. Cohen was very careful not to claim that AARON is creative. But he asked "If what AARON is making is not art, what is it exactly?"

enter image description here

Harold Cohen, AARON KCAT, 2001

The robotic turtle

To generate AARON's output, Cohen built his first drawing machine in 1972. Later, he also built other devices, such as flatbed plotters and the robotic turtle (shown below) that drew on enormous sheets of paper.

enter image description here

Cohen's turtle robot in action, SFMOMA, 1979

Current Exhibition

Until May 19, 2024, an exhibition at the Whitney Museum in NYC, Harold Cohen: AARON, traces the evolution of the AARON software.

Mathematica Reproduction

I would like to emulate with Mathematica one of Cohen's abstract turtle drawings, similar to the following image:

enter image description here

Harold Cohen, untitled turtle drawing, 1974

I tried to replicate the abstract organic forms with the following lines:

SeedRandom[6];
Graphics[{
  Darker @ Red,
  Table[
   Rotate[
    Scale[
     FilledCurve @
      BSplineCurve[{
        {i, j}, {i + 1, j},
        {i + RandomReal[{1, 3}], j + RandomReal[{1, 3}]},
        {i + 1, j + 1},
        {i, j + 1}},
       SplineClosed -> True],
     RandomReal[{0.3, 1.0}]],
    RandomReal[{0, 180}] Degree],
   {i, 0, 10, 1}, {j, 0, 6, 1}]},
 Background -> GrayLevel[0.8],
 ImageSize -> 500]

enter image description here

My Question

The forms are too "drop-like" - I think more randomness is required. And, more importantly, I don't have any idea how to subdivide and color the shapes.

$\endgroup$

1 Answer 1

13
$\begingroup$

Update: Smoothing the color transition by restyling each image with itself..

Multicolumn[Table[SeedRandom[r]; ImageRestyle[#, #] &@draw, {r, Range[4]}], 2]

enter image description here

Original

An attempt:

  draw:= Module[{f, img, wsc, sc, ia, ir, count = 120, circularity = -60}, 
      f = Interpolation[Flatten[Table[{{x, y}, -RandomReal[{-85, 85}, {2}] + 
        LCM[x, y]}, {x, 10}, {y, 10}], 1], InterpolationOrder -> 4];
      img = Image[ContourPlot[-f[x, y], {x, 1, 10}, {y, 1, 10}, Frame -> False
        , ColorFunction -> "BrightBands", ClippingStyle -> Automatic], ImageSize -> {1200, 1200}];
      wsc = WatershedComponents[FillingTransform[GradientFilter[img, 2], 0.05, Padding -> 1]] // Colorize;
      sc = SelectComponents[wsc
        , #Count > count && #AdjacentBorderCount == 0 && #Holes == 0 && #Elongation > .4 &];
      ia = ImageAdjust@SelectComponents[sc, "FilledCircularity", circularity]; 
      ir = ImageResize[ColorReplace[Dilation[ia, 6], Black -> RGBColor[.96, .94, .92]], {600, 600}];
      Dilation[Opening[ir, DiskMatrix[8]], 2 ]]

  Multicolumn[(SeedRandom[#]; draw) & /@ Range[4], 2]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.