Orrery(渾天儀)— ブラウザで動く命理・紫微斗数計算器
概要
Orrery は、サーバーを介さずブラウザだけで命理学(四柱八字/사주팔자)と紫微斗数(자미두수)を計算できるツールです。生年月日・出生時刻から60甲子に基づく年・月・日・時の四柱を算出し、十神や十二運星、地支の蔵干、合・冲・刑・破・害の関係や主要な神煞(신살)を解析します。紫微斗数側では陰暦変換や命盤・身盤の配置、14主星の配列、化祿・化權・化科・化忌の判定などをクライアントで完結し、日運・月運のトランジットや大運の順行/逆行判定も可能です。TypeScriptで実装され、GitHub Pagesにライブデモが置かれています。
リポジトリの統計情報
- スター数: 3
- フォーク数: 2
- ウォッチャー数: 3
- コミット数: 25
- ファイル数: 16
- メインの言語: TypeScript
主な特徴
- 完全クライアントサイドで四柱八字と紫微斗数の両方を計算
- 十神・十二運・地支蔵干・合冲刑破害など命理の詳細解析に対応
- 紫微斗数の14主星配置、四化(化祿/化權/化科/化忌)を算出
- GitHub Pagesでライブデモを公開、TypeScriptで堅牢に実装
技術的なポイント
Orrery は TypeScript を用いてブラウザ上で直接計算を完結させる設計が最大の特徴です。生年月日と時刻から60甲子(干支)を決定するための暦算ロジック、陰暦(農暦)への変換、時区間の扱いといったカレンダー関連アルゴリズムがクライアントに実装されており、サーバーや外部APIに依存しません。紫微斗数側では命盤(命宮・身宮)の位置決定や14主星の配置ルール、四化の伝播ルールをコード化しており、伝統的なルールセットをアルゴリズム化している点が技術的に興味深いです。
TypeScript による型安全性で計算ロジックを明確に分離しているため、アルゴリズムの検証や拡張がしやすく、将来的なルール差異への対応も容易です。bun.lock の存在から現代的な JavaScript 実行環境やビルドツール(bun の利用やそれに準ずるパッケージ管理)の導入が示唆され、配布は GitHub Pages を用いた静的ホスティングでデプロイされています。クライアント実行によりプライバシー面での利点(出生データを外部送信しない)があり、レスポンス性能もユーザー端末に依存する形で即時性があります。一方、暦変換や天文時刻を扱う性質上、実装の正確性(閏月処理や地方時の扱い)については注意が必要で、検証や単体テストの整備が精度担保に重要です。UIやローカライズは README から推して韓国語が中心ですが、TypeScript の設計により将来的な多言語対応や機能拡張が容易です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- .gitignore: file
- CLAUDE.md: file
- README.md: file
- bun.lock: file
…他 11 ファイル
まとめ
クライアントだけで完結する命理・紫微斗数ツールとして実用的。学習や個人利用に最適。
リポジトリ情報:
- 名前: orrery
- 説明: 서버 없이 브라우저에서 동작하는 사주팔자·자미두수 계산기. 십신, 대운, 명반, 사화까지 한 번에.
- スター数: 3
- 言語: TypeScript
- URL: https://github.com/rath/orrery
- オーナー: rath
- アバター: https://avatars.githubusercontent.com/u/20171?v=4
READMEの抜粋:
Orrery — 혼천의(渾天儀)
브라우저 기반 명리학 도구. 사주팔자(四柱八字)와 자미두수(紫微斗數)를 백엔드 없이 클라이언트에서 계산합니다.
기능
사주팔자 (四柱八字)
- 60갑자 기반 4주 계산 (시주, 일주, 월주, 년주)
- 십신, 12운성, 지장간
- 합충형파해 관계 분석 (삼합, 반합, 방합 포함)
- 신살 (양인살, 백호살, 괴강살)
- 대운 10개 (순행/역행 판단)
- 일운/월운 트랜짓 (합/충/형 감지)
자미두수 (紫微斗數)
- 음력 자동 변환
- 명궁/신궁 계산
- 14주성 배치 (紫微계 + 天府계)
- 보성/살성 배치
- 사화 (化祿/化權/化科/化忌)
- 성요 밝기 (…