Diederich–Fornæss Worm Domain の VR 可視化
Codex 引継ぎ用設計メモ

原資料の日付:2026年9月

このHTML閲覧版は、実装時に渡されたTeX原本から2026年9月10日に作成しました。見出し・リスト・数式をブラウザー向けに表示し直しています。本文の計画・優先順位は原資料の時点のものです。現在の実装状況は紹介ページをご覧ください。

HTML reading edition of the supplied Japanese implementation brief, prepared on 10 September 2026. The original TeX is available above. Plans in the document retain their original status.

この文書の位置づけ

本メモは、Diederich–Fornæss の worm domain を 3D VR で可視化するための Codex 引継ぎ資料である。

これは、別途進めている

の可視化とは数学的内容としては別プロジェクトである。 一方で、同じ VR 環境の中で観察することを想定しているため、

は可能な限り共通化する。

この worm 可視化の第一目的は、

\[ \boxed{ \text{複雑な定義不等式を、回転する円板断面の族として直観的に見る} } \]

ことである。

特に、

\[ e^{i\log |z|^{2}} \]

が断面円板の中心を回転させ、 bounded worm ではさらに

\[ \eta(\log|z|^{2}) \]

が断面半径を変化させて cap を作ることを、 3D geometry と実関数の graph を同時に見ながら理解できる表示を目指す。

主要文献

元論文

worm domain の歴史的・数学的出発点として、以下を記録する。

Klas Diederich and John Erik Fornæss,
Pseudoconvex domains: an example with nontrivial Nebenhülle,
Mathematische Annalen 225 (1977), no.~3, 275–292.
DOI: https://doi.org/10.1007/BF01425243.

これは smooth bounded pseudoconvex domain でありながら nontrivial Nebenhülle を持つ古典的な worm domain の元論文である。

今回の実装で直接参照する現代的記述

今回の数式実装では、次のプレプリントの記法を主に参照する。

Fani Xerakia,
Automorphisms of the Worm Domain,
arXiv:2511.10614 (2025).
https://arxiv.org/abs/2511.10614
PDF: https://arxiv.org/pdf/2511.10614.

このプレプリントの Definition~1 には bounded Diederich–Fornæss worm が

\[ W_{\mu} = \left\{ (z,w)\in\mathbb{C}^{2}: \left|w-e^{i\log|z|^{2}}\right|^{2} < 1-\eta(\log|z|^{2}), \quad z\neq0 \right\} \]

という形で書かれている。

また、その後の simplified model として

\[ \boxed{ W^{\mathrm{un}} = \left\{ (z,w)\in\mathbb{C}^{2}: \left|w-e^{i\log|z|^{2}}\right|^{2}<1, \quad z\neq0 \right\} } \]

という unbounded / “capless” worm が導入されている。

今回の VR 実装は、

\[ \boxed{\text{まず capless model を作り、その後 bounded model に拡張する}} \]

という順番を基本方針とする。

なぜ 3D に落とせるか

回転対称性

定義式は \(z\) について \(\arg z\) を見ず、

\[ s:=\log|z|^{2}\in\mathbb{R} \]

だけに依存する。

したがって \(z\)-rotation

\[ (z,w)\longmapsto(e^{i\theta}z,w) \]

は domain を保つ。

そこで

\[ (z,w)\in\mathbb{C}^{2} \]

という \(4\) 実次元の表示をそのまま描く代わりに、 この \(S^{1}\) 対称性を落として

\[ \boxed{ (s,\Re w,\Im w)\in\mathbb{R}^{3} } \]

で表示する。

同値に、各 rotation orbit の代表として

\[ z=e^{s/2}>0 \]

を選んでいると考えてもよい。

重要な意味付け.

この 3D object は \(\mathbb{C}^{2}\) 全体の Euclidean geometry を 忠実に \(\mathbb{R}^{3}\) に埋め込んだものではない。 しかし worm の defining inequality が依存する全変数

\[ (s,w) \]

を保持しているため、 \(z\)-rotation symmetry による quotient / canonical representative model として、今回見たい worm の幾何を直接表している。

共通する断面幾何

\(s=\log|z|^{2}\) を固定すると、 \(w\)-plane での断面は円板になる。

bounded worm

\[ \left|w-e^{is}\right|^{2}<1-\eta(s). \]

よって、断面円板の中心は

\[ \boxed{ c(s)=e^{is}=(\cos s,\sin s) } \]

であり、存在する範囲 \(\eta(s)<1\) では半径は

\[ \boxed{ R(s)=\sqrt{1-\eta(s)}. } \]

注意: 定義式は距離の二乗に対する不等式なので、 半径は \(1-\eta(s)\) ではなく

\[ \sqrt{1-\eta(s)} \]

である。

capless / unbounded worm

\[ \left|w-e^{is}\right|^{2}<1, \]

したがって

\[ \boxed{R(s)\equiv1.} \]

この場合、中心線は

\[ \boxed{ \Gamma(s)= \bigl(s,\cos s,\sin s\bigr) } \]

という helix であり、その各 \(s\)-slice に半径 \(1\) の円板を置く。

したがって reduced 3D model は直観的には

\[ \boxed{ \text{回転する中心線に沿って、一定半径の円板断面が連続する worm} } \]

である。

“軸に触れながら回る”という見え方

capless model では

\[ |0-e^{is}|=1 \]

なので、すべての \(s\) に対して

\[ w=0 \]

が boundary 上にある。

3D reduced coordinates では

\[ \boxed{ \mathcal A_{\mathrm{red}} = \{(s,0,0):s\in\mathbb{R}\} } \]

が boundary 上の distinguished axis になる。

つまり各 \(w\)-disc は

\[ \text{center }e^{is},\qquad \text{radius }1 \]

なので、原点 \(w=0\) にちょうど接し、 その接点を保ちながら中心が \(w\)-plane 内を回転する。

これが VR で

\[ \boxed{ \text{``軸に触れつつ、くるくる回ってできる領域''} } \]

として見せたい直観である。

full \(\mathbb{C}^{2}\) では Xerakia が

\[ A^{\mathrm{un}} = \{(z,0)\in\partialW^{\mathrm{un}}\} \]

と書く exceptional locus があり、 \(z\)-rotation を quotient した 3D model では上の axis として見える。

Phase W1:最初に実装する capless worm

今回の最優先モデル

まず

\[ \boxed{ W^{\mathrm{un}} = \left\{ (s,w)\in\mathbb{R}\times\mathbb{C}: |w-e^{is}|<1 \right\} } \]

の reduced 3D model を実装する。

これは実装上

\[ w=e^{is}+r e^{i\phi}, \qquad 0\le r<1, \quad \phi\in[0,2\pi) \]

と parameterize できる。

boundary は

\[ \boxed{ w=e^{is}+e^{i\phi}. } \]

すなわち boundary mesh の基本 parameterization は

\[ \boxed{ X(s,\phi) = \left( s,\, \cos s+\cos\phi,\, \sin s+\sin\phi \right). } \]

\(s\) は unbounded なので、VR では有限 window

\[ s_{\min}\le s\le s_{\max} \]

だけ表示し、この window を移動できるようにする。

W1 で必ず表示するもの

  1. worm boundary の半透明 surface、

  2. 必要なら interior を理解するための薄い volume / selected discs、

  3. center helix

    \[ \Gamma(s)=(s,\cos s,\sin s), \]
  4. distinguished axis

    \[ (s,0,0), \]
  5. 現在選択している \(s=s_{0}\) の cross-section disc、

  6. その disc の center \(e^{is_{0}}\)、

  7. radius \(R=1\)。

boundary surface だけでは内部が分かりにくい場合は、 selected \(s\) における disc を強調表示することを優先する。

Phase W2:bounded worm と cap

W1 が軽快かつ分かりやすく動いた後、 bounded worm

\[ |w-e^{is}|^{2}<1-\eta(s) \]

を追加する。

\(\eta\) の条件

Xerakia の Definition~1 に合わせ、 \(\eta:\mathbb{R}\to\mathbb{R}\) は smooth で

  1. \(\eta\ge0\)、even、convex、

  2. \[ \eta^{-1}(0)=[-\mu,\mu], \]
  3. 十分大きな \(|s|\) では \(\eta(s)>1\)、

  4. \(\eta(s)=1\) の点では \(\eta'(s)\neq0\)

を満たすものとする。

\(\eta(s)<1\) の範囲だけ cross-section が存在し、

\[ R(s)=\sqrt{1-\eta(s)} \]

となる。

\(\eta(s)=1\) で

\[ R(s)=0 \]

となり、3D reduced model の両端が閉じる。 これが cap の可視化になる。

実装用の explicit \(\eta\) 候補

元論文・Xerakia の条件を満たす関数は一意ではない。 VR では、条件を満たし、graph が理解しやすい具体例を一つ固定してよい。

例えば

\[ \psi(t)= \begin{cases} 0,&t\le0,\\ e^{-1/t},&t>0 \end{cases} \]

とし、

\[ F(t)= \begin{cases} 0,&t\le0,\\ \displaystyle\int_{0}^{t}(t-u)\psi(u)\,du,&t>0 \end{cases} \]

と置く。

すると

\[ F''(t)=\psi(t)\ge0 \]

なので \(F\) は smooth convex で、\(t=0\) まで flat に接続する。

chosen transition length \(L>0\) に対し

\[ \boxed{ \eta_{\mu,L}(s) = \frac{F(|s|-\mu)}{F(L)} } \]

とすれば、

\[ \eta=0\quad (|s|\le\mu), \qquad \eta=1\quad (|s|=\mu+L) \]

となり、その外側では \(\eta>1\) になる。

これはVR 用の一つの explicit profileであり、 歴史的元論文でこの特定の式を採用している、という意味ではない。 必要なら後から別の admissible \(\eta\) に差し替えられるようにする。

bounded worm の distinguished locus

中央区間

\[ |s|\le\mu \]

では

\[ \eta(s)=0,\qquad R(s)=1. \]

したがって

\[ w=0 \]

が boundary 上にあり、 full worm での weakly pseudoconvex exceptional annulus は、 reduced 3D model では

\[ \boxed{ \mathcal A_{\mathrm{red}} = \{(s,0,0):|s|\le\mu\} } \]

という axis segment に見える。

Phase W2 ではこの segment を必ず強調表示し、 caps や strongly pseudoconvex part と視覚的に区別する。

連動表示:3D geometry と数式を同時に理解する

このプロジェクトでは 3D worm 単体を表示するだけでなく、 定義式の各項が何をしているかを連動表示する。

View A:main 3D worm

\[ (s,\Re w,\Im w) \]

空間に worm boundary / selected cross-sections を描く。

常時または toggle で

を表示する。

View B:実関数 graph

Phase W2 では横に

\[ \eta(s) \]

または、より幾何学的に直接的な

\[ \boxed{R(s)=\sqrt{1-\eta(s)}} \]

の graph を表示する。

できれば UI で

\[ \eta(s) \quad\longleftrightarrow\quad R(s) \]

を toggle できる。

graph 上に現在値 \(s=s_{0}\) を marker で示し、 同時に

\[ \eta(s_{0}),\qquad R(s_{0}) \]

を表示する。

View C:current \(w\)-plane section

現在の \(s=s_{0}\) に対し

\[ \boxed{ |w-e^{is_{0}}|<R(s_{0}) } \]

という円板を 2D diagram として表示する。

最低限、

を示す。

これにより

\[ \text{graph の radius} \longleftrightarrow \text{$w$-plane の円板} \longleftrightarrow \text{3D worm の断面} \]

の対応を一目で追えるようにする。

ユーザー操作の基本方針

Levi-flat 可視化と操作感を揃える。

推奨基本操作

複雑な chord 操作や、多数の mode を覚えさせる設計は避ける。

主要パラメータ

W1 では主に

\[ s_{0}, \qquad [s_{\min},s_{\max}] \]

を動かす。

W2 では追加で

\[ \mu,\qquad L \]

または equivalent な \(\eta\) profile parameter を変更可能にしてもよい。

ただし初期版では

\[ \mu,\ L \]

を固定し、 \(s_{0}\) の移動だけでも十分である。 UI の単純さを優先する。

近接観察

worm boundary、 distinguished axis / exceptional segment、 cap、 current cross-section に近づき、 自由に回り込んで観察できること。

特に

\[ w=0 \]

近傍で boundary がどのように接するかを見たいので、 near clipping plane や camera collision が観察を妨げないようにする。

色・表示文法の共通化

具体的な色番号は Codex / 実装側で決めてよいが、 既存 Levi-flat VR と意味を揃える。

例えば

とする。

色だけで情報を区別せず、 line thickness、marker、label 等も併用する。

数学的に誤解させないための注意

3D model は symmetry reduction

\[ (s,\Re w,\Im w) \]

model を “worm domain itself in \(\mathbb{R}^{3}\)” と無条件に呼ばず、 必要に応じて

\[ \text{``$z$-rotation reduced model''} \]

または

\[ \text{``$\arg z=0$ representative model''} \]

と表示する。

radius の二乗

必ず

\[ |w-e^{is}|^{2}<1-\eta(s) \]

から

\[ R(s)=\sqrt{1-\eta(s)} \]

とする。

unbounded model と original bounded worm の区別

\(W^{\mathrm{un}}\) は今回の可視化導入に非常に適するが、 Diederich–Fornæss の original bounded worm そのものではない。

UI / documentation では

を明確に区別する。

Codex に委任する実装判断

以下は Codex が性能・操作性を見て判断してよい。

  1. boundary mesh の sampling density、

  2. \(s\) window の長さ、

  3. center helix / axis の line rendering 方法、

  4. volume を半透明で塗るか、boundary + selected discs のみにするか、

  5. View B / View C を world-space panel にするか HUD にするか、

  6. graph labels の密度、

  7. W1 / W2 を別 scene にするか toggle にするか、

  8. LOD / culling / GPU mesh の使用、

  9. controller の左右割り当て。

ただし以下は保持する。

今回の実装スコープ

優先順位は以下。

必須:Phase W1

\[ \boxed{ |w-e^{is}|<1 } \]

の capless 3D reduced worm。

を実装する。

次段階:Phase W2

\[ \boxed{ |w-e^{is}|^{2}<1-\eta(s) } \]

の bounded worm。

を追加する。

Future work

今回の初期実装では必須としない。

これらは、まず “worm の定義式そのものが目で理解できる” Phase W1–W2 が 成功した後の発展課題とする。

最低限の実装チェック項目

  1. W1 で center が

    \[ e^{is} \]

    に従って正しく一周するか。

  2. 各 \(s\)-slice の半径が W1 では常に \(1\) か。

  3. W1 で \(w=0\) が全 \(s\) について boundary 上にあるか。

  4. current \(s\) を動かすと 3D slice、2D section、graph marker が同期するか。

  5. W2 では

    \[ R(s)=\sqrt{1-\eta(s)} \]

    が正しく使われているか。

  6. \(|s|\le\mu\) で \(R(s)=1\) になっているか。

  7. \(\eta(s)=1\) で cross-section が半径 \(0\) に閉じるか。

  8. W2 で exceptional locus が reduced model の axis segment として見えるか。

  9. worm に近づいても clipping / transparency のために形が読めなくならないか。

  10. UI が Levi-flat project と同程度の操作複雑度に収まっているか。

一行での設計要約

\[ \boxed{ s=\log|z|^{2}\text{ を横軸にし、 中心 }e^{is}\text{、半径 }\sqrt{1-\eta(s)} \text{ の円板族を 3D で ``worm'' として見る。} } \]

まずは

\[ \boxed{ R(s)\equiv1 } \]

の capless worm で “軸に接しながら中心がくるくる回る” 幾何を見せ、 次に \(\eta\) の graph と連動させて bounded worm の cap formation を見せる。