Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WorldSimSeed

Write the rules. Run the world. See what emerges.

ルールを植えて、世界を走らせ、何が生まれるかを見る。

WorldSimSeed is an experimental open-source simulation engine for describing small worlds with simple rules and observing the patterns that emerge from them.

WorldSimSeed は、確率・エージェント・時間・イベント・観測という少数の要素から「小さな世界」を定義し、その世界を何度も走らせて、予想外の分布・格差・伝播・協力・崩壊・創発などを観察するための汎用シミュレーション基盤を目指す実験プロジェクトです。

数学やシミュレーションの専門家だけでなく、人間やAIが読み書きできる小さな世界定義から、ブラウザ上ですぐ実験できることを重視します。

Status

Concept / research phase. No implementation yet.

まず類似OSS・製品・研究用ツールを調査し、WorldSimSeedを作る意味と最小仕様を固めてから実装します。

Core idea

たとえば、次のような世界を考えます。

  • 1,000人が同じ資産から始まる
  • 各人には正規分布した「才能」がある
  • 一定確率で幸運・不運が起こる
  • 幸運を活かせる確率は才能に影響される
  • 40年後の資産分布、Gini係数、才能と富の相関を見る

重要なのは、特定の「才能と運」モデルを再現することではありません。

世界のルールを差し替えられる小さなエンジンにすることが目的です。

例:

  • 才能ゼロ・運だけの社会
  • 運ゼロ・才能だけの社会
  • 人脈が多いほど機会が増える社会
  • 不運を努力で一定確率回避できる社会
  • 毎年もっとも貧しい人へ給付する社会
  • 噂や流行がネットワークを伝播する世界
  • 協力者と裏切者が共存する世界
  • 人口・資源・出生・死亡が変化する世界
  • 欲望を持つ人工住民が資源を奪い合う世界

Proposed minimal model for v0.1

最初から「あらゆる数学」を扱おうとはしません。

v0.1では、次の5要素に絞る想定です。

  1. Agents — 個体とその属性
  2. Time — tick / step / year などの時間進行
  3. Events — 確率的または条件付きで起こる出来事
  4. Rules — 状態を変化させる規則
  5. Observers — 分布・平均・相関・Giniなどの観測

世界定義は JSON / YAML 等の、人間とAIの双方が扱いやすい形式を候補とします。

population: 1000steps: 80agents:
talent: normal(mean=0.6, sd=0.1)wealth: 10events:
- name: luckprobability: 0.10condition: random() < talenteffect: wealth *= 2
- name: misfortuneprobability: 0.10effect: wealth *= 0.5observe:
- wealth_distribution
- gini
- correlation(talent, wealth)

※これは仕様ではなく、構想を共有するための擬似記法です。

Architecture direction

WorldSimSeed は「アプリ」だけではなく、埋め込み可能な部品として使える構成を目指します。

想定レイヤー:

  • sim-core — UIを持たないシミュレーションエンジン
  • world-spec — 世界定義フォーマットとvalidator
  • sim-view — グラフ・エージェント・ネットワーク等の可視化
  • web-component — 他サイトへ埋め込めるWeb Component
  • headless — UIなしで大量試行し統計を返す実行モード

将来的には、たとえば次のような埋め込みを想定します。

<world-simsrc="/worlds/example.yaml"></world-sim>

外部アプリからは、概念的には次のように操作できる形を検討します。

sim.step();sim.run(1000);sim.getState();sim.setParameter("scarcity",0.8);

NOZOMI Beingsとの接続可能性

WorldSimSeedは単独の教育・実験ツールとして成立させつつ、人工世界プロジェクト NOZOMI Beings の下層エンジンとして埋め込める可能性も検討します。

ゲームエンジンが重力・衝突・移動を扱うように、WorldSimSeedが

  • 確率
  • 人口
  • 資源
  • 格差
  • 伝播
  • 選択
  • 協力/競争

などの「社会・人工世界の物理」を担当し、その上にNOZOMI側の人格・欲望・記憶などを載せるイメージです。

ただしWorldSimSeed自体はNOZOMI専用にはせず、独立したOSSとして再利用可能にします。

Design principles

  • Small rules, emergent outcomes. 少数のルールから結果が生えることを楽しむ
  • Readable by humans and AI. 世界定義を人間にもAIにも読み書きしやすくする
  • Embeddable. 他のWebアプリや人工世界へ組み込める
  • Deterministic when seeded. 乱数seedを固定すれば再現可能にする
  • Headless first. UIと計算エンジンを分離する
  • Inspectable. ブラックボックス化せず、なぜその結果になったか追跡可能にする
  • Browser-friendly. 可能ならサーバー不要でGitHub Pages等でも動かせる
  • Not a universal solver. 数学全般を解く巨大ツールにはしない

First reference experiment

最初の動作確認用モデル候補は、2018年の研究 Talent versus luck: the role of randomness in success and failure に着想を得た「才能・運・富」の簡易モデル。

これはWorldSimSeedの目的そのものではなく、次の機能を一度に検証できるためのreference modelとして使う想定です。

  • 正規分布
  • 確率イベント
  • 条件付きイベント
  • 乗算的状態変化
  • 多数エージェント
  • 複数回試行
  • 分布・相関・Gini等の集計
  • seed固定による再現

Before coding

実装開始前に、GitHub Issuesで以下を整理します。

  • 類似OSS・商用製品・研究ツールの調査
  • WorldSimSeedの差別化と「作る意味」の確認
  • v0.1 world spec / DSLの設計
  • core / embed / visualization APIの境界
  • reference modelと検証方法
  • OSSライセンス、README、CONTRIBUTING、SECURITY等の公開準備
  • パフォーマンス上限と安全な式評価方式

Research

Next starting point

次回は Issue #2: Design: v0.1 world spec / DSL を定義する から開始する。

調査の暫定判断は、既存の汎用ABMを再実装・直接wrapするのではなく、AI可読なworld spec、seed固定の再現実行、observerとtrace、Web標準での埋め込みに限定して独自実装することである。Issue #2では、この判断を検証する最小world specとrun manifestを定義する。


Concept by 山田佳江 / 月野テンプレクス

About

Write the rules. Run the world. See what emerges. An embeddable, AI-friendly simulation engine for small rule-based worlds.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors