OBSERVATION 038

猫

Neko — Cat

Play with it

Press the picture or the button to reduce the points.40,000 → 625 → 40 → 1, then back to 40,000.
At fewer points, dots grow and trails linger to help you follow their paths.
“Listen” maps the displayed points to sound.Changing the count rebuilds the sound.

Chapter
The Sky
Year
2026
Medium
Equation, run live in the browser
Points
40,000
Cycle
20s per turn
Fingerprint
sha256 553393db…74e1

It is stretching.

The soles of its feet never leave the floor.
What moves is a wave passing along the spine.

Where the wave arrives, the chest sinks and the hips rise.
Where it has passed, the back rounds up and returns.
The head keeps almost the same height until the end.

The wave reaches from the head side toward the tail, late.
So there is no fixed shape anywhere in the body.
By the time the front is done the rear is beginning,
and the tail, last of all, curls itself again.

The fur grows short off the cross-sections and roughens only the outline.

Reduce the points and the fur goes first.
At six hundred and twenty-five, a dotted spine with the wave in it, and four legs, remain.
At forty, only the rhythm of the wave.
At one, the path of a point that was fur on the back, lifted by the wave and set down.

Cats are called liquid, but not because they fit the vessel.
Their shape is always in the middle of passing through.

Read and verify the equation
(i, t,
        bd = i < 22000, hd = i < 27000, er = i < 30000, ey = i < 31500, lg = i < 36000,
        sb = i / 5 | 0, q = (i % 5) / 4, S = sb * .618034 % 1, ar = (sb * .754878 % 1) * TAU,
        w2 = i * .324717 % 1, v = i * .754878 % 1, gg = i * 2.39996,
        sg = sin(t * .25 - .9 * (1 - S)), sp2 = max(0, sg), sm = max(0, 0 - sg),
        G = exp(0 - ((S - .8) / .3) ** 2),
        Ys = 42 - 27 * sp2 * G + 11 * sp2 * (1 - S) ** 1.5 + 15 * sm * sin(PI * S) - 3 * sm,
        Xs = 150 * S - 72 + 16 * sp2 * max(0, S - .55),
        R = (13 + 4.5 * sin(PI * S)) * (1 - .25 * sp2 * G),
        e = ((i - 22000) % 5000) / 4999 * 2 - 1, rr = sqrt(max(0, 1 - e * e)),
        sd = i < 28500 ? -1 : 1, pe = (i - 27000) % 1500 / 1499,
        tw = sd < 0 ? .14 * sin(t * .75) : .14 * sin(t * 1.25 + 2),
        Hx = 82 + 6 * sin(t * .25 - .18), Hy = 58 + 3 * sin(t * .5) - 12 * max(0, sin(t * .25 - .18)),
        m = (i - 31500) / 1125 | 0, p = (i - 31500) % 1125 / 1124,
        fx = [-58, -42, 46, 60][m], hs = m < 2 ? .12 : .8,
        u = (i - 36000) / 3999, th = u * (1.7 + .8 * sin(t * .25 - 1.6)),
        X = bd ? Xs - q * 3.4 : hd ? Hx + (18 - 5 * max(0, e)) * rr * cos(gg) + 5 * max(0, e)
          : er ? Hx + 1 + sd * (6 + 3 * pe) * (1 - .55 * pe) - tw * 22 * pe + 3.5 * (w2 - .5) * (1 - pe)
          : ey ? Hx + 9 + 4 * sqrt(v) * cos(gg)
          : lg ? fx + (Xs - (150 * hs - 72)) * (1 - p) * .3 + 2 * sin(PI * p) + 2.6 * (w2 - .5)
          : -72 + 16 * sp2 * .45 - 46 * sin(th) * (1 - .2 * u),
        Y = bd ? Ys + (R + q * 4.5) * cos(ar) * .94
          : hd ? Hy + (15 - 4 * max(0, e)) * rr * cos(gg) + 5 * e
          : er ? Hy + 13 + 19 * pe : ey ? Hy + 3 + 4 * sqrt(v) * sin(gg)
          : lg ? (42 - 27 * max(0, sin(t * .25 - .9 * (1 - hs))) * exp(0 - ((hs - .8) / .3) ** 2)) * (1 - p)
          : Ys + 8 + 44 * (1 - cos(th)) * (1 - .2 * u),
        Z = bd ? (R + q * 4.5) * sin(ar) * .8 : hd ? 12 * rr * sin(gg)
          : er ? sd * (7 + 5 * pe) : ey ? 10 + 2 * (w2 - .5)
          : lg ? (m % 2 ? 9 : -9) + 2 * (w2 - .5) : 4 * sin(u * 7 + t * .25) + 2 * (v - .5),
        Dx = 200 + 9 * sin(t * .25 + 2.6), Dy = 252 + 6 * cos(t * .25 + 5.2) + 3 * sin(t * .75 + 2.6),
        Xr = X * .97 + Z * .24, Zr = Z * .97 - X * .24
       ) => [Dx + (Xr + .2 * Zr) * 1.3, Dy + (.16 * Zr - Y) * 1.3]

Fingerprint of this equation

sha256:553393dbf1ba7a0ca513e29b78d411cbbb1b68391250280dd715407ab80874e1

The same point number and time give the same coordinates.
Trails and the appearance of points depend on rendering settings and the device.

The button above takes the equation out as it is. To count it again yourself:

pbpaste > f.txt && printf %s "$(cat f.txt)" | shasum -a 256

Take it and run it.What appears when you change the equation? Run and rewrite this equation →