A Free Digital Planetarium System

INDEX: ニュース | ライセンス | ダウンロード&セットアップ | 設定 | 操作のポイント | 技術情報 | 謝辞 | 著者への連絡

みさと天文台プラネタリウム投影室(スクリーン直径8m)での投影
本システムによる みさと天文台プラネタリウム投影室(スクリーン直径8m)での投影

Interstellar Consoleは、みさと天文台での定期上映のために職員が自ら制作した、オープンソースのデジタルプラネタリウム投影ソフトウェアシステムです。 スクリプト言語100%で記述され、Stellarium を ネットワーク経由で制御することで、投影システムを実現しています。

特徴は以下のとおりです:

みさと天文台では2025年2月22日以降、ライブ解説によるプラネタリウム定期上映で本システムを使用しています。Stellariumの各種パラメータや天の川のテクスチャーを丁寧に調整し、星空のリアルさは商用システムと変わないレベルを実現しました。解説員は5名いますが、全員が本システムに大きな不満は無く、みさと天文台としては、今後プロプライエタリなシステムでプラネタリウム上映を行う事は考えられなくなりました。

メインGUI
メインGUI (個別表示:1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

ライブ解説においては、操作エラーを招かないGUIが求められるため、ボタン類には大きめの面積が必要です。しかし、プラネタリウム上映のためのコンソールではON/OFFスイッチがあまりにも多く、これを平面的なGUIとするのは不可能ですので、タブで切り替えて使えるデザインとしています。

特徴は以下のとおりです:

メインGUIの全パターンについて、右図下部のリンク(1から8)で確認できます。どのような機能があるかをご確認ください。

みさと天文台プラネタリウム投影室での投影

ニュース

ライセンス

Copyright (C) 2025 Misato Observatory

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.


ダウンロード&セットアップ

セットアップ動画
ショートカット
デスクトップに生成されるショートカット
  1. OSを確認
    Windows 10/11 x64
    ※Windows Sandboxでも動作確認済み
  2. コマンドプロンプトの動作確認
    タスクバーの検索ボックスに「cmd」と入力し、コマンドプロンプトを起動し、右上の×印で閉じる。
  3. バックアップ
    本ソフトウェアをアップデートする場合、C:\Program Files\Stellarium\scripts\interstellar-console\ にあるすべてのファイルについて、バックアップをとってください。
  4. Stellarium v24.4 Qt5 をダウンロードし、インストール
    ※「For all users(全てのユーザーが使用)」を選択し、 インストール場所はデフォルト設定のまま変更しないでください。
    ※上記バージョン以外では正常に動作しません。
    また、既にインストールしている場合は一旦アンインストールしてください。
  5. Bawt Tcl 8.6.16 をダウンロードし、インストール
    ※interstellar-console(1.0RC2とそれ以前)のために、Bawt Tcl 9.0.1 をインストールした場合は、Windowsコントロールパネルより一旦アンインストールしてください。 わかりにくいので、コントロールパネルのスクリーンショットをご覧ください。
    ※interstellar-console以外の目的(Pythonなど)でTcl/Tkがインストールされている場合はスキップ。◆(下記)を参照
  6. interstellar-console_1.0RC4.zip をダウンロードし、解凍
  7. interstellar-consoleフォルダの「setup.exe」を実行
    ※必ずローカルにダウンロードし実行してください。ネットワークドライブ上では動作しません。
  8. ポップアップウィンドウの説明を読み、問題ない場合は「はい」を選択
    セットアップ画面
  9. 下記ポップアップが表示されたらセットアップ完了
    セットアップ完了
  10. デスクトップに3つのショートカットが作成されているのを確認

すでにTcl/Tkがインストールされている場合◆

上記 5. をスキップしてください。Tcl/Tk-8.6系(Pythonに付属)の場合はそのまま動作しますが、Tck/Tk-9系の場合は、上記 9. まで完了した後、C:\Program Files\Stellarium\scripts\interstellar-console\tcl_utf8\ にあるtclファイル(UTF-8版のGUIソースファイル)を C:\Program Files\Stellarium\scripts\interstellar-console\ にコピー(上書き)してください。

動作モードと動作確認

用途に応じて、いずれかの動作モードを選択してください。

プラネタリウム上映や星空解説を担当される皆様へ

Interstellar Consoleで運用されている場合は、調査・研究のため、みさと天文台(メール:info(at)obs.jp)まで ご連絡くださると助かります。 インストールや動作で問題があれば、遠慮せずに質問をお願いします。質問は、ソフトウェアの改良に大いに役立ちます。


設定・カスタマイズ

以下で説明される設定ファイルは、 C:\Program Files\Stellarium\scripts\interstellar-console にあります。

設定ファイルはすべてテキストファイルです。Windows標準のメモ帳など、お好みのエディタで編集してください。

Stellariumが出現するデスクトップを設定

Stellarium環境設定ウィンドウ

domeモードでは全天周スクリーンに投影される事を前提としているため、 Stellariumはフルスクリーンで起動されますが、 意図したデスクトップに現れない場合は、以下の手順で設定します。

  1. 全終了し、Navigationモードで起動
  2. Stellariumのウィンドウを、次回起動時に開きたいデスクトップへ移動
  3. Stellariumのウィンドウで F2 キーを押し「環境設定」ウィンドウを表示
  4. 「表示オプションを保存」「設定を保存」の順にクリック(右図参照)
  5. Interstellar Console メインGUI より「全終了」

以上で設定完了です。domeモードで起動し、確認してください。

場所の設定 --- localInitLocation.ssc

localInitLocation.sscの編集ボタン

メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。

  1. 緯度経度(時分秒・度分秒)を調べる (参考:位置座標読取り・確認・移動ウェブサイト[2021]
  2. 緯度を lon に、緯度を lat に、標高を altitude に設定
    デフォルトでは以下のように、時分秒・度分秒の形式で設定されている。
    // longitude. E is +ve. values out of the range -180..180
    const lon_h = +135;
    const lon_m = 24;
    const lon_s = 22.1;
    
    // latitude. N is +ve. values out of the range -90..90
    const lat_d = +34;
    const lat_m = 8;
    const lat_s = 40.3;
    
    // altitude in meters.
    const altitude = 400.0;
    
    const lon = lon_h + (lon_m/60.0) + (lon_s/3600.0);
    const lat = lat_d + (lat_m/60.0) + (lat_s/3600.0);
    
  3. メインGUIの Generalフレーム内「初期設定」の「場所」ボタンをクリックし、設定内容を確認

基本設定 --- localConfig.ssc

localConfig.sscの編集ボタン

メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。

以下のように、動作モードごとに設定できるようになっています。設定項目は順に、フォントサイズ、線幅(ピクセル)、星表現[絶対・相対]、天の川[明るさ・色の濃さ]、地上風景の透過率、天体情報の表示形式、最小描画数 です。

if ( getFlagDomeMode() != true ) {
  // Navigation Mode
  const font_size_medium = 15;
  const font_size_large = 18;
  const line_thickness = 1;
  const absolute_star_scale = 2.0;
  const relative_star_scale = 0.8;
  const milkyway_intensity = 1.0;
  const milkyway_saturation = 1.0;
  const landscape_transparency = 0.0;
  // Select from "AllInfo", "DefaultInfo", or "ShortInfo"
  const selected_object_info = "AllInfo";
  // Saving power when lower time-rate (default is 18)
  const min_fps = 4.0;
}
else {
  // Dome Mode
  const font_size_medium = 30;
  const font_size_large = 35;
  const line_thickness = 2;
  const absolute_star_scale = 3.0;
  const relative_star_scale = 0.7;
  const milkyway_intensity = 1.0;
  const milkyway_saturation = 1.0;
  const landscape_transparency = 0.3;
  const selected_object_info = "None";
  const min_fps = 12.0;
}

フォントサイズ、線幅、天体情報の表示形式 以外は、メインGUIより操作可能です。

最小描画数(min_fps)はスクリーン上での時刻を進めない場合に1秒あたり描画される枚数です。これを下げるとラベル表示などがスムーズではなくなりますが、PCの消費電力を小さくすることができます。

設定ファイルを保存したら、メインGUIの Generalフレーム内「初期設定」の「全」ボタンをクリックし、設定内容を確認します。

ビューの設定 --- localInitView.ssc

localInitView.sscの編集ボタン

「ビュー」とは、投影法や投影座標に関する事を指します。全天周投影の場合、プロジェクターの仕様に深く関わってきます。 メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。

動作モードごとに設定可能です。設定すべきところは、以下のコメントで示してありますので、必要に応じて変更してください。

  // Navigation Mode
  // Dome Mode

メインGUIの「設定」タブより、Configurationフレーム内で、上記の投影モードなどを含めビューに関する操作が可能です。GUIで各設定についての最適値を見つけておき、設定ファイルに書き込んでください。

投影モードは設定ファイルにあるとおり core.setProjectionMode(); で設定します。設定可能な投影モードは以下のとおりです:

設定ファイルを保存したら、メインGUIの Generalフレーム内「初期設定」の「VIEW」ボタンをクリックし、設定内容を確認します。

太陽・月の表示サイズの設定

設定ファイルの編集ボタン

全天周スクリーン上の0.5度は実際の空のそれよりも小さいため、プラネタリウムでは一般に太陽や月を数倍のサイズで表示しています。 これらに関する設定ファイルについても、 メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。

設定ファイルを保存したら、メインGUIの Solar Systemフレーム内「天体 表示サイズ」以下のボタンをクリックし、設定内容を確認します。

詳細な設定 --- localInitSettings.ssc

文字や線の色、星のまたたき、散在流星などの設定ができます。

メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。

詳しくは、Stellarium Scriptに関する公式ドキュメント(英語) をご覧ください。

天の川の調整

調整済天の川テクスチャー

全天周スクリーンに投影する場合、Stellarium付属のテクスチャーではリアルさが不足するため、C:\Program Files\Stellarium\scripts\interstellar-console\milkywayにある milkyway.pngC:\Program Files\Stellarium\textures にコピー(上書き)してお使いください。夏の天の川では淡い部分が表現され、冬の天の川では落ち着いた光量になって実際の見え方に近づきます。

上記のようにしてもリアルさが不足する場合は、C:\Program Files\Stellarium\scripts\interstellar-console\milkyway にある README.sjis.txt を熟読し、付属のツールでテクスチャーを調整してください。付属のツールが難しいと感じる場合は、GIMPなどのレタッチツールで調整しても良いでしょう。

光害・月明かりの影響の調整 --- updateLightMoonPollution.ssc

コード先頭付近に以下の定数があります:

// Base parameters for pollutions
const light_pollution_base = 0.0010;
const moon_pollution_base  = 0.0010;

それぞれが、光害・月の影響を決めるパラメータです。必要に応じて変更してください。

これらの値は、日食や月食にも影響を与えます。

オンスクリーン時計の調整 --- exec_date-monitor.bat

オンスクリーン時計
スクリーンショット(実際には背景透過)
オンスクリーン時計の使用例
みさと天文台全天周スクリーンでの使用例

Stellariumには、魚眼投影時に時刻を適切に表示する機能が見当たりません。 全天周スクリーン上に時刻を表示するには、Interstellar Console付属のアプリ「オンスクリーン時計」を使用し、Stellariumのフルスクリーンウィンドウの上にそのアプリによる時刻表示(右図上スクリーンショット)を被せます。

オンスクリーン時計についての設定は、メインGUIの「設定」タブより、Configurationフレーム内「設定ファイル編集」以下のボタンで編集可能です。

オンスクリーン時計は、メインGUIの Generalフレーム内「時計 on Screen」の ONボタンで起動できます。起動時の表示場所は、GUIと同じデスクトップですので、以下のパラメータを調整して、全天周スクリーンの方位表示(東・西・南・北のいずれか)の左右に水平に表示されるようにします:

set POS_X_FOR_SCREEN=+200
set POS_Y_FOR_SCREEN=+100

上記は、初期表示位置(コンソール用デスクトップの左上)からの移動量です。全天周スクリーン用デスクトップの位置によって、符号や数値が変わります。

set ORIENTATION=0
set FONT_SIZE=24
set RADIUS_FOR_PLACING_CHARS=1630
set ANGLE_BETWEEN_TWO_CHARS=1.2

ORIENTATION パラメータで全体を回転させることができます。0:回転なし、1:左90度回転、2:180度回転、3:右90度回転 です。デスクトップで南が下側の場合、それぞれ次のように適合します: 0=南、1=西、2=北、3=東。

RADIUS_FOR_PLACING_CHARS は文字を配置するために使用される半径です。魚眼プロジェクターの解像度の約半分を指定します。コンソール用デスクトップが150%表示の場合は、1.5倍した値を指定します。

ANGLE_BETWEEN_TWO_CHARS パラメータでは、文字の間隔を角度で指定します。やや広めにとってください。

現場での調整では、地平グリッドを表示し、「時計 on Screen」の「調整用」ボタンで中央位置を表示させておくと便利です。

操作のポイント

スタンバイモード
終了ボタンでスタンバイモードへ

開始・終了・省電力待機モード

セットアップのセクションで説明したとおり、 開始するにはデスクトップのショートカット 「isc_navigator」(デスクトップアプリとして使用) または、 「isc_dome」(ドームスクリーン投影用) をダブルクリックします。

終了時は、ウィンドウの「×」ボタンではなく、Interstellar ConsoleメインGUIの「終了」ボタンをクリックします。なお「×」ボタンをクリックしてしまった場合、「isc_gui」でGUIを再起動し、正しく終了処理を行ってください。終了処理が行わわれなかった場合、サーバプロセスが消されずに残ります。

投影プログラムが終了したら、初期設定の「全」ボタンをクリックし、次の投影プログラムがスムーズに開始できるようにします。その後、「終了」ボタンをクリックし、ダイアログ(右スクリーンショット)を出した状態にしておくと、省電力待機モードになり、CPU使用率を約0%に下げることができます。投影開始時に「通常モードへ戻る」ボタンをクリックしてください。

GUI再起動

GUI内の「編集」ボタンをクリックすると設定ファイル編集のために エディタが起動します。内容を変更して保存した後、GUIに反映させるためには GUIの再起動が必要です。メインGUIの終了ボタンをクリックし、 「GUI再起動」を選択します。

スタンバイモード
メインGUI「春」グループ

「ON・Off」と「SET・Unset」

星座、アステリズム、太陽系、グリッドラインなどの表示スイッチには、 「ON・Off」表記、「SET・Unset」表記があります。 それぞれ意味は以下のとおりです:

原則的には、上位スイッチが入らない場合、下位スイッチを入れても表示されないのですが、星座の場合については例外があり法則性がよくわかっていません。

したがって、星座に関する表示をすべて消すには、Constellatonフレーム内の Offボタン、Unsetボタンをすべてクリックしてください。

アステリズムについては、線を表示するための「ON」ボタンがありませんが、 下位スイッチの「SET」ボタンが押されたら、 内部で上位スイッチが入るようになっています。

スタンバイモード
メインGUI

光害・月明かり

初期設定では、光害・月明かりは両方ともONに設定されます。必要に応じて、 Generalフレーム内の「太陽系・光害」のボタンで切り替えてください。

Stellariumには「月だけを消す」機能が無いため、 月明かりを消すために太陽系を消す必要があります。 そのため、GUIもそのように作られています。

光害・月明かりの影響は設定ファイルで変更できます。 設定セクション をご覧ください。

流星

散存流星の投影ができます。投影する場合は、 時刻レートを「1.0」に設定してください(「実」ボタンをクリックします)。

Stellariumの流星に関する機能は発展途上のようで、ZHRを相当に大きく しないと流星がよく見えません。

時刻設定GUI
日付時刻GUI

日付時刻の設定

プラネタリウム上の時刻を一定の速度で進める(または逆転させる)には、 メインGUIのGeneralフレームにある「時刻レート」を使います。 1.0に設定すると「リアルタイム」に、 1.0を超える値を設定すると「早回し」、負の数を設定すると「逆転」します。

特定の日付時刻に設定したい場合は、日付時刻GUI(右図)にある 紫色・緑色のボタンを使います。 「即送信」にチェックを入れておくと、紫色・緑色ボタンがクリックされた 直後にプラネタリウム上の日付時刻がアップデートされます。

キーボードから日付時刻を入力する事もできます。 「スクリーン日時」右の日付または時刻をクリックしてください。

投影開始時刻を「List of User's Time」フレームに登録しておくと便利です。 「編集」ボタンをクリックすると、設定ファイル編集のためにエディタが起動し、 内容を変更することができます。 書き換えて保存したら、時刻設定GUIを「×」で閉じて、メインGUIの左上の 「日時」ボタンをクリックしてください。 日付時刻GUIが再起動され、時刻ボタンがアップデートされます。

技術情報

全天周投影用プロジェクターの選定

NVIDIA Mosaic
トラブルの原因になりやすいNVIDIA Mosaic設定

2台以上のプロジェクターによるエリア分割式の投影を必要とする大型の全天周スクリーンでは、射影変換システムが必要で、さらにプロジェクターもケースバイケースであるため、ここでは一発式の場合を扱います。

一発式のプロジェクターでは、大きく分けて3通りが考えられます。

  1. 特注魚眼レンズを装着したプロジェクター
  2. 短焦点タイプのプロジェクターにコンバージョンレンズをつけて魚眼化
  3. 長焦点タイプのプロジェクターにリレーレンズをつけて実像に戻し、一眼カメラ用魚眼レンズで魚眼化

1.の方法は高価すぎるためここでは議論しません。 2. の方法が簡単に思いますが、周辺収差が激しくあまり画質は良くありません。3. の方法では画質は狙えますし、リレーレンズと魚眼レンズとの両方にフランジバックが大きい一眼レフカメラ用レンズを使えば2インチ天頂ミラーで光路を曲げることもでき、縦向きにできないプロジェクターでも全天周投影が可能になるなど、応用が効きます。

プロジェクターの解像度は縦2160または縦2400ピクセルのものが良く使われているようですが、みさと天文台の経験では縦2400ピクセルのプロジェクターはNVIDIA Mosaicが可能なグラフィックスアダプタ+2系統のHDMIを必要とする上に、何らかの原因でMosaic設定が壊れるなどトラブルの原因となるため、あまりお勧めできません。また、NVIDIA Mosaicを設定するとQt6版のStellariumでは表示が崩れてしまうため、将来Qt5版が廃止された場合にStellariumをアップデートできなくなる事も考えられます。どのPCでもHDMIケーブル1本で出力できる縦2160ピクセルのネイティブ4kプロジェクターをお勧めします。

EDIDエミュレータの利用

Dr. HDMI
あらゆる用途で使えるEDIDエミュレータ「Dr.HDMI」

EDIDエミュレータは、PCからはディスプレイとして認識され、OS(Windowsなど)側のディスプレイ設定を自動変更させない事を目的としたデバイスです。PC─EDIDエミュレータ─ディスプレイ(またはプロジェクター)という接続で使い、ディスプレイの電源がOFFになっても、PCはディスプレイがあるものとして動作し続けます。

プラネタリウムなどの業務用投影システムや、多数のディプレイやプロジェクターを使用するトレード、プロジェクションマッピングでは、ディスプレイやプロジェクターの状態によってOS側の画面配置が自動変更されてしまうのでは困ります。この問題を解決するのがEDIDエミュレータで、それによって「PCでのディスプレイ設定を“固定化”する」事ができるというわけです。1920×1080や3840×2160のようによく使われる解像度のものは、安価なものが多数販売されています。 ディスプレイアダプタによっては、EDIDエミュレータに相当する機能を持つものもあります。

特殊な解像度もしくは多数のディスプレイを「業務で」使う場合は、プログラマブルなものを選ぶ必要があります。みさと天文台ではプロジェクションマッピングや Mitaka による3Dシアターも行っており、それらでは HD FURY社の「Dr.HDMI」(販売:MTG) を使っています。やや高価ですが、あらゆる解像度に対応できるだけでなく、ディスプレイ名称を1台ごとに設定できるので、特にプロジェクションマッピングにとっては必須アイテムと言えます。

Dr.HDMIに関するソフトウェアは、HD FURY社の Dr.HDMIDr.HDMI 4k ページよりダウンロードできます。EDIDデータの編集には、Deltacast社のEEDID_Editor が便利です。

Interstellar Console ソフトウェアシステム概要

ブロックダイアグラム
ブロックダイアグラム

本システムを制作するような場合、一般的にはコアとなるソフトウェアを改変するものです。しかし、Stellariumにはそれを制御するための強力な「Stellarium Script」が使えるため、外部にソフトウェアを追加するたけで様々なシステムを構築することができます。本システムにおいても、Stellarium実行ファイルには一切変更を加えていません。

このスクリプトはJavascriptベースなので習得も簡単で、APIも充実しています。さらに、8090番ポート経由でStellariumへこのスクリプトを送信したり、あらかじめ用意されたステータス(日付や天体データ)が取得できます(参照:ドキュメント)。しかし、LabelMgrで返されるラベルIDなどスクリプトを実行した時の出力データや返り値は、ファイルへの出力は可能でも8090番ポートから取得できないため、Stellariumとは別にファイル読み取り用プロセス「ISC Info Server」を起動し、スクリプトの結果を8091番ポート経由で取得しています。

このように実装はやや複雑化しているものの、StellariumとGUIとは 8090番・8091番ポートで通信しているため、GUIのコードを少し改修することでタブレットから制御することも可能です。

謝辞

本プロジェクトのために以下のフリーソフトウェアを使用しました:

開発者ならびにそれらに関わったすべての皆様に感謝いたします。

著者への連絡

Misato Astronomical Observatory
info (at) obs.jp


Last Modified: Jun. 27, 2025