feat: 物語モード + 不老シナリオ + 機械の光 + シネマティック描画 + 昼と夜 + 衛星#8
Draft
orangewk wants to merge 6 commits into
Draft
Conversation
✦ボタン / Sキーで開始。各章でタイムラインが該当年へ移動し、 カメラがその舞台(肥沃な三日月地帯〜2100年の地球)へ飛行、 日英のナレーションカードを表示する。 - 8章: 最初の火 / 最初の都市 / 帝国 / 大いなる死 / 機械の時代 / 大加速 / 波の頂 / 開かれた結末 - 最終章は選択中の出生率シナリオに連動して結末が変わる - ← → / Space で章送り、Esc で終了、スライダー操作で自動解除 - 物語中は自動回転を停止し、終了時に元の状態へ復元 - モバイル: カード縮小 + カメラ高度を +1.2 補正 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FyQi56Xny5G7XxLsGD5QT3
不老 (Ageless) シナリオ: - 2030年以降、老化が年4%減速し、死亡率が事故のみの床 (0.05%/年 ≈ 実効寿命2000年) へ指数減衰 - 本モデルでは出生∝死亡のため、死が消えると出生も薄れ、 人口は爆発せず高い水準で凍結する (2100年 ~79億人) - 演出: 未来のドットの揺らぎが2070年までに止まる「凍った光」 - 年齢色レイヤーも連動し、高齢化で全球が青紫へ沈む 機械の光レイヤー (表示トグル): - 1ドット = 1GW (想像)。2025年約60GW から12年倍増 - 配置は人口ではなくエネルギー+冷却 (33サイト: アイスランド、 北欧、ケベック、サハラ、アタカマ、ゴビ、ピルバラ等) - サイト固定シードで年を進めると光が増える (再配置されない) - シアン・揺らがない光として人間の暖色と対比 物語モード終章「凍った光」(9/9): - カメラは北大西洋へ。不老シナリオ + 機械の光を自動で有効化 その他: - 将来年の世界人口ラベルを表示 (従来は2023年以降空欄) - fix: .speed-btn セレクタが表示トグルにも速度ハンドラを 付与し speed=NaN で再生が壊れるバグを data-speed 限定で修正 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FyQi56Xny5G7XxLsGD5QT3
Deploying humansofearth with
|
| Latest commit: |
416aa0c
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://5387b75a.humansofearth.pages.dev |
| Branch Preview URL: | https://claude-fable5-creative-follo.humansofearth.pages.dev |
美麗化 Phase 1。すべて光の物理からの借用で、装飾は足していない。 描画パイプライン: - UnrealBloomPass (strength 0.55 / radius 0.2 / threshold 0.4) + ACES トーンマッピング + OutputPass の正規構成 - 閾値 0.4 で加算合成のドット(輝度>1)だけが滲み、 地球テクスチャと大気は滲まない - 背景色を #000011 → 純黒へ(宇宙は黒、空は星が担う) 大気「薄い青い線」: - globe.gl 標準の一様グローを廃止し、視線の衝突径数 b を フラグメントで計算するシェルシェーダーに置換 - 地表シルエットでシアンのナイフエッジ → 青 → 菫の指数減衰、 円盤縁には薄いヘイズ プロシージャル星空: - 一様星 3,200 + 天の川バンド 5,200 + 拡散ヘイズ 700 - 固定シードで決定的、微細な瞬き、固定ピクセルサイズシェーダー - jsdelivr の夜空テクスチャ依存を排除(外部CDN依存ゼロに) 物語モード最終章「ペイル・ブルー・ドット」(10/10): - 6秒かけて altitude 58 までプルバック、地球が星々のあいだの 一粒の光になる。物語終了時はカメラが自動帰還 - リサイズ時にプルバック中のカメラを引き戻さないようガード Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FyQi56Xny5G7XxLsGD5QT3
昼と夜 (Cinema) モード — Cキー / 表示トグル、デフォルトoff: - 固定太陽 (カリブ海上空正午) によるターミネーター描画。 globeMaterial をカスタムシェーダーに差し替え、昼は blue_marble_day.jpg、夜は夜景ベース、境界に暖色の帯 - ドット頂点シェーダーに uSunDir/uDayFade を追加し、 人の灯と機械の光は昼面でフェードアウト ——人の灯は影の中でしか見えない 衛星レイヤー (史実、デフォルトon): - 1957年スプートニク2基 → 2025年約1.1万基 (実数の近似) → 2100年6万基 (外挿) をアンカー補間 - 低軌道殻 (高度+6〜12%、傾斜65度以内) に固定シードで SAT_MAX=12,000 スロットを事前配置、年は drawRange のみ 変更するため衛星は再配置されず「増える」 - 殻全体が約3.5分/周でゆっくり周回 - 凡例「● = 衛星n基」は 1.2万ドット超で自動スケール - 1957年より前はトグルをグレーアウト Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FyQi56Xny5G7XxLsGD5QT3
バグ: モデルデータのない国が自然増ステップでスキップされると surplus が undefined のまま残り、undefined * 0.03 = NaN が 「NaN < 1 = false」でガードを素通りして全移民先に分配されていた。 翌年 NaN 人口は falsy としてスキップされ 0 に崩壊。結果、 移民 ON で世界人口が 74.8億 → 4.0億に消滅し、アークも消えていた (座標データのない国=移民先にならない国だけが生き残る)。 修正: - 自然増ステップ: スキップ国も naturalPop = pop || 0, surplus = 0 で必ず通過させる - 移出ガード: emig = (surplus || 0) * rate + isFinite チェック - 移入適用: (naturalPop || 0) + (immigrants || 0) - getTopFlows にも同等の isFinite ガード 性能: computeAllFuturePop がフレーム毎に2024年から全再計算 していた (~494ms/step)。ループ内で各中間年を浅いコピーで キャッシュし、次回は最寄りのキャッシュ年から再開 → O(1年)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FyQi56Xny5G7XxLsGD5QT3
世界人口崩壊の NaN バグ自体は修正済みだが、検証で第2の問題が判明: フローモデルの送出条件が「自然増の余剰がある国」のみのため、 linear シナリオでは 2030-2050 年でアーク0本、以降もほぼ ウズベキスタン1国発に collapse し、移民の絵として成立していない。 - #migration-btn を display:none で非表示(クリック不可に) - showMigration は false 固定のままなのでアークは描画されない - エンジンコード(重力モデル/computeAllFuturePop/getTopFlows)は そのまま残置。display:none を外せば復活可能 - README の機能一覧から移民フローを削除(データソース行は残置) - IDEAS.md に非公表の経緯と再公表の条件を記録 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FyQi56Xny5G7XxLsGD5QT3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
「自由な発想でフォローアップを」というお題から始まった PR です。4つのコミットで6つの体験を追加します。
物語モード
✦ ボタン(または
Sキー)で開始。各章でタイムラインが該当年へジャンプし、カメラがその章の舞台へ飛行して、日英のナレーションカードが表示されます。第4章はデータ上で実際に人口が減少している瞬間(1300→1400年、黒死病)を選択。終章は不老シナリオと機械の光を自動有効化。最終章は6秒かけてカメラが引き、地球が星々のあいだの一粒の光になります(終了時は自動帰還)。
不老 (Ageless) シナリオ
2030年以降、老化が年4%減速し、死亡率が事故のみの床(0.05%/年 ≈ 実効寿命2000年)へ指数減衰。
birthRate ∝ deathRateのため、死が消えると出生も薄れる。人口は爆発せず高い水準で凍結(2100年 約79億人。Linear 48億 / Stable 96億 との対比)機械の光レイヤー
表示トグル。凡例「● = 1 GW」。2025年約60GWから12年倍増。配置は人口ではなくエネルギーと冷却(アイスランド、サハラ、ゴビ等33サイト)。シアン・揺らがない光として人間の暖色と対比。
シネマティック描画
#000011が藍色に浮く問題も解消)昼と夜モード (
Cキー、デフォルトoff)固定太陽によるターミネーター。昼面は
blue_marble_day.jpg、夜面は夜景、境界に夜明け/黄昏の暖色帯。人の灯と機械の光は昼面でフェードアウト——人の灯は影の中でしか見えない、という作品の主題をそのまま描画にしました。カメラの自動回転が昼夜を横断する演出になります。衛星レイヤー (史実、デフォルトon)
1957年、スプートニクとともに初めて人類の光が地面を離れます。低軌道殻(高度+6〜12%)をゆっくり周回するドット群。1957年2基 → 2025年約1.1万基(実数近似)→ 2100年6万基(外挿)。固定シード+drawRange方式で、年を進めると衛星は再配置されず「増える」。凡例「● = 衛星n基」は自動スケール。
その他の修正
.speed-btn:not(.scenario-btn)セレクタが表示トグルにも速度ハンドラを付け、speed = NaNで再生が壊れる既存バグを[data-speed]限定で修正検証
Playwright + ローカルバンドル(この実行環境では esm.sh が egress ポリシーで遮断されるため、three / globe.gl / ポストプロセスを単一 three インスタンスの結合バンドルにしてルート差し替え)で E2E 検証済み:
🤖 Generated with Claude Code
https://claude.ai/code/session_01FyQi56Xny5G7XxLsGD5QT3