観測 031

龍

Ryuu — Dragon

式で遊ぶ

画かボタンを押すと、点が減ります。40,000 → 625 → 40 → 1 の次は、40,000に戻ります。
少数点では、点を大きくし、残像を長くして通り道を見やすくしています。
「聴く」は、表示中の点の配置を音へ写します。点数を変えると音を作り直します。

章
空
制作
2026
媒体
数式・ブラウザで実行
点
40,000
周期
20秒でひと巡り
指紋
sha256 a255460f…c9ab

胴は一本の芯のまわりを巻いています。尾から頭まで、二周たらずです。

巻きの位相は時間とともに進みます。
点は体の軸のまわりを回りながら、同時に前へ送られます。

巻きの太い場所と細い場所があります。その違いも頭から尾へ移っていきます。

芯そのものも撓みます。
高さの撓みと奥行きの撓みは速さが違うので、同じ姿は二度戻ってきません。

頭、二本の角、二本の鬚、四本の脚、背の鬣は、どれも胴の上の一点から測った場所に置かれています。
胴がそこで曲がれば、その場所ごと動きます。
付け根が離れないのは、同じ数を見ているからです。

鬚は付け根では動かず、先へ行くほど遅れて振れます。
四本の脚は互いに違う時刻で掻きます。

点を減らすと、鬣と脚と鬚が先に切れます。
残った胴は巻きの筋だけになり、やがて一つの点の通り道になります。

龍だったものは、どの一点にも入っていません。

式を読む・確かめる
(i, t,
        b = i < 26400, hd = i < 32400, hr = i < 34800, wk = i < 37200, m = (i - 37200) / 700 | 0,
        S = b ? (i / 66 | 0) / 399 : i < 37200 ? 1 : m < 2 ? .8 : .44,
        W3 = S * 11 + t * .5, ro = (9 + 32 * max(0, sin(PI * min(1, S)))) * (1 + .28 * sin(S * 3 + t * .5)),
        rd = 100 * cos(PI * min(1, S)), Cx = 300 * S - 150 + 26 * sin(S * 4 + t * .25),
        Cy = ro * cos(W3) + 46 * sin(S * 3.4 + t * .25), Cz = ro * sin(W3) + 40 * cos(S * 2.6 + t * .5),
        Tx = 300 + 104 * cos(S * 4 + t * .25), Ty = rd * cos(W3) - ro * 11 * sin(W3) + 156 * cos(S * 3.4 + t * .25),
        Tz = rd * sin(W3) + ro * 11 * cos(W3) - 104 * sin(S * 2.6 + t * .5),
        Th = max(.01, hypot(Tx, Tz)), TL = max(.01, hypot(Th, Ty)), G = Th * TL,
        R = 2.2 + 15 * max(0, min(1, S)) ** .45 * (1 - .5 * max(0, min(1, S)) ** 5),
        j = i % 66, a = j / 60 * TAU, cr = j > 59, v = (i * .754878 % 1), z = i % 2 ? 1 : -1,
        e = (i * .618034 % 1) * 2 - 1, g = i * 2.39996, rr = sqrt(max(0, 1 - e * e)),
        p = hr ? ((i - 32400) / 2 | 0) / 1199 : wk ? ((i - 34800) / 2 | 0) / 1199 : (i - 37200) % 700 / 699,
        cm = (3 + 7 * max(0, sin(PI * min(1, S)))) * v, W = S * TAU * 2 + t * .75,
        lt = b ? (cr ? cm * .5 * sin(W + 1) : 0) : hd ? 23 + 30 * e : hr ? 6 - 40 * p - 11 * sin(PI * p)
          : wk ? 46 - 74 * p : -5 - 13 * p + 20 * sin(PI * p) * sin(t * .75 - m * 1.9),
        ln = b ? (cr ? 1.4 * e + cm * .4 * sin(W) : R * cos(a)) : hd ? (12 - 5.5 * e) * rr * cos(g)
          : hr ? z * (5 + 8 * p) : wk ? z * (6 + 12 * p) + 8 * p * sin(p * TAU * 1.25 - t * .75 + z)
          : (m % 2 ? 1 : -1) * (R * .85 + 11 * p),
        lb = b ? (cr ? R + cm : R * sin(a)) : hd ? (10 - 4.5 * e) * rr * sin(g) - 2.4 * max(0, e)
          : hr ? 8 + 30 * p + 9 * sin(PI * p)
          : wk ? -4 - 28 * p + 14 * p * sin(p * TAU * 1.25 - t * .5 + z * 2) : -R * .7 - 44 * p - 10 * sin(PI * p),
        X = Cx + lt * Tx / TL - ln * Tz / Th - lb * Tx * Ty / G, Y = Cy + lt * Ty / TL + lb * Th / TL,
        Z = Cz + lt * Tz / TL + ln * Tx / Th - lb * Ty * Tz / G,
        Dx = 200 + 11 * sin(t * .25 + 2.8), Dy = 200 + 9 * cos(t * .25 + 5.1) + 4 * sin(t * .75 + 2.8)
       ) => [Dx + (X + .28 * Z) * .92, Dy + (Y - .38 * Z) * .92]

この式の指紋

sha256:a255460f2d1752c5121056eb8cf70ce76e47483ae2e6611c8b11d7e1c931c9ab

同じ点番号と時刻を渡すと、同じ座標が得られます。
残像や点の見え方は、描画設定と端末によって変わります。

上のボタンで式をそのまま持ち出せます。手元で数え直すなら:

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

持ち帰って走らせてください。式を変えると、どんな姿になるでしょう。 この式を、その場で走らせて書き換える →