RustとWebAssemblyでマンデルブロー・ナビゲータ

Rust言語のwasm(WebAssembly)を使ってJulia集合と姉妹関係のマンデルブロー集合のナビゲーターを作ってみた。
今まで色んなプログラム言語でマンデルブロー・ナビゲータを開発したが、今回はどうかな。

Front処理はjavascriptで、高速、安全性を求める処理部分はRustで開発してwasmでバインデイングする。
最新のMozillaのFirefoxブラウザはこの手法で、再開発されてるらしい。どうりでレスポンスが良くなったと思った。
Rust解説本を元に、マンデルブロー集合を描画するサイトの記事があったのでこれを参考にした。
残念ながらこの記事の内容ではマンデルブロー集合の全体を静的にモノクロ画像で表示するだけだったので、
カラー画像表示で、マウスクリックした点を中心にマンデルブロー集合を自在にズームインできるように、プログラムを書き換えた。
カラーパレット用のクレイトを新規に追加作成して、マウスのクリック操作でインタラクテイブにナビゲートできるようにした。
マンデルブローの画像表示は、いままでのカラーパレットの経験を活かした。

やはりマンデルブロー集合は色が命です。



 

ブラウザー上のrenderボタンをクリックすると、全体表示に戻り、マウスのクリックでズームインを繰り返す。
レスポンスもかなりいいので、暇つぶしの楽しみになる。


繰り返しズームインしていくと、全体像の相似形のようなものが現れます。

Mozillaの最新版FirefoxとGoogleのChromeブラウザで動作を確認したが、Firefoxの方がレスポンスが高速だった。
Rust言語の解説本も色々でてるので、そのうち読んでみようかな。