← スキル一覧に戻る

planar-isotopy-screen
by plurigrid
everything is topological chemputer!
⭐ 2🍴 3📅 2026年1月20日
SKILL.md
name: planar-isotopy-screen description: Planar Isotopy Screen Mapping version: 1.0.0
Planar Isotopy Screen Mapping
Maps thread states and observations to screen positions using planar isotopy principles.
Trit Value
0 (ERGODIC) - Coordinate between spatial regions
Purpose
Transform abstract thread relationships into concrete screen positions while preserving topological invariants:
- Adjacency: Neighboring trits occupy adjacent screen regions
- Handedness: MINUS→left, ERGODIC→center, PLUS→right
- Conservation: Screen area sum is invariant under isotopy
Screen Region Mapping
┌─────────────────┬─────────────────┬─────────────────┐
│ │ │ │
│ MINUS │ ERGODIC │ PLUS │
│ (left) │ (center) │ (right) │
│ │ │ │
│ Cold hues │ Neutral hues │ Warm hues │
│ 180-300° │ 60-180° │ 0-60°,300-360° │
│ │ │ │
│ Validator │ Coordinator │ Generator │
│ │ │ │
└─────────────────┴─────────────────┴─────────────────┘
Position Computation
(defn seed->screen-position [seed trit screen-width screen-height]
"Map seed deterministically to (x, y) within trit's region.
Uses SplitMix64 decomposition:
- High bits → x offset
- Low bits → y offset"
(let [region (trit->region trit screen-width)
[rand1 seed'] (splitmix64 seed)
[rand2 _] (splitmix64 seed')
x (+ (:x region) (* (:width region) (/ rand1 MASK64)))
y (* screen-height (/ rand2 MASK64))]
{:x x :y y :region trit}))
Observation Lines
When thread A observes thread B, draw a line between their screen positions:
(defn observation-line [observer observed]
{:from (seed->screen-position (:seed observer) (:trit observer))
:to (seed->screen-position (:seed observed) (:trit observed))
:gf3-sum (mod (+ (:trit observer) (:trit observed)) 3)})
Planar Isotopy Invariants
- No crossings for conserved observations: Lines between threads with GF(3) sum = 0 should not cross
- Triadic bundling: Triad members form non-crossing triangles
- Seed progression: Moving a thread moves its position deterministically
Integration with Mutual Thread Observation
from mutual_thread_observation import MutualThreadObservationSystem
system = MutualThreadObservationSystem()
# ... register threads ...
# Get screen positions
for tid, state in system.thread_states.items():
pos = seed_to_screen_position(state.seed, state.trit)
print(f"{tid}: ({pos['x']:.0f}, {pos['y']:.0f}) in {pos['region_label']}")
macOS Integration
Use with macos-use MCP for actual screen interaction:
# Get element at thread's screen position
bb -e '(require \'[mutual-thread-demo :as mtd])
(let [pos (mtd/seed->screen-position seed trit)]
(println (:x pos) (:y pos)))'
Then use mcp__macos-use__macos-use_click_and_traverse at those coordinates.
Related Skills
mutual-thread-observation- Core observation systemgay-mcp- Deterministic color from seedacsets-algebraic-databases- Schema modelingbisimulation-game- Observational equivalence
スコア
総合スコア
60/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です