四十代エンジニアがなぜ本格的な西洋占星術の計算エンジンを作るまでに至ったのか。技術者の視点から見た占星術の面白さと、このサイトを作った動機について正直に書きます。
✦ きっかけは「これ計算できるじゃないか」という気づき
正直に言います。最初は占いを馬鹿にしていました。エンジニアなので「根拠のないものは信じない」という姿勢が染みついていたからです。
転機は40歳を過ぎた頃、残業中にふと「惑星の位置って数式で計算できるよな」と思ったことです。天文学の計算式(ユリウス日・ケプラーの軌道計算)は公開されていて、プログラムで実装できます。実際に試してみると、太陽・月・惑星の黄経(天球上の位置)がかなり正確に計算できました。
「計算できるものはシステムにできる」というエンジニアの性が発動して、気づいたら星座占いの計算エンジンを作っていました。残業の現実逃避がきっかけです。
✦ 技術者から見た占星術の「面白さ」
実装してみて気づいたのは、西洋占星術は意外と「体系的」だということです。12星座×10天体×5アスペクトという組み合わせは、ルールが決まったゲームのような構造を持っています。
エンジニア的に言うと、「入力(天体の位置・角度)に対して出力(運勢・傾向)を定義したルールベースのシステム」です。このルールが4,000年かけて人類が試行錯誤してきた経験則の集積だと思うと、それはそれで面白い。
「占星術が正しいかどうか」より「このシステムを使って自分を観察するツールとして面白い」という視点に変わりました。天気予報も100%当たるわけではないですが、傘を持って行くかどうかの判断材料として有用ですよね。それと同じ使い方です。
✦ 実装の苦労話(エンジニアあるある)
惑星の位置計算は想像以上に複雑でした。太陽・月は比較的シンプルな計算式がありますが、火星・木星・土星などは摂動(他の惑星の引力による軌道のずれ)を考慮する必要があり、精度を上げるほど計算式が長くなります。
- 太陽・月の計算:比較的シンプルな三角関数で実装可能
- 惑星の計算:摂動項を含む複数の多項式を使用
- アスペクト判定:角度差とオーブ(許容誤差)の計算
- バイオリズム:生年月日からの経過日数で3サイクルを計算
JavaScriptで実装したため、ユーザーのブラウザ上で全計算が完結します。サーバーへのデータ送信なし、個人情報の収集なし。プライバシー保護の観点からも意図した設計です。
バグを直しながら「あれ、今日の自分の運勢が★1だ。だからデバッグがうまくいかないのか」と思った日が何度かありました。信じていないと言いながら、気づいたらそういう思考になっている自分が面白いです。
✦ このサイトを作った理由
「とりあえず占い。」というサイト名には「難しく考えずにとりあえず使ってみて」という気持ちを込めました。本格的な西洋占星術は奥が深すぎて、入門書を読んでも難しくて挫折する人が多いです。
計算の複雑な部分はコンピュータにやらせて、ユーザーは生年月日を入れるだけで結果が出る。それだけでいい。「ちゃんと理解してから使う」ではなく「とりあえず使ってみて、気が向いたら深く学ぶ」でいい。
運営者(私)も完全に信じているわけではないです。でも「今日の運勢を確認する」という小さな習慣が、自分を振り返る時間になっているなら、それで十分価値があると思っています。今夜もお酒を飲みながら星を眺めています。