Group Abstract Group Abstract

Message Boards Message Boards

3
|
30 Views
|
1 Reply
|
3 Total Likes
View groups...
Share
Share this post:

Jellyfish duo kinetic art: advanced spatiotemporal design at tiny algorithm length

enter image description here

Original ideas:

Art, perception, computation

New kinetic art. Rich motion via tiny math. Compression is an aspect of art. Mind connects the dots without lines; and also in time - beyond space. Artist's design is spatiotemporal - the dynamics is Intricate - time are space pattern are entangled. High visual complexity from a very short code.

OLD QUESTION: How does the mind make a creature from dots?

Enactivism says perception is something you do, not something that happens to you. 4E cognition puts that into four plain ideas: your mind is embodied in a body, embedded in a situation, enacted through action and perception, and can extend into tools, like a screen. This animation shows it cleanly. The code does not contain a “creature” as an object. Your visual system builds one by tracking coherent motion, binding thousands of dots into one moving agent, and using your expectations about how living things move to keep that agent stable from moment to moment. The “life” you feel is the mind doing its job: turning raw motion into a usable world.

Original p5.JS Processing code:

a=(y=i/790,d=mag(k=(y<8?9+sin(y^9)6:4+cos(y))cos(i+t/4),e=y/3-13)+cos(e+t2+i%24))=>point((q=yk/5(2+sin(d2+y-t4))+80)cos(c=d/4-t/2+i%23)+200,qsin(c)+d9+60) t=0,draw=$=>{t||createCanvas(w=400,w);background(9).stroke(w,116);for(t+=PI/90,i=1e4;i--;)a()}

Translation into Wolfram Language Compile function

exactPointData = Compile[{{t, _Real}},
   Table[
    Module[{y, k, e, d, q, c, xCoord, yCoord, iVal},

     iVal = N[i]; 
     y = iVal/790.0;
     e = y/3.0 - 13.0;

     k = If[y < 8.0, 
        9.0 + 6.0 * Sin[BitXor[Floor[y], 9]], 
        4.0 + Cos[y]
       ] * Cos[iVal + t/4.0];

     d = Sqrt[k^2 + e^2] + Cos[e + t*2.0 + Mod[i, 2]*4.0];
     q = (y * k / 5.0) * (2.0 + Sin[d*2.0 + y - t*4.0]) + 80.0;
     c = d/4.0 - t/2.0 + Mod[i, 2]*3.0;

     xCoord = q * Cos[c] + 200.0;
     yCoord = -(q * Sin[c] + d*9.0 + 60.0);

     {xCoord, yCoord}
     ],

    {i, 9999, 0, -1}
    ],
   RuntimeOptions -> "Speed"
   ];

Collage of random frames, rotations, reflections

ImageCollage[Table[
ImageCrop@
ImageRotate[#,RandomChoice[{0,Pi}]]&@
ImageReflect[#,RandomChoice[{Left,Top}]]&@
Rasterize[Graphics[
  {Opacity[0.9], PointSize[.002], White,Point[exactPointData[RandomReal[8Pi]]]},
  Background -> GrayLevel[0.035], (* background(9) approx 9/255 *)
  PlotRange -> {{40, 360}, {-390, -10}}, 
  ImageSize -> 550
  ]],6],Method->"Rows"]

enter image description here

3D image stack in semitransparent background

Image3D[Rasterize/@frames,ViewPoint->Top,Background->Opacity[.75],ImageSize->550]

enter image description here

3D image stack rotation in fully transparent background

Image3D[Rasterize/@frames,ColorFunction->"XRay",
Background->Black,BoxRatios->{1, 1, 1},SphericalRegion->True]

enter image description here

Animate with Manipulate function:

Manipulate[
 Graphics[
  {Opacity[0.75], PointSize[.002], White,Point[exactPointData[t]]},
  Background -> GrayLevel[0.035], 
  PlotRange -> {{40, 360}, {-390, -10}}, 
  ImageSize -> 550
  ],
 {{t, 19.35, "Time"}, 19.35, 19.35+ 8 Pi,AnimationRate->.1,Appearance->"Open"}
]

enter image description here

Animated GIF (see top image)

frames=Table[
 Graphics[
  {Opacity[0.9], PointSize[.002], White,Point[exactPointData[t]]},
  Background -> GrayLevel[0.035], (* background(9) approx 9/255 *)
  PlotRange -> {{40, 360}, {-390, -10}}, 
  ImageSize -> 550
  ],
 {t, 19.35, 19.35+ 4 Pi, 4 Pi/200.}
];

SetDirectory[NotebookDirectory[]]

Export["wjelly.gif",frames,ImageSize->550,"DisplayDurations"->.03]
POSTED BY: Vitaliy Kaurov

enter image description here -- you have earned Featured Contributor Badge enter image description here Your exceptional post has been selected for our editorial column Staff Picks http://wolfr.am/StaffPicks and Your Profile is now distinguished by a Featured Contributor Badge and is displayed on the Featured Contributor Board. Thank you!

POSTED BY: EDITORIAL BOARD
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard