【フラクタル】 たった130行のコードだけでリアルな地形を作り出す [GIZMODO]

このエントリーをはてなブックマークに追加
1TwilightSparkle ★@転載禁止
http://www.gizmodo.jp/upload_files2/140519_130terrain.jpg
神様もこんなプログラムを使ったに違いない。

Hunter Loftisさんが制作したこのサイトにアクセスすると、リアルタイムで岩でできたような山脈と湖の地形が生成
されます。ただの1枚の画像を毎回表示してるだけではなく、毎回ちゃんと計算してレンダリングして、この大山脈
を作り出してるんです。ぜひ何度かリロードしてみてください。

インタラクティブなウェブサイトが制作できる「JavaScript」が使われており、約130行のコードでたったの約4KB。ド
イツのプログラミング大会で優勝した64KBのリッチなCGアニメーションや、たったの4KBのアニメーションを思い
出しますよね。

※記事の一部を引用しました。全文及び参考画像等は下記リンク先で御覧ください。
2014年5月21日 ギズモード・ジャパン http://www.gizmodo.jp/2014/05/130_2.html
2名無しのひみつ@転載禁止:2014/05/22(木) 18:40:41.81 ID:lxG2wp1N
 

  _ノ乙(、ン、)_ブロッコリースレ
3名無しのひみつ@転載禁止:2014/05/22(木) 18:46:10.30 ID:OQCDqiiq
若い人はMEGADEMOでググろう!
4名無しのひみつ@転載禁止:2014/05/22(木) 18:50:59.42 ID:v0uyB4hQ
短いコードで出来るからフラクタル理論なんやが
5名無しのひみつ@転載禁止:2014/05/22(木) 18:53:50.14 ID:tyxohDMm
テトリスも数行コードがあったな
6名無しのひみつ@転載禁止:2014/05/22(木) 18:54:03.03 ID:U0Bgv41n
形の種明かし w
7名無しのひみつ@転載禁止:2014/05/22(木) 18:58:43.34 ID:2d2r4j7B
ヤマカンの作品のことかと
8名無しのひみつ@転載禁止:2014/05/22(木) 18:58:53.02 ID:v0uyB4hQ
竹内文書の日本は世界の雛形、九州はアフリカ大陸の相似形、四国はオーストラリア、
本州はユーラシア大陸、北海道は北アメリカ、南米は台湾
もフラクタル理論で説明が
9名無しのひみつ@転載禁止:2014/05/22(木) 19:00:38.48 ID:TyrVcoXM
音楽みたいな美しい可聴音域連続wave生成の最小コードは?
200行ぐらいか?
10名無しのひみつ@転載禁止:2014/05/22(木) 19:03:12.60 ID:ARaPgib8
行数だけならなんとでもなろう
11名無しのひみつ@転載禁止:2014/05/22(木) 19:08:35.09 ID:HXEKVJZ7
サブルーチンがとんでもないサイズじゃないの?
12名無しのひみつ@転載禁止:2014/05/22(木) 19:12:27.08 ID:LZ0nklbR
13名無しのひみつ@転載禁止:2014/05/22(木) 19:15:51.49 ID:X7gft/Mz
サイト見に行きゃわかるけど
ソースは改行有の非常に読みやすいコードになってる。
htmlファイルの中のjavascriptのみ(外部参照なし)で
だいたい130行で出来てる。
14名無しのひみつ@転載禁止:2014/05/22(木) 19:16:16.42 ID:IBH61fhp
The Atlas
15名無しのひみつ@転載禁止:2014/05/22(木) 19:22:02.07 ID:FQJ+liBu
こういうソースは勉強になるんかな
16名無しのひみつ@転載禁止:2014/05/22(木) 19:24:53.37 ID:JJWnjlfW
API使ってるんだろ
17名無しのひみつ@転載禁止:2014/05/22(木) 19:45:00.86 ID:tucOYtwp
>>16
API使わずにどうやってグラフィック表示するの?
グラフィックドライバを直接操作する方法でもあるの?
18名無しのひみつ@転載禁止:2014/05/22(木) 19:47:29.81 ID:LZ0nklbR
2chもJavaScriptとTeXに対応して欲しいな
19名無しのひみつ@転載禁止:2014/05/22(木) 19:55:28.66 ID:Ks23irOg
20年くらい前にフラクタルって言葉を聞いたな
どこで聞いたんだろう…
20名無しのひみつ@転載禁止:2014/05/22(木) 20:01:16.33 ID:LZ0nklbR
べき乗則とか1/f揺らぎっていうんだろ
21名無しのひみつ@転載禁止:2014/05/22(木) 20:01:37.83 ID:+/kRcNXJ
>>12
漫然とリロードしてると「ネオアトラス」ってゲームを思い出す
22名無しのひみつ@転載禁止:2014/05/22(木) 20:11:35.47 ID:LZ0nklbR
神様が宇宙をランダム生成した事実がよく分かるな
23名無しのひみつ@転載禁止:2014/05/22(木) 20:19:24.51 ID:0krFxzxh
昔、FMタウンズっていう今から見ると糞みたいに性能が低いパソコン(適当だけど何百倍も性能低い)
がフラクタルエンジンを使ってリアルタイムにシューティングするゲームがあったな
ああいう超低スペのパソコンでも解像度あげればリアルタイムに計算できるのがフラクタル
24名無しのひみつ@転載禁止:2014/05/22(木) 20:21:00.01 ID:2hjvRRo+
ドラクエは64KB

最近じゃどうでもいい画像のサムネイル1つ分しかない。
とんでもない工夫をしてたのが分かる
25名無しのひみつ@転載禁止:2014/05/22(木) 20:21:32.32 ID:+FM97gBN
それに引き換えインターネッツは
広告の表示とスパイ活動でどんどん遅くなって行く。
26名無しのひみつ@転載禁止:2014/05/22(木) 20:25:48.77 ID:8z9ae4NC
昔、FM77AVっていう今から見ると糞みたいに性能が低いパソコン
が4096色とか26万色でレイトレーシング楽しかったですよねw
27名無しのひみつ@転載禁止:2014/05/22(木) 20:27:41.09 ID:LZ0nklbR
レイトレーシングとかマンデルブローとか糞みたいに遅かったな
28名無しのひみつ@転載禁止:2014/05/22(木) 20:30:34.78 ID:eM1Cq1N3
根源の物理法則の式と、テキトーな初期条件を与えるだけで
宇宙が作れるよ
29名無しのひみつ@転載禁止:2014/05/22(木) 22:42:18.02 ID:+sFQ0icN
パーリンノイズ?
30名無しのひみつ@転載禁止:2014/05/23(金) 01:45:37.58 ID:LWUOt3nG
これはすごいな
ブラシも声紋も作れそう
31名無しのひみつ@転載禁止:2014/05/23(金) 06:15:06.81 ID:qY1y2bl3
>>19
平沢進w
32名無しのひみつ@転載禁止:2014/05/23(金) 14:16:10.39 ID:kylrXM2X
最初のレミングスってゲームは2DDのフロッピー1枚に収まってたな。
さすが欧州のゲーム。ダメリカなら無駄にCでくんで2HD2枚組みになってた。
33名無しのひみつ@転載禁止:2014/05/23(金) 15:05:33.39 ID:zjbWte8T
>>23, >>32
おめーらOSごときにPCスペックが足りないとかショッパイPC使ってんなぁ
俺のPCなんてさ、最新の68030!まずCPUからそこらの庶民とは違う。
これに256KBのVRAMを豪華2枚刺し。VGA変換アダプタとの組み合わせで4bitSVGAも余裕。
上海、クラリスワークスもスムーズに動く超性能。遊びに仕事にストレスレス。
メモリは限界まで拡張された10MB!
HDDはなんと大容量の80MB!一生かかっても使い切れねぇ。
PC-98で満足してる庶民とは根本的に違うのだよ!俺から言わせれば2DDのFDなんておもちゃだぜw
超速大容量!東欧少女のサムネイルが何百枚も入る!すげぇ!
ちなみに外部メディアは驚きの2倍速CD-ROM。マルチメディアの最先端!たまんねぇ。
まぁお前らはショボいPCで涎垂らしながら俺を羨ましがってなってことだ。
34名無しのひみつ@転載禁止:2014/05/23(金) 15:57:23.73 ID:hlqL7yeP
>>17
えっ?
35名無しのひみつ@転載禁止:2014/05/23(金) 17:40:41.23 ID:QVlu8qsS
>>33
www
36名無しのひみつ@転載禁止:2014/05/23(金) 17:43:53.48 ID:T/TPuzte
>>33
今どきモトローラかよ(爆)
37名無しのひみつ@転載禁止:2014/05/23(金) 17:57:42.08 ID:RgzZ/8Qd
>>33
クラリスワークスかあ…漢字Talk7.1とかかな
なつかしい
38名無しのひみつ@転載禁止:2014/05/23(金) 18:05:18.56 ID:6rXXTlEG
>>33
Uci思い出すなぁ(遠い目…) 驚きの25Mhz!
カクカクのフライトシュミレーション、プリンスオブペルシャ、シムアースの思い出が
蘇った…
39名無しのひみつ@転載禁止:2014/05/23(金) 18:19:26.31 ID:UHW4GmHB
あの64KB制限の動画コンテスト凄すぎるよな毎度。
どう詰まってるのかサッパリわからん。
40名無しのひみつ@転載禁止:2014/05/23(金) 18:51:48.08 ID:HfHJwCwh
4kバイトのこういう映像があったよな確か
41名無しのひみつ@転載禁止:2014/05/23(金) 18:52:56.68 ID:XRbO3BkZ
中学1年で初めてMDCDのシルフィードやったときは涙がでそうになったなぁ…

お年玉は全額無くなったが後悔しないですむ美しさだった…あの頃のゲームアーツは何処に逝っちゃったんだ…
42名無しのひみつ@転載禁止:2014/05/23(金) 19:03:36.57 ID:xkj9QERr
1kbプログラムやら256bytesプログラムを思い出すな。
PC-8001の256byteで160x100グラフィックの2D迷路作成・カーソル移動でのプレイとかやってるのがすごかった印象。
43名無しのひみつ@転載禁止:2014/05/23(金) 19:25:32.04 ID:T/TPuzte
>>39
あの大会は多分いつまでたっても終わらんと思う
どんなに大容量ゴリ押しの世界がこようが、最適化っていうのはいつの世も美しいもんだ
44名無しのひみつ@転載禁止:2014/05/23(金) 19:54:14.42 ID:CTmmWY6i
情報量を圧縮するほど、計算量が増える傾向にある
45名無しのひみつ@転載禁止:2014/05/23(金) 20:06:30.32 ID:CTmmWY6i
最も複雑なのは計算量のオーダーが指数関数時間かな
自己相似や再帰関数はこの傾向にあるんじゃないか
46名無しのひみつ@転載禁止:2014/05/23(金) 20:15:30.66 ID:ntkWBnNM
4KBのプログラムが数分かけて
フラクタルで1GB超のテクスチャを生成してから
動き出したりするからな
47名無しのひみつ@転載禁止:2014/05/23(金) 20:59:40.34 ID:IpmL+sc0
最終的には1行化
48名無しのひみつ@転載禁止:2014/05/24(土) 01:30:29.65 ID:gMu3wncd
>>47
既に一行プログラムを書くのが得意なワンライナーという人達がいる。

俺は、会社のメル鯖のルートパスを取るコードを30行で書いた。
あと、PC-9801でレイトレやってレンズとか作ってたw
これはめちゃめちゃ時間が掛かったw
49名無しのひみつ@転載禁止:2014/05/24(土) 03:31:49.31 ID:89ITNNvi
円周率の中にもこういうパターンが含まれているのが現実である。
50名無しのひみつ@転載禁止:2014/05/24(土) 03:38:34.55 ID:C7pcI3wv
裏で乱数を利用していないか?
51名無しのひみつ@転載禁止:2014/05/24(土) 04:54:18.16 ID:W9Du0ArM
爆死したアニメか
52名無しのひみつ@転載禁止:2014/05/24(土) 07:47:28.95 ID:UGb+qnZU
記事中

>このプログラムで使用しているのは「ダイヤモンド-スクエア法」と呼ばれる手法で、正
>方形を4つに分割していき、その中心点をランダムな位置にずらしていくことで、自然に
>できたようなフラクタルの図形を作ることができる

って、それでリアルっぽい山つくる話は30年ほど前からあるんで、単にリバイバルが珍し
かっただけだな
53名無しのひみつ@転載禁止:2014/05/24(土) 08:56:05.49 ID:4JPkLwqL
ハリネズミ
54名無しのひみつ@転載禁止:2014/05/24(土) 10:10:10.71 ID:Bb/hwNpJ
>>52 コードが短いものをWeb上でやったから、この手のものでは30年間ずっと
使われ続けているモチーフ
55名無しのひみつ@転載禁止:2014/05/24(土) 10:51:37.61 ID:a+qDfGbB
人生が一度しか実行できないフラクタル画像としたら、多元宇宙論では
よく似てはいるが異なるパターンが無限に存在することになるな
56名無しのひみつ@転載禁止:2014/05/24(土) 13:30:30.26 ID:UGb+qnZU
>>54
特に短くもないぞ
57名無しのひみつ@転載禁止:2014/05/24(土) 13:34:09.86 ID:XfRYCPkJ
レイトレーシングで鏡面反射をやると計算量が爆発的に増える
合わせ鏡にすると計算が終わらない
透過光は反射と屈折に分かれるので再帰計算になる
ガラスを向かい合わせると計算が終わらない
58名無しのひみつ@転載禁止:2014/05/24(土) 14:04:01.40 ID:UGb+qnZU
>>57
>レイトレーシングで鏡面反射をやると計算量が爆発的に増える

なんでここでそんな話が出るのかわからんが、たいして増えねーよ

>透過光は反射と屈折に分かれるので再帰計算になる

透過率=反射率=0.5の場合でも7回もやりゃあ1/100以下に減衰するっての
59名無しのひみつ@転載禁止:2014/05/24(土) 16:14:40.60 ID:1+KCNt7c
>>55
時間と空間のどちらかだけでも無限なら
一度起きたことは必ずいつかどこかで繰り返し起きる
つまりこの世界と「良く似た」ではなく
「そっくり同じ」世界も無限に存在する
60名無しのひみつ@転載禁止:2014/05/24(土) 17:39:04.80 ID:89ITNNvi
>>57
ねーよ
データが集束し変化が減ったら途中で計算を放棄するアルゴリズムすら知らない?
爆発的に計算しても途中で計算放棄しても同じ結果になるってことだよ。
オブジェクトが無数にある場合の従来のポリゴン計算よりは遥かに計算量は
すくないわ。そしてメモリ帯域も必要としない。
マジでプログラムやったことあるの?
61名無しのひみつ@転載禁止:2014/05/24(土) 17:55:17.98 ID:UGb+qnZU
>>60
これ、レイトレイシングなんか使ってないよ
62名無しのひみつ@転載禁止:2014/05/24(土) 18:08:00.36 ID:wg/2rnGw
>>48
ワンライナーって人じゃなくてコードの事じゃね?w
63名無しのひみつ@転載禁止:2014/05/24(土) 18:19:20.92 ID:lBnBnR7y
ランダムmapのモンハンが出来る!
64名無しのひみつ@転載禁止:2014/05/24(土) 18:35:10.52 ID:1+KCNt7c
古典的なレイトレーシングは光線を逆に辿るので
大きく減衰した先に減衰量を上回るようなとんでもない強度の光源があれば
影響が無視できない場合もあるんだよな
まあそれでもどっかで計算を打ち切らざるを得ないし普通はそれで十分なんだけど

てかレイトレなんてもはや全然軽いアルゴリズムの部類ではある
65名無しのひみつ@転載禁止:2014/05/24(土) 20:02:28.37 ID:XfRYCPkJ
レイトレーシングのほうが盛り上がるみたいだな
66名無しのひみつ@転載禁止:2014/05/24(土) 20:50:44.27 ID:XfRYCPkJ
レイトレーシングの主なテーマは収束と減衰だったのか、知らんかった
あんたら賢いな
67名無しのひみつ@転載禁止:2014/05/24(土) 20:55:36.82 ID:UGb+qnZU
>>65
>>1の話がしょぼすぎるから
68名無しのひみつ@転載禁止:2014/05/24(土) 21:03:28.67 ID:XfRYCPkJ
いや、違う
おれが言いたかったのは、発散も収束もしない際どい領域があることを言いたかったんだ
69名無しのひみつ@転載禁止:2014/05/24(土) 21:23:56.84 ID:uUenfIn8
メガドラのシルフィードも地形描画にフラクタル使っていなかったっけ?
70名無しのひみつ@転載禁止:2014/05/25(日) 03:27:33.88 ID:4dALJ0L7
少ない行で、ファイル容量小さくて、
とは言うけど実行速度遅いよね

外部サイトに繋ぎまくりじゃ意味ないやん、といつも思う
71名無しのひみつ@転載禁止:2014/05/25(日) 03:37:19.89 ID:aHTGi8VU
ありきたりなだけじゃん、こんなの背景にならんて
72名無しのひみつ@転載禁止:2014/05/25(日) 14:38:22.94 ID:mFDgbDdN
73名無しのひみつ@転載禁止:2014/05/26(月) 02:01:49.64 ID:6JU4CtOb
壁紙にいいなこれ
74名無しのひみつ@転載禁止:2014/05/26(月) 02:14:14.38 ID:d1pkKjMn
短いコードって、数式を因数分解して簡単に表示するイメージでいいの?
75名無しのひみつ@転載禁止:2014/05/26(月) 08:19:17.79 ID:zMw0pzYF
因数分解?違うような気がするよ
今回のはコードが短いというよりは地図を生成するアルゴリズムが単純
もともと雲模様生成やマップ生成に使われてるアルゴだから真新しいものでもない
コード短くしようと思えばさらに短く出来るけど重要なのはそこじゃなさそう
ブラウザの図形レンダリングエンジン使って簡単でインパクトのあるものを作ってみたよという感じ
76名無しのひみつ@転載禁止:2014/05/29(木) 05:05:47.96 ID:Zymv6ivs
そうだね、ブラウザで、ってのが新しいんだろうけど、この生成画像は、

箱庭ソフト Vista Pro(ビスタプロ)って感じ。
(レンダリングオプションを全部外して生成した地形)

Vista ProはDOS時代からあるソフトで、飛行アニメ創れるなど良くできてたね。
77名無しのひみつ@転載禁止:2014/05/29(木) 15:02:51.03 ID:6PYX40MD
ドルアーガの塔の迷路作成が二行で記述されていること思い出した
方向性は違うみたいだけど、てえしたもんだ
78名無しのひみつ@転載禁止:2014/05/29(木) 23:40:17.00 ID:aHhw1cL6
ドラクエっぽい地形もどきも意外と簡単にできるんだぜ。
79名無しのひみつ@転載禁止:2014/06/01(日) 03:47:50.00 ID:7gf3DCf1
>>77 アセンブラじゃないの?
80名無しのひみつ@転載は禁止:2014/06/26(木) 02:44:44.74 ID:GHijtbBv
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
RT:@colombobird1 サワーにスピリタスと薬混ぜて1女に飲ませて泥酔させて持ち帰るの最高!!もう今月だけで4人食ったはw
81名無しのひみつ@転載は禁止:2014/06/26(木) 10:06:46.98 ID:iVT0W4SO
>>49
そもそも 円周率を10進法で表そうとしているのが 間違い
82名無しのひみつ@転載は禁止:2014/06/26(木) 11:22:44.80 ID:5ZqBzhoh
無理数ってのは進数に関係なく無理数なんだぜ
83名無しのひみつ@転載は禁止:2014/07/02(水) 00:33:47.63 ID:HQq37FgS
>1
なにこの19個ものトラックだらけの糞ページは
84名無しのひみつ@転載は禁止
>>59
世界は不確定性で無限に発散していきそれらを統べるのが悪魔のポリマー
まあ同意になるのか