今日はアイバン・サザーランドの誕生日(1938)。
サザーランドのスケッチパッド、で有名な人です。
…あれ? ご存じない?
まぁ、そりゃそうかも。スケッチパッドが有名と言っても、コンピューターの歴史が好きな人なら聞いたことはあるだろう、程度だし。
そのスケッチパッドも、勘違いされた説明をよく見かけるので、どうも正しく認識されていない。
#僕だって、以前は正しく認識できていなかったので人のことは言えないのだけど。
これから、この人がどんなにすごい人か、熱く語っていきましょう。
サザーランドが 12歳の時、技術者だった父親がコンピューターを購入しました。
Simon …コンピュータ技術者の教育目的で作られたリレー計算機です。
面白いのでいろいろ書きたいのですが、長くなるので割愛。
簡単に言えば、紙テープに書かれたプログラムを読み取り、動作を変えられる計算機です。
紙テープを巻き戻したり早送りしたり、という「ジャンプ」に相当する動作は無いため、プログラムはあまり自由に書けません。難しく言えばチューリング完全(現代のコンピューターの定義)ではないのです。
計算機能は基本的に足し算だけで、キャリー付 2bit 加算が行えます。
入出力は 5bit なので、多倍長演算プログラムを作ることで、31 までの足し算ができます。
ところが、サザーランドは2歳上の兄と共に、Simon を改造して「条件停止」命令を追加し(これでチューリング完全になる)、紙テープを 2.4m も使って除算を行うプログラムを作り上げたのです。
Simon の開発者は、ハーバードマークII の開発に携わった、エドモンド・バークレーでした。
バークレーは兄弟が Simon で見事にプログラムを作ったことに驚き、彼らを雇って仕事を手伝わせます。
そして、彼らがコンピューターの天才だと感じ、クロード・シャノンに会わせます。
シャノンは、情報理論の父、と呼ばれる人物です。
電気回路で論理演算が可能なことを示し、デジタル回路の設計理論を確立しました。
(これ以前からデジタル回路の概念はあったが、職人の経験則によって作られていた)
真偽を電流の有り無しで表現することで電気回路化できることを示し、デジタルコンピューターの実現に道筋をつけています。
詳細は省きますが、CD(コンパクトディスク)やMP3などのデジタルオーディオの原理、解読されない暗号方式の考案、通信容量の限界の指摘、データ圧縮の原理など、現代生活を支える多くの理論を残しています。
…ともかく、シャノンはサザーランド兄弟に出会い、非常に喜んで、各種研究を見学させました。
さて、シャノンは MIT に在籍していました。
その MIT では、当時のコンピューター設計を根底から見直した Whirlwind I (WWI)が作られています。
驚くほど高速な上、当時標準的だったテレタイプ(電気式タイプライタ)による入出力だけでなく、ディスプレイとタッチペンによる操作が可能です。
さらに、これをトランジスタ化した試作機 TX-0 が作られ、規模を大きくした TX-2 が作られます。
(TX-1 は高機能にしようとしすぎて失敗)
また、WWI を作り出した MIT サーボ機構研究室では、これとは別の研究として、数式として記述した立体物を実際に削り出す装置…後の NC工作機や、現在の 3D プリンタと呼ばれるような装置の研究が行われていました。
(Auto Programinng Tool 、略称で APT と呼ばれていました)
しかし、平面的な物体は数式として記述可能ですが、立体物を数式で記述する良い方法が見つからないのが悩みでした。
サザーランドは TX-2 完成後の 1960年、MIT の大学院に入ります。
ここでまず、TX-0 と出会います。TX-0 は、サザーランドが知っていた「コンピューター」とは一線を画すものでした。
TX-0 には、ライトペンを使って自由に「お絵かき」ができるプログラムがありました。
でも、これはデモとしての色合いの強いもの。あまりたいしたことはできません。
しかし、サザーランドはペンとディスプレイで操作できるコンピューターに強い興味を覚えます。
目の前にあるのは簡単なデモでも、プログラム次第でもっといろいろなことができるかもしれないのです。
そしてサザーランドは、TX-2 の存在を知ります。
TX-2 なら、お絵かきをもっと「役に立つ」レベルに引き上げられるかもしれません。
実は、TX-2 には既にお絵かきプログラムが試作されていました。
これは、プロッタプリンタを接続して製図することを目的としていましたが、試作レベルで止まっていました。
#プロッタプリンタは、ペンを動かして紙に絵を描く方式のプリンタです。
仕組みとしては、電気部分が機械に変わっただけでオシロスコープなどと変わらないため、アナログコンピューター時代から使われていました。
当面の目的はプロッタプリンタでの製図でしたが、サーボ研究所で作られていた APT (立体物の削り出し装置)などでの使用も視野に入っていたようです。
サザーランドはこれを引き継ぎ、独自のアイディアを盛り込みます。
博士論文の研究として開始したため、作成期間は1年間しかありませんでした。
作成時の話も面白いのですが、長くなるので割愛します。
作成過程で、MIT に在籍していたシャノンに助言を求めます。
シャノンは「天才少年」との再会を喜び、指導教官になってくれました。
#この後、サザーランドの兄も MIT に入学し、やはりシャノンが指導教官となります。
後にこのお兄さんも計算機科学の研究者になっています。
兄弟は、シャノンの「最後の教え子」でした。
TX-2 は、TX-0 と同じように運用されていました。
…つまり、時間を決めて、ほかの人が使っていない時に使えます。
偉い人が優先で、学生が使うには「誰も使わない時間」を狙うしかありませんでした。
(ただし、TX-0 と違って誰でも使えるわけではありませんでした。)
サザーランドは毎日深夜3時~明け方の5時までを使ってプログラムを行い、1年かけて「スケッチパッド」を完成します。
そして、スケッチパッドの論文によって博士号を取得しました。
先に書いた通り、当時のコンピューターには通常ディスプレイが接続されていません。
なので、スケッチパッドは名実ともに、世界初のグラフィカル操作環境でした。
Photoshop のようなペイントツールではなく、Illustrator のようなドローツールだと考えてください。
もっとも、TX-2 のディスプレイはベクタースキャンで VRAM を持たないため、これは当然のことなのですが。
スケッチパッドは、「オブジェクト」を設計し、そのオブジェクトをコピーした「インスタンス」を組み合わせることで図形を作っていきます。
同じオブジェクトのインスタンスを複数作ることもできます。
元オブジェクトの設計を変えると、そのオブジェクトのインスタンスを使用しているすべての個所が変わります。
…ややこしい? 明日に備えて、わざとややこしく書いてます。ごめんなさい。
この用語、明日の話題で重要になるのです。
論文を見ると、TX-2 の少ないメモリで複雑な図形を描くために苦心したことがうかがわれます。
この「同じ形の部品を使いまわせる」と言う仕組みも、メモリ節約のためだったのでしょう。
最終的な目標は、プロッタプリンタを使って設計図を描くことでした。
「お絵かきツール」ではなく、CAD なのですね。
当然、基本部品など同じ形が出てくることが多いため、オブジェクトしてまとめることで再利用性も高まりますし、メモリも節約できたのです。
オブジェクトを作る際には、多角形(複数ポイントによる折れ線)や、円、円弧が使えます。
また、すでに描かれた図形に「点」を重ねたり、多角形の各辺が同じ長さになるように調整できます。
論文では、これを利用し、蜂の巣のような図形を描く方法が例示されています。
蜂の巣を描くには、まず、6つの頂点がある図形(ぐにゃぐにゃで良い)を描きます。
それとは別に、円を書きます。
続いて、6つの頂点を円に「重ねる」操作をし、さらに「各辺を同じ長さ」にします。
このように、「頂点が別の図形を離れないように」とか、「各辺の長さを同じにするように」とか、制約を示すことで形を整えて行けるのがスケッチパッドの大きな特徴です。
各頂点が円周上にあり、各辺の長さが同じ…これで正六角形のオブジェクトが出来上がります。
つづいて、その六角形のインスタンスを多数表示し、「近い頂点を重ねる」ように指示すると、全部がくっつきます。
これで蜂の巣の出来上がり。
さらに、蜂の巣ができた後で六角形を「上半分」だけにして(多数の六角形が密集していると、これでも見た目は変わらない)、さらに多角形から「円弧」に変えてしまう例も載っています。
先に書いたように、オブジェクトを変えると、そのインスタンスを使ったすべての部分の表示が変わります。
全体が上半分の円弧で作られた模様になる、ということです。
これは、青海波のような模様に見えます。
…世界最初のお絵かきツール、とは思えない洗練された操作です。
現代の Illustrator テクニック、と言われても信じてしまうくらいに。
先に書いたように、スケッチパッドの最終出力は「プロッタプリンタ」でした。
そして、使用されていた EAI plotter には、図形の座標などを紙テープで指示して作図する機能がありました。
…つまり、EAI Plotter はプログラムによるページ記述ができるのです。
そして、スケッチパッドはそのプログラムを紙テープとして出力する機能がありました。
スケッチパッドは、世界初の「グラフィックによるプログラム環境」でもあるのです。
現在では、Illustrator が同じような仕組みを持っています。
あれは、ただのグラフィック環境ではなく、最終的に Postscript というページ記述言語を出力する、プログラム環境でもあります。
ベクターによってグラフィックを描き、最終的にページ記述言語によるプログラムを出力する。
スケッチパッドと Illustrator はそっくりです。
もっとも、Illustrator を作ったのはサザーランドの後の教え子なので、類似性は偶然ではないのでしょう。
蛇足になりますが、よくある間違いを正しておきます。
当時のコンピューターは対話的ではなく、ディスプレイもなかった、と言う知識から、サザーランドが(当時高価だったはずの)コンピューターを改造し、後に元に戻した、と書かれた記事がありました。
そんなことは無いです。TX-2 は最初から対話的に設計されていましたし、ディスプレイも備わっていました。
逆に、スケッチパッドが初期の対話型インターフェイスの例とされることから「キーボードより先に GUI が存在していた」と書いている記事もありました。
当時のコンピューターには通常テレタイプが接続されていて、TX-2 も例外ではありません。GUI はキーボードよりずっと後、と言う事実は変わりません。
スケッチパッドは MEMEX の影響を受けている、という記事も見たことがあります。
これはサザーランド本人に聞かねばわからないところですが、少なくとも論文では MEMEX には全く触れていません。
目指すところも違いますし、開発動機も違います。多分全然関係ないでしょう。
恐らくは、次にあげる NLS との混同かと思います。
(NLS は MEMEX の影響を受けている)
サザーランドのスケッチパッドから着想して、エンゲルバートが NLS を作った、という記事も見たことがあります。
エンゲルバートは元レーダー技師で、WWI の軍事版である SAGE の運用に従事しています。
NLS は、スケッチパッドではなく SAGE から着想したものです。
(だいたい、NLS は 1957年に開発を開始していて、スケッチパッドは 1963年完成です。影響を受けられるわけがない。)
同じく、エンゲルバートはペンよりも高精度に操作できるものとしてマウスを着想した、という記事を見たこともあります。
当時のタッチペンは、ベクタースキャンディスプレイでなくては使えませんでした。
エンゲルバートは安い家庭用テレビ(ラスタースキャン)を活用しようとしたためにペンは使えず、別の装置が必要になっただけです。
さて、その後のサザーランド。
コンピューターグラフィックの研究を進めたサザーランドは、1968年に「バーチャルリアリティ」を開発します。
両目にそれぞれ違う画像を見せる、3Dヘッドマウントディスプレイ(当時は非常に重く、天井からつりさげていた)を使い、ワイヤーフレームで描かれた空間内を移動できるものでした。
多くの人がバーチャルリアリティ、と言う言葉を知るのは、この20~30年後です。
最近話題のOculus Riftの始祖ですね。
その後、ユタ大学に教授の職を得たサザーランドは、多くの研究者を育てます。
GUI やオブジェクト指向プログラムを発明するアラン・ケイ、ピクサーの創業者の一人エド・エキャットムル、陰面処理(3D グラフィックで、奥の面を隠すこと)を研究し、グーローシェーディングに名を残すアンリ・グーロー、アンチエイリアス処理を開発したフランク・クロウなどがいます。
また、同時期に友人と共にエバンス・サザーランド社を設立し、職場でも多くの後進を育てています。
アドビシステムズの創業者、ジョン・ワーノックや、シリコングラフィックスの創業者、ジム・クラークなどがいます。
2D、3Dのコンピューターグラフィックを「発明」し、後進を育てたことも評価すれば、コンピューターグラフィックのすべてを創始した、と言って良い状態で、当然のように数多くの賞を受賞しています。
CG に貢献した人を称えるクーンズ賞の第1回受賞(1983)をはじめとして、チューリング賞(1988)、ACMソフトウェアシステム賞(1993)、フォンノイマンメダル(1998)、京都賞先端技術部門(2012)など。
現在は、非同期実行型のコンピューターを研究しているそうです。
クロック周波数を上げれば高速になるけど、上げるのは難しいし、実はこのやり方にも無駄がある。
この無駄を見直せば、高速で低消費電力のコンピューターが作れる、というものです。
…さらっと流すけど、クロックを必要としないコンピューターを作ろう、ということです。
これもすごい研究。部分的にはすでに実用化されています。
すでに多くのことを成し遂げたのに、まだまだ現役で新しいことに挑戦し続ける 76歳。
すごいお爺さんです。
同じテーマの日記(最近の一覧)
関連ページ
クロード・シャノン 誕生日(1916)【日記 15/04/30】
世界初の「プログラム可能な機械」発表(1941)【日記 15/05/12】
ノーラン・ブッシュネル 誕生日(1943)【日記 16/02/05】
ケン・オルセン 誕生日(1926)【日記 17/02/20】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |