推しアイデア
「議論の物理化] 意見に熱量・質量・風化を与え、投じられた石が波紋を生むという表現は唯一無二。 いいねを稼げる風化しない意見を投じよう!
―
「議論の物理化] 意見に熱量・質量・風化を与え、投じられた石が波紋を生むという表現は唯一無二。 いいねを稼げる風化しない意見を投じよう!
お題に沿うようなことを考えていたら、「"波風"立てる議論プラットフォームを作ろう!」に行き着いた。
cannon-es + Three.js の物理演算 石が水面に落ちる挙動をリアル物理で再現してるのが没入感を爆上げしてる。
今のSNSでは、どんな意見も同じタイムラインに流れ、すぐに消費される。
「人類は進化を止めるべきだ」という壮大な問いかけも、「僕はラーメンが好きだ」というつぶやきも、同じ1投稿として扱われる。
それっておかしくない?
「いい波立ってんね~」は、あなたの意見を石として池に投じる議論プラットフォームです。
投稿すると、言葉は石になって池に飛んでいき、着水し、波紋を広げ、水底に沈んでいく。
そして——主語がデカいほど、石がデカくなる。
| 入力 | 主語 | スケール | 石のサイズ |
|---|---|---|---|
| 僕はラーメンが好きだ | 僕 | 15 | 小さい |
| 女は海 | 女 | 70 | 中くらい |
| 人類は進化を止めるべきだ | 人類 | 100 | でかい |
主語がデカい石は、大きな波紋を生み、重い着水音を響かせ、高い水柱を立てる。
そして、なかなか風化しない。大きな問いかけは、長く池に残り続ける。
スケール判定の核心は、日本語の自然言語処理エンジン GiNZA(spaCy + 日本語モデル)。
日本語の難しさは「は」と「が」の区別にある。
「僕はラーメンが好きだ」——主語は「ラーメン」ではなく「僕」。
GiNZAの依存関係ラベル dislocated(は-トピック)と nsubj(が-主語)を区別し、正しく「僕」を主語として抽出する。
has_dislocated = any(t.dep_ == "dislocated" for t in sent) if has_dislocated and token.dep_ == "nsubj": continue # 「ラーメンが好き」のラーメンを除外
抽出した主語を、約50語のスケール辞書と固有表現認識(地名・組織名)で0〜100にスコアリングする。
| 主語の種類 | 例 | スケール |
|---|---|---|
| 個人 | 僕・私・俺 | 15 |
| 小集団 | 家族・チーム | 35〜40 |
| 社会・組織 | SNS・メディア・政府 | 60〜80 |
| 人類・世界規模 | 人類・世界・宇宙 | 95〜100 |
cannon-es による物理演算で、石は水底に沈み、先に投じられた石の上に本当に積み重なっていく。議論が積み上がる様子を、物理として体感できる。
いいねされた石は熱量が上がり、赤く光り始める。
議論されなくなった石はゆっくり透明になり、脈動しながら消えていく。主語がデカい石ほど風化は遅く、池の中に長く存在し続ける。
熱量が高い投稿群を GPT-3.5 が要約し、「風」として池の上に流す。議論の潮流が自然言語で可視化される。
池には2種類の魚が泳いでいる。
🔵 冷笑魚(青) と 🔴 熱血魚(赤) だ。
魚が石に近づくと、熱量に変化が起きる。
| 魚の種類 | 石への影響 | 吹き出し |
|---|---|---|
| 🔵 冷笑魚 | 熱量を下げる | 「う、魚w」 |
| 🔴 熱血魚 | 熱量を上げる | 「う、うおおおおおお!」 |
そして——「サメ襲来」。
画面を横切るカットイン演出のあと、🦈 サメが池に現れる。サメは熱血魚だけを狙って食い尽くし、「まじサメるわ〜」と吐き捨てて去っていく。
熱量を上げようとする声が、冷笑によって消えていく。これは今のSNSそのものだ。
Pico 4 Ultra に対応した WebXR 機能も搭載。
池にかかる木製の橋の上に立ち、コントローラーで石を掴み、振りかぶって池に投げ込む。振りの強さで飛距離が変わり、腕の方向で着水位置が変わる。
VR空間内のスマホ型UIパネルからひらがなキーボードで文章を入力し、意見を打ち込んで自分の手で池に投じる体験をVR内で完結させた。
┌─────────────────────────────────────────────────────┐ │ Frontend (Vue.js + Three.js + cannon-es + WebXR) │ │ │ │ ┌──────────┐ ┌───────────┐ ┌──────────────────┐ │ │ │ 3D池 │ │ 物理演算 │ │ WebXR / VR UI │ │ │ │ (Three) │ │(cannon-es)│ │ (Pico 4 Ultra) │ │ │ └──────────┘ └───────────┘ └──────────────────┘ │ └────────────────────┬────────────────────────────────┘ │ HTTP ┌────────────┴────────────┐ ▼ ▼ ┌───────────────┐ ┌──────────────────┐ │ Gravity API │◄─────►│ NLP API │ │ (Node/Express)│ │ (FastAPI + GiNZA)│ │ │ │ │ │ ・質量計算 │ │ ・主語抽出 │ │ ・AI要約(風) │ │ ・スケール判定 │ │ ・VRリモート │ │ ・固有表現認識 │ └───────┬───────┘ └──────────────────┘ │ HTTP ▼ ┌───────────────┐ ┌──────────────────┐ │ Logic API │◄─────►│ MySQL │ │ (PHP) │ │ │ │ │ │ ・posts │ │ ・風化判定 │ │ ・interactions │ │ ・熱量計算 │ │ ・winds │ │ ・DB管理 │ └──────────────────┘ └───────────────┘
5つのサービスを Docker Compose でオーケストレーション。
| メンバー | 担当 |
|---|---|
| A | 物理UI(3D描画・物理演算・NLP・VR・音響) |
| B | ロジック・DB(風化・熱量・API設計) |
| C | フロントUI・デザイン |
主語がデカいほど、大きな波紋を生む。
あなたの意見は、どれくらいの波紋を広げるだろう?