2016/06/16

Munching Square


デモを見る(github.io)

座標変換とMunching Squareの組み合わせです。モアレ模様が出ています。

Munching Squareは x^y という簡単な式で現れる模様です。
var x, y
for (y = 0; y < canvas.Height; ++y) {
    for (x = 0; x < canvas.Width; ++x) {
        canvas.setPixel(x, y, brightnessToColor(x ^ y))
    }
}

Go言語に興味を持ってA Tour of Goを進めていたところSliceの演習で x^y が紹介されていたことが制作のきっかけとなりました。素のMunching Squaresは以下の画像のようになります。



-

私がMunching Squareのことを知ったのは、XScreenSaverがきっかけです。iOSで動くのでごろ寝しながら楽しめます。動画のMunching Squaresは、説明によると古典的な動きをシミュレートしているため上のものとは少し異なっています。


-

実は以前にWebGLでやってみようと思って失敗しています。お手本となるコードは見つけたのですが、そのときは私のコード読解力が低かったので投げました。WebGL 1.0のシェーダでは ^ 演算子が使えないので、XORを自前で実装する必要があります。お手本では ^^ (logical exclusive or) という演算子を使って何とかしています。

2016/06/10

Durdle Dwarvesの紹介

黄色はドワーフ(D)、灰色は石(S)、黒は空のセル(_)
Hyphen-atedによるDurdle Dwarvesシミュレータ

r/cellular_automataで紹介されていたセルオートマトンです。元はGood Gameryというフォーラムでpazという名前のユーザによって作られたようです。説明を読んだ印象では、知的エージェントとも言える気がします。

このセルオートマトンはドワーフ、石、空の3状態を持ちます。状態の更新は、各ドワーフについて範囲2のムーア近傍を参照して、あらかじめ用意してあるルールとマッチした場合に行われます。

リンクを張ったシミュレータではルールを自由に編集できます。Oは現在みているドワーフ、Dはドワーフ、Sは石、_は空、*は任意のセルを意味します。編集後にApply Rulesのボタンを押すと変更が適用され、ポーズしてからLoad World Stateで初期状態に戻すことができました。

Burrow rightのOutcomeを以下に変更した場合
*D***
*****
**_O*
*****
*****

2016/06/08

Canvas小品





デモを見る(github.io)

HTML5のCanvasで作った小品です。上の2つはフィードバックで派手さが増しています。

今回使ったフィードバックの手法は裏にCanvasをもう一枚用意して、座標変換で回転などをかけています。画面の4隅に色が残るのですが、これが味でもあり、欠点でもあります。

2016/06/05

ワイヤワールドに基づくゲーム、ĐiệnWorldsの紹介



セルオートマトン画像などを探していたところ、Redditの/r/Cellular Automataで、Theta Gamesによって作られたĐiệnWorldsを見つけました。

ĐiệnWorldsは限られた資金で送電網を構築して、家に明かりを灯す経営シミュレーションゲームです。明かりを灯した家からは収入が得られますが、送電網の規模に応じて月ごとにメンテナンス料が発生します。うまく収入と支出のバランスをとって赤字にならないように管理することがゲーム性になっています。仕組みはワイヤワールド(Wireworld)のルールに基づいていますが、電流値(Current Value)と変圧器(Transformer)の要素やお金に関する要素が加えられています。

初回プレイ時にまったく分からなかったのでマニュアルを翻訳しました。いろいろと細かい仕組みが書いてあります。元の英語マニュアルも併せて参照してください。


2023-05-17: マニュアルがリンク切れになっていたので更新。

以下はざっくりとしたゲームの始め方です。

2016/05/16

Turmite



デモを見る(github.io)

Langton's Antの拡張である、Turmiteを作りました。TurmiteのnStateを1にすることでLanton's Antになります。ルールの記法はWikipediaで紹介されている記法(SummaryのDescription)に倣っています。

以下は画像で使われたルールです。

2016/05/15

Langton's Ant


Langton's Antを作りました。R、Lが偶数個ずつ並ぶようにルールを選ぶと線対称な模様が現れるそうです。以下は画像で使われたルールです。

2016/05/01

セルオートマトンと編み物(2D Cellular Automaton and Knitting)

初期状態(Grid 16)
ルール83, 286世代目
セルオートマトンは2次元、2状態、ムーア近傍Totalistic
ルール83, 286世代目の模様を使用した編み物
セルオートマトンの模様を母に見せたところ、編み物に使えそうだということで実際に試してもらいました。

デザインの面からみると、セルオートマトンから出てくる模様は少し変わっているそうです。今回の場合、編み物画像の右側、赤い小物入れの模様の4隅は元と異なっていますが、色が交互に現れるパターンがよくあるので勘違いしたとのことです。左の青い小物入れは正しい模様になっています。

編み物に応用しやすいよう、カタログのように模様を探すことのできるWebページを作りました。

2次元セルオートマトンのカタログ(github.io)
注意:最新のFirefoxとChromeで動作します。

WebGLでうねうねと動く版も楽しめます。こちらが本記事の発端となりました。


2016/01/28

Reaction Diffusion, Gray-Scottモデル



デモを見る(github)
説明を読む(github)

Reaction Diffusionと呼ばれている化学反応に関するモデルの中から、Gray-Scottモデルと呼ばれるものを作りました。

応用として、シマウマや豹のような柄を作れることが示されています。
一部の魚の模様にも、似たようなものがあるようです。

--

Reaction Diffusionについて調べていると、面白い化学反応を見つけました。
なんとなくCyclic CAを思い出します。


2016/01/24

Carpets and Rugsセルオートマトン



デモを見る(github)

Tiling Encyclopediaで見つけたセルオートマトンを作りました。はっきりとした名前がついていないので、ここでは初出と思われる文献のタイトルに従ってCarpets and Rugsと呼んでいます。名前の通り、絨毯のような模様が現れます。

このセルオートマトンは、Dann E. PassojaとAkhlesh Lakhtakiaによって紹介され、Mihai Prunescuがいくつかの性質を証明しています。

2016/01/05

Satanoise TVによるElectric Noiselandの解説

以前に書いたElectric Noiselandの記事について、Satanoise TVさんからコンタクトを貰ったので機材や制作の手法について尋ねてみました。

以下は頂いた解説をまとめたものです。

--



機材について

手法について
  • 1人での多重録音。
  • DarjeelingとCorriente Electrica Von VoyageはEメジャーでの即興に、iPhoneアプリでシンセの音を加えたもの。即興はシド・バレットを意識したそうです。
  • Serenade a la LuneではフェイザーをかけたFun Machineから2つの録音を作り、片方を2オクターブだけピッチシフト。さらにFoxtex MR-8で録音した嵐の雨音を使用。
  • Pale Shelterは、Tears For Fearsからのサンプリング、Thusrton Moore - starfield wildのソロ、自前のギターとコーラスとの足し合わせ。
  • Gymnopedie N1(リンクは原曲)のカバーは、Fun Machineと、Big Muffをかけたストラトキャスターで演奏。

以下はライブ動画のピックアップです。ライブセットの中ではPropan Synthというハンドメイドのシンセを使っているそうです。

2015/12/28

ECAFM



説明を読む(github)
ダウンロード Windows 64bit版(Google ドライブ)

Elementary Cellular AutomatonをFMシンセサイザと組み合わせました。直球でECAFMと名前を付けました。ロボット感あふれる音を作ることができます。

音のサンプル(Google ドライブ)