Skip to content

Latest commit

 

History

History
117 lines (85 loc) · 10.8 KB

README.ja.md

File metadata and controls

117 lines (85 loc) · 10.8 KB


Sunspill

自分の部屋を数分で設定して、時間と季節ごとに、日差しが床のどこに落ちるかを見られます。

CI MIT license Live demo Latest release GitHub stars

English | zh-TW | zh-CN | ja | ko | es | fr | de | pt-BR

西向きの寝室で、午後の日だまりが床とベッドに落ちている Sunspill の画面 スマホでの操作:住所を検索し、部屋のタイプを選び、地図の建物の輪郭に合わせて部屋を回して道路側に向け、日だまりが床を横切る

ライブデモを開く 。無料でログイン不要、一度開けばオフラインでも動きます。スマホ向けに作ってあり、住所から自分の部屋まで 7 ステップ、数分です。部屋のデータはブラウザーの外に出ません。住所検索、地図、建物の輪郭は OpenStreetMap に問い合わせますが、それぞれ許可したときだけです。

レンダリングでも AR アプリでもありません。床の日だまりは正確な多角形で、光線追跡で確かめられます。

自分の部屋を設定する

「自分の部屋を設定」を押します。スマホなら数分、7 つのステップで、それぞれ戻るボタンと次へボタンがあります。

  1. 場所。 住所を入力するか、OpenStreetMap の地図にピンを置きます。緯度、経度、タイムゾーンは自動で入ります。番地と階を含む住所も検索できます。例:台北市信義區市府路45號7樓。OpenStreetMap にその番地がないときは、同じ通りを表示し、建物にピンを置くよう案内します。
  2. 部屋。 ワンルーム、寝室、リビング、書斎から始めるか(広さは台湾でよくある間取りに合わせてあるので、自分の部屋に直してください)、間取り図や広告の写真を 2 点の縮尺でなぞります。階数も設定します。
  3. 窓とドア。 壁沿いに実寸を表示し、壁の端、中央、ほかの窓に吸着します。バルコニーと手すり、ひさし、ドアも置けます。
  4. 向き。 地図で部屋を自分の建物の輪郭に合わせて回すか、スマホを窓に当ててコンパスを読み取ります(磁気偏角を加えます)。北は常に見えています。
  5. 周りの建物。 近くの建物と高さを OpenStreetMap から読み込みます。推定の高さには印が付き、直せます。高さのない建物は、近くにある高さの分かる建物から推定します。建物や木を自分で足すこともできます。地図の時計で太陽の位置を見られ、その時刻に窓を日陰にする建物が枠で示されます。
  6. 家具。 ベッド、机、ソファ、棚、植物を置いて、動かして、回して、日差しが当たる様子を見ます。
  7. 実際の日差しと照らし合わせる。 日差しを見た時刻と、床のどこに当たっていたかをマークするか、床の写真を平面図の下に敷きます。モデルがどれだけずれているかを表示し、マークに合わせて向きと窓を調整できます。

ビフォーアフター

台北の同じ寝室、7 月 15 日の 16:30。窓を西から東に向けると、午後の日差しはなくなります。

西向きの窓 東向きの窓
西向きの窓。日だまりが床とベッドに落ちている 東向きの窓。室内に日差しがない
14:00 以降の直射日光は 1 日あたり 4 時間 28 分 0 分

6 月から 9 月の 40 日(3 日おき)の 1 日あたり平均。快晴、直射日光のみ。結果タブの午後の日差しチェックによる値で、ルールはアプリにも表示されます。

できること

  • 部屋を描く。 サイズ、壁の厚さ、最大 4 つの窓(ひさし、バルコニー、手すり付き)、最大 3 つのドア、階数、回せる家具。
  • 好きな日を見る。 都市、住所、現在地、緯度経度から場所を選ぶと、時計、太陽の軌跡、日だまりが動きます。夏時間にも対応。
  • 何が日差しをさえぎるか見る。 OpenStreetMap の建物と高さ、木、自分のバルコニーとひさし。ひとつずつ外すと、何時間の日差しを失うかがわかります。
  • 推測でなく時間で見る。 日照時間マップが、1 日の直射日光の時間で床(または指定した高さの面)を色分けします。
  • 午後の日差しを確かめる。 点数ではなく、表示されるルールです。指定した時刻以降に、直射日光が床や壁に届く分数。
  • 植物の置き場所を探す。 日なた、半日陰、日陰で、おすすめ順に表示します。
  • 現実と比べる。 見た日だまりをマークし、重なりとセンチ単位のずれを見て、向きを調整します。
  • 複数の部屋を保存する。 部屋に名前を付けて、このブラウザーに最大 12 件まで保存でき、物件の比較に使えます。
  • 共有する。 部屋全体を含むリンク、PNG カード、GIF、JSON ファイル。スイッチひとつで場所を整数の度に丸めて名前を外します。
  • どこでも使う。 9 言語、ライトとダークテーマ、キーボードとタッチ、元に戻す、一度開けばオフラインでも動作。

含まれないもの:反射、天空光、家具の影。快晴、直射日光のみです。建物は平らな屋根の柱、木は光を通さないものとして扱います。実際に撮った部屋の写真との比較はまだです。撮れる方は issue を開いてください。

どれくらい正確か

太陽高度は NREL の基準値との差が 0.007 度以内。建物、木、バルコニーが窓を日陰にする計算は、pvlib と shapely との比較で 54,000 の確認点すべてが一致しました(うち 1,275 点は建物、木、バルコニーの手すりのせいで暗くなった点)。

幾何の各部分を独立した基準と比べています。太陽は pvlib(NREL SPA)、影は光線追跡と shapely、磁気偏角は pygeomag、地図上のずれは pyproj、写真の補正は OpenCV です。node scripts/validate.mjs で再現でき、確かめていない前提は docs/VALIDATION.md にあります。実際に撮った部屋の写真との比較はまだないので、見た日差しとモデルを比べる確認モードがあります。入力が間違うと日だまりがどれだけずれるかは docs/ACCURACY.md にあります。

OpenStreetMap にない建物の高さは、近くで高さの分かる建物から推定します。台北の 5 か所で 1 棟ずつ外して推定したところ、誤差は中央値で 1.2 から 1.3 倍、固定の 9 m では 1.7 から 5.7 倍でした。

プライバシー

部屋、なぞった画像、付けたマークはブラウザーの外に出ません。名前を付けて保存した部屋も、このブラウザーの中だけに置かれます。アカウント、解析、クッキーはありません。3 つの任意サービスが OpenStreetMap のサーバーに問い合わせますが、どれも最初はオフで、許可したときだけ、何を送るかを先に表示します。

サービス 送る内容
住所検索(Nominatim) 入力した文字
地図の画像(OpenStreetMap タイル) 見ている部分の地図
建物の輪郭(Overpass) 部屋の位置(約 1 m の精度)

「オンラインサービス」からいつでもオフにできます。ページのコンテンツセキュリティポリシーにはこれらのホストだけが書かれていて、ブラウザーテストでも確かめています。詳しくは docs/PRIVACY.md。

インストール

https://arthur031221.github.io/Sunspill/ をブラウザーで開くだけで使えます。自分で動かすには:

git clone https://github.com/Arthur031221/Sunspill.git
cd Sunspill
npm ci
npm run build
npx --yes serve dist

ドキュメント

ドキュメントは英語です。 Usage | Privacy | Accuracy | Validation | Install | Config and file format | Library API | Architecture | Contributing | Changelog

ライセンスとデータ

MIT。埋め込みの Fraunces フォントは SIL Open Font License です。地図の画像、建物の輪郭、住所検索は OpenStreetMap の貢献者によるもので、Open Database License の下にあります。タイムゾーン表は @photostructure/tz-lookup(CC0)、地磁気モデルは World Magnetic Model 2025(パブリックドメイン)です。THIRD_PARTY.md を参照。

Assisted by Claude/Codex.