ブラウザに本物の夜空を描く

Asterariumの技術解説

Asterariumは、地球上の場所と日時を選ぶと、そのときその場所の空をブラウザに描くプラネタリウムです。星の並びも、太陽・月・惑星の位置も、空の明るさも、実在のカタログと天文計算から求めています。

この記事は、その仕組みを開発者向けに解説します。サーバー側で動くコードを一切持たない静的サイト(ページを開くたびにサーバーで動くプログラムが無く、配るのはビルド時に作り終えたファイルだけ)という一つの制約から出発し、何を、なぜ、どう決めたかを、下の目次にある10の節で追います。全体像から始めて、最後にそれらを貫く設計原則にまとめます。

節ごとに独立して読めるように書いてあります。そのため、節をまたいで同じ前提を短く言い直している箇所があります。目次から興味のある節に飛んでかまいません。各節の本文では、天文学と3D描画の用語に注を付けてあります。この制約を選んで何を諦め、何を得たかは、最後の「設計原則の総括」の節の末尾にあります。