こんにちは、moreai.campです。
キャンプの夜、焚き火の横で寝転がって夜空を見上げる瞬間って最高ですよね。
「あの明るい星なんだろう?」「あの並びって何座?」
毎回そう思いながら、結局調べずに終わってた。
そんなある日、思い立ちました。
「だったら自分で作ればいいじゃん」
AIに作ってもらいました
正確に言うと、AI(Claude)と一緒に作りました。
プログラミングはある程度できるんですが、「スマホのセンサーを使って星の位置を計算する」なんて、どこから手をつければいいかさっぱりわからない。
そこでClaudeに相談してみたところ…
「作れます!」
ということで、会話しながら開発スタート。
できたもの
完成したのがこちら👇
→ https://moreai23.github.io/stargazer/
iPhoneのSafariで開くだけで使えます(無料・アプリインストール不要)。
できること:
- 📍 GPSで今いる場所を自動取得
- 🧭 スマホを向けた方向の星座・星・惑星を表示
- 🌕 月・木星・火星なども表示
- 🌌 天の川の表示
- 📷 カメラに星を重ねるARモード
- ⭐ 気になる星をタップすると詳細情報が出る


開発中にはまったこと
ここからはちょっとだけ裏話を。
iPhoneがセンサーの許可を出してくれない問題
最初に作ったアプリ、iPhoneで開いたらセンサーの許可ダイアログが出ない。
Claudeと原因を調べたら、iOSの仕様でタップした瞬間に許可を求めないとダメらしい。コードの書き方を一行変えただけで解決。こういうとき「なんでだろう?」って一緒に考えてくれるのがAIの助かるところ。
ChromeじゃなくてSafariで開いてください
最初Chromeで試したら動かなかった。調べたらiOSのChromeはセンサーへのアクセスが制限されているらしい。Safariで開き直したら問題なく動いた。
(今はChromeでも動くみたいです)
月の位置が一ヶ月ズレてた
実際の夜空と比べたら月の位置が約23度ズレてた。
他の天文アプリと比較して数値を報告したら、Claudeが「計算式が古すぎる」と原因を特定。ジャン・ムース(天文学者)の高精度計算式に変えたら誤差が1度以内に改善。こういう専門知識をさっと出してくれるのはありがたい。
上を向くと星が暴走する問題
これが最大の難関でした。
月の方向から上に向けていくと、突然180度逆方向に星が飛んでしまう。
Claudeと何度も試行錯誤したけど、これはiOSのセンサーAPIの根本的な制限で、完全には解決できないことが判明。最終的に「仰角35度以上は方位を固定する」という割り切った仕様に落ち着いた。
「WEBアプリの限界ですかね?」
と聞いたら
「WebAPIの制約です。ネイティブアプリが使うARKitなしには難しいです」
と正直に教えてくれた。そういう正直さも助かる。
GitHubって何?という方へ
作ったアプリはGitHub Pagesという無料サービスで公開しています。
私もGitHub初挑戦でしたが、Claudeに手順を一つずつ教えてもらいながらなんとか公開できました。
「FTPは何度も使ったことあるのに、GitHubになるだけで苦労しました」
と言ったら
「GitHubを覚えると、作ったWebアプリを無料で公開・バージョン管理ができます。FTPの経験があるのですぐ慣れますよ」
と励ましてもらった笑
実際にキャンプで使ってみた
薄曇りの夜にキャンプで試してみました。
木星はちゃんと表示された!月の方向もほぼ合ってた。
ただ高い空(仰角35度以上)は方位が固定されてしまうので、真上の星は確認しにくい。地平線近くの星座確認には十分実用的です。
焚き火の横でスマホを向けながら「あれが木星か〜」ってなるの、なかなか楽しいですよ。
使い方
- iPhoneのSafariで https://moreai23.github.io/stargazer/ を開く
- 「START」をタップ
- 位置情報・センサーの許可を「許可」
- スマホを空に向けて動かすと星座が表示される
📷 ARモードを使うときは右上の「AR」ボタンをタップ。カメラに星が重なって表示されます。
コンパスがズレる場合はスマホを8の字に振って校正してみてください。


おわりに
「自分でアプリを作る」なんて以前は大変だったけど、AIと一緒なら結構なんでも作れるんだなと実感しました。
キャンプ仲間に見せたら「すごい!」って反応してもらえて素直に嬉しかった。
夜空に興味があるキャンパーさん、ぜひ試してみてください🔭✨
→ https://moreai23.github.io/stargazer/
このブログ記事もClaudeに手伝ってもらいました 😄
【追記】精度アップデートしました!
公開後、Claudeに「精度があがるか見直してください」とお願いしたところ、コードを総点検してくれて4つの改善ポイントが見つかりました。
見つかった問題と修正
① 太陽の計算式が古かった(誤差 約1.7度)
太陽の位置計算をより高精度な計算式(Meeus法)に変更。実は惑星の位置は太陽を基準に計算しているので、木星や火星の精度も一緒に向上しました。
② 北斗七星の星の座標が入れ替わってた
ドゥベとメラク(北極星を探すときの目印になる2つの星)の座標データが入れ替わっていることが判明。北斗七星の柄杓の形が微妙に歪んでいたのが直りました。
③ 月の「視差」を補正
月は地球にとても近いので、地球の中心から見た位置と、地上の私たちから見た位置が最大1度ズレます。この補正を追加しました。
④ 大気の「屈折」を補正
地平線近くの星は、大気のレンズ効果で実際より約0.5度浮き上がって見えます。夕日が地平線に沈むとき、実はもう物理的には沈んでいる…という現象と同じです。これも補正に加えました。
AIによるコードレビューのすごさ
今回おもしろかったのは、Claudeが自分で書いたコードを自分で検証して、実際に計算を実行しながら誤差を数値で確認していたこと。
「太陽の位置、正解とどれくらいズレてる?」を実際に計算 → 1.7度のズレを発見 → より良い計算式に変更 → 再計算して0.1度以内を確認
という流れを自動でやってくれました。星の座標の入れ替わりミスまで見つけてくれたのは正直驚きです。
計算精度はこれでほぼ限界まで来たので、あとはスマホのコンパスの精度次第。気になる方はぜひ最新版を試してみてください🔭


コメント