ひ to り go と

Flurry を作った人 - Calum Robinson

MacSoft

突然だけどスクリーンセーバの話。

液晶ディスプレイが普及して焼きつきの心配から解放されたし、OS X 10.5 Leopard ぐらいでホットコーナーで気軽にディスプレイだけをスリープできるようになってからはスクリーンセーバなしでそればかり使っていたのだけど、最近、以下の理由で回帰したのだ。

  1. iMac の 5K ディスプレイで(自分の個体では)しばらく同じ表示をしているとその部分の残像がうっすらと残ってしまう。液晶でも高解像度になると焼きつきやすいらしい。ブラウン管みたいに永久に残るわけではないけれども。
  2. DVI 接続の頃は問題なかったけど、HDMI や DisplayPort になってから外部ディスプレイが一瞬でも消灯状態になると復帰に何秒も待たされるようになってしまった。

1 は軽い症状なので我慢できるけど、2 がひどく気になる。解決策があれば教えてもらいたい。

それで、最近使ってるスクリーンセーバは Flurry。結局ここに帰ってきた。

Flurry といえば Mac ユーザでなくてもどこかで目にしたことがあるぐらい、OS X が登場して以来 Mac の顔の一つだ。シンプルだけど美しく、見ていて飽きない。というか当時から何も変わっていないのに 2017 年の Mac でも古く感じないセンスがすごい。

しかし、実はこの写真に写っているのは Windows の画面。Flurry には “Windows 移植版”があるのだ。

移植版?? クローンではなく...? Apple がわざわざそんなものを作るの!?

オープンソース

実は、Flurry はもともと個人が作って配布していたオープンソースのスクリーンセーバなのだ。それが Apple の要請で OS X に付属するようになったという経緯がある。

当時配布されていた姿を知る人はほとんどいないと思うけど Windows 移植版の説明文にはしっかり歴史の痕跡が。

This is a port to Windows of Flurry, a beautiful screen saver for Mac OS X written by Calum Robinson (http://homepage.mac.com/calumr/).

オリジナルを作ったのは Calum Robinson という人。そうそう、iTools 時代の homepage.mac.com だった。 iCloud になってこの機能がなくなるのと同時に彼のホームページも消えてしまったみたいだけど、探してみたら GitHub に彼自身のものと思われる Flurry のレポジトリを発見。

Swift でないのは当然として retain、release、autorelease みたいな懐かしい言葉が当たり前のように出てくる、明らかに当時のままのコード。

さらに調べていると数々の派生物が。OpenGL ES ベースで iOS に移植したものや、WebGL 版まで!

WebGL 版:Flurry が Web ブラウザの中で普通に動く

インタビュー

しばらく Google でうろうろしているうちに、なんと、最近書かれたらしい Robinson 氏へのインタビュー記事を見つけた。

スクリーンセーバを専門に取り上げる Web サイトのようだ。実におもしろい内容なので一部を訳して紹介してみる。

アイデアについて

「ある日インターネット上で Brian Wade 氏のコードを見つけた。いくつかの流線でパーティクルを動かすものだったんだ。それを一週間ちょっといじってみているうちに、なんだか自然で、くつろげるような動きになった。Flurry はどこかに存在するものを再現しようという試みじゃない。複雑な動きがいくつかの単純な数式によって生み出されているにすぎないんだ。」

One day I found some code on the internet by Brian Wade for moving the particles in streams, so I spent a week or so playing around with it until it moved in a sort of natural, relaxing pattern. Flurry isn't an attempt to recreate something that exists elsewhere, it's just the emergence of complex behaviour from a few simple mathematical rules.

人々の反応について

「それまでにもいくつかのソフトウェアを配布したことがあったけど、数百ダウンロードぐらいのものだった。だから最初の数週間で数千もダウンロードされてびっくりしたよ。Apple のプロダクトマネージャから Mac OS X に同梱させてほしいとメールが来たときは本当に衝撃的だったね。まあ最初はユーザに選択させるオプションの一つとしてだろうと思ったし、一年もすれば別のものに置き換わるんだろうと思ってた。でも Apple はそれを 10 年以上もデフォルトにしていたんだ。僕はいつもテレビや映画みたいな想像もしない場所で Flurry が動いているのを見かけてはひっくり返ったよ。」

I had released a few bits of software before and got maybe a few hundred downloads, so I was surprised when I got a few thousand in the first few weeks. When the product manager at Apple emailed me to ask if they could include it in Mac OS X I was completely shocked. At first I thought it would be an extra option for users and after a year or so it would be replaced. But Apple made it the default for over ten years. I always get a kick out of seeing it pop up in unexpected places, like TV shows and movies.

*     *     *

特にソフトウェアの世界で、十年以上も色あせずに現役で(レトロものとしてではなく)人々に愛され続けるというのは滅多にないことだと思う。一生のうち一回でもそんなものが作れたら幸せだろうな。

Mac コミュニティ史に名を残す良サイトの一つである maclalala を思い出しながら書いてみました。藤シローさんだったら素晴らしい和訳とともにこういう記事を紹介しただろうなと少ししんみりしてしまったので。

---

ところで、先ほどの写真にあるのは 144 Hz のディスプレイ。せっかくなので、「コードを書き換えてフレームレート Max な Flurry を見てみたい」と思いついたのだけど Windows 移植版のコードにはこんなコメントが...

/* 
* this clamps the speed at below 60fps and, here
* at least, produces a reasonably accurate 50fps.
* (probably part CPU speed and part scheduler).
*
* Flurry is designed to run at this speed; much higher
* than that and the blending causes the display to
* saturate, which looks really ugly.
*/

いろいろと過剰になって美的にひどくなるからわざわざ 50 fps に制限しているらしい。"really ugly" とまで書かれているので諦めました。パーティクルの発生頻度もしくはフレームごとの発生量を半分にすれば倍速補完版ができる気がしなくもないけど...

Share

リンクも共有もお気軽に。記事を書くモチベーションの向上に役立てます。

© 2005-2019 zumuya