Cosmo Scheduler D
図9 Cosmo Scheduler D

lg3d-incubatorプロジェクトで開発されているアプリケーションはほとんどが小規模のものです。しかし,中には重量級のアプリケーションもあります。その中の一つが次に紹介するCosmo Scheduler Dです。

Cosmo Scheduler D注1は九州工業大学情報工学部 小出研究室の薬師寺氏,前田氏,南迫氏,そして小出助教授によって開発が行なわれているスケジューラ・アプリケーションです。

その操作は今までのウィンドウ・システムのアプリケーションとは一線を画しており,その斬新なユーザー・インタフェースは高く評価されています。

例えば,Cosmo Scheduler Dの開発はIPA未踏ソフトウェア創造事業の支援をうけており,薬師寺氏は「スーパークリエータ」として認定されています。

また,2005年のDuke Choice Awardを受賞し,サンフランシスコで行なわれたJavaOne 2005で表彰されています(図10,11)。

筆者もJavaOne 2005に参加し,目の前で薬師寺氏らがScott McNealy 氏とJames Gosling氏から表彰されたのを見て,自分のことのようにうれしかったことを思い出します。

Cosmo Scheduler D 開発メンバー Cosmo Scheduler D 開発メンバー
図10 Duke Choice Awardで表彰される小出研究室のメンバー 図11 小出研究室のメンバー。左から薬師寺氏,小出助教授,南迫氏,前田氏
Cosmo Scheduler D Cosmo Scheduler D
図12 初期画面 図13 ヘルプ表示
Cosmo Scheduler D Cosmo Scheduler D
図14 視点の変更 図15 過去のスケジュール
Cosmo Scheduler D Cosmo Scheduler D
図16 未来のスケジュール 図17 パイメニュー
Cosmo Scheduler D Cosmo Scheduler D
図18 らせん表示 図19 カレンダー表示
Cosmo Scheduler D Cosmo Scheduler D
図20 新しいスケジュールの作成 図21 デフォルトの重要度
Cosmo Scheduler D Cosmo Scheduler D
図21 スケジュールのパイメニュー 図22 優先度を高くする
Cosmo Scheduler D Cosmo Scheduler D
図23 スケジュールを日付に結びつける 図24 日付に結びつけられたスケジュール
Cosmo Scheduler D Cosmo Scheduler D
図25 日付のパイメニュー 図26 日付から新規作成された惑星のパイメニュー

Cosmo Scheduler Dの何が今までのアプリケーションと違うのでしょうか?

それを理解するために実際にCosmo Scheduler Dを使ってみましょう。

なお,Cosmo Scheduler Dは,2005年12月4日にコミットされたVersion 0.5を,現在開発中のLG3D Release 0.8.0上で動作させました。

現バージョンのCosmo Scheduler Dは,一番はじめに起動すると,スケジュールのファイルを作るかどうかのダイアログが表示されます。ここで「No」を選択するとデモ・モードで起動します。

Cosmo Scheduler Dは宇宙空間をイメージしたスケジューラです。太陽の周りを回る惑星がスケジュールを表しています。デモ・モードでは手前に地球が表示されますが,これもスケジュールを表しています(図12)。

惑星の周りを回っている衛星はスケジュールに添付されたファイルを示しています。

ここで地球の周りの衛星をダブルクリックすると,Zoetropeが起動し,ヘルプが表示されます(図13)。

惑星の軌道は右側が過去,左側が未来を表しています。地球が表示されている一番手前が現在です。

遠くにあるスケジュールはちょっと分かりにくいかもしれません。そんなときは視点を変更してみましょう。コントロールキーを押しながらマウスをドラッグすると,図14に示したように現在を中心に視点を変更できます。

また,同様にコントロールキーを押したまま,マウス・ホイールを回してみましょう。上向きに回すと過去に,下向きに回すと未来に移動します。図15は過去,図16は未来を示しています。

日付をダブルクリックすると,その日付が中心になるように視点が変更されます。

スケジュールの詳細は惑星から延びた線の上に表示されますが,惑星にマウス・カーソルを合わせると,そのスケジュールが大きく表示されます。図16はNew Year's Eveを示すスケジュールにマウス・カーソルを合わせているところです。

ここまでの説明でおわかりだと思いますが,通常のウィンドウ・アプリケーションにはお決まりのボタンやメニューなどは明示的に表示されません。

しかし,本当にメニューがないわけではありません。例えば,太陽を右クリックし続けてみてください。すると,メニューが表示されます。クリックしたまま,メニューの項目のところに移動し,リリースすることで。メニュー項目を選択できます。

この形式のメニューはパイメニューと呼ばれています。

パイメニューで「layout」を選択すると,スケジュールの表示方法が変更されます。

Cosmo Scheduler Dではスケジュールのレイアウト方法はプラグイン形式で追加することができます。現在はらせん表示とカレンダ表示のプラグインが実装されています。

図18は,らせんでスケジュールを表示している様子です。らせんの周期は1週間に設定されているので,曜日が同じスケジュールは一直線に並んで表示されます。

図19は一般的なカレンダ表示です。これだとあまり新鮮さはないですね。ただ,既存のスケジューラを使用しているなら,この表示のほうが違和感がないかもしれません。

さて,新しいスケジュールを追加してみましょう。太陽に表示されるパイメニューのうち,「new」を選択することで新規のスケジュールを設定できます。

newを選択すると,図20のようなテキスト・フィールドが表示されます。入力を行ない,リターンキーを押すと,図21に示すようにスケジュールを表す惑星が表示されます。

惑星も右クリックでパイメニューが表示されます。優先度を高くすると,惑星の大きさが増加し,表示される模様も変化します。

つまり,惑星の大きさがスケジュールの優先度を表しているわけです。こうすることで,見るだけですぐ優先度を判断することが可能です。

惑星を右クリックしたままパイメニューの項目を選択せずに惑星軌道の日付までドラッグし,ドラッグしたままマウスの左ボタンを日付の上でクリックすることで,スケジュールがその日付に結びつけられます(図23,図24)。

これ以外にも,図25に示したように日付を右クリックして表示されるパイメニューのnewを選択することでもスケジュールを作成できます。この場合は,スケジュールのパイメニューの中にapplyという項目があるので,これを選択することでスケジュールが確定します(図26)。

現在のVersion 0.5は,ここに示したようにスケジューラとしての最低限の機能しか持っていません。しかし,今後は様々な拡張が予定されています。

もともと小出研究室では,プログラムの自動並列化を行ない,それを動的にスケジューリングする研究を行なっています。プログラムが並列に動作する様子を可視化するために,3Dのユーザー・インタフェースの研究を始めたという経緯があります。

その動的スケジューリングの知見をベースに,自動スケジューリングなどの機能を今後取りいれていく予定だそうです。

これ以外にも,いろいろと表示に関するアイデアがあるそうです。

例えば,ある期間を区切った円軌道の表示があります。この表示法で他の人のスケジュールを重ねて表示し,上から見ることでスケジュールの空きをすぐに発見することが可能になります。

また「終了したスケジュールをハンマーで砕いてスターダストにする」「ある程度の期間にまたがるスケジュールは彗星で表す」といったアイディアがあるようです。

このスケジューラが使いやすいかどうかは議論の余地があると思います。実際,バージョンが上がるごとに操作法がいろいろと変更されており,小出研究室の中でもまだ試行錯誤が続けられていることがわかります。

2DのGUIでの操作法はある程度,様式化しています。例えば,まったく操作方法がわからないアプリケーションでも,メニュー・バーがあり,その一番左は「ファイル」で,項目として「開く」と「保存」があるのはだいたい決まっています。

しかし,3Dのユーザー・インタフェースはまだ端緒についたばかりです。3Dにおけるユーザー・インタフェースが様式化するまでにはまだまだ紆余曲折があると思います。

注1 ちなみにCosmo Scheduler Dのネーミングは宇宙戦艦ヤマトに由来しているそうです。

著者紹介 櫻庭祐一

横河電機の研究部門に勤務。同氏のJavaプログラマ向け情報ページ「Java in the Box」はあまりに有名