diff --git a/authoring_server.py b/authoring_server.py index b10f357..bc11c8c 100755 --- a/authoring_server.py +++ b/authoring_server.py @@ -158,7 +158,7 @@ CHARACTER_REGISTRY = { "playful": "https://zainezq.com/assets/avatars/young-z.jpeg", }, "sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82}, - "observatory": {"territory": "nostalgic/playful memories", "anchor": {"x": 0.23, "y": 0.7}, "shimmer": "soft"}, + "observatory": {"territory": "nostalgic/playful memories", "shimmer": "soft"}, "presenceTones": ["nostalgic", "funny", "hopeful"], "presenceKeywords": ["childhood", "play", "desk", "crayon", "young", "small", "blanket", "memory"], "symbol": "Y", @@ -176,7 +176,7 @@ CHARACTER_REGISTRY = { "fallbackAvatar": "https://zainezq.com/assets/avatars/z.jpeg", "expressions": {"default": "https://zainezq.com/assets/avatars/z.jpeg", "calm": "https://zainezq.com/assets/avatars/z.jpeg"}, "sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82}, - "observatory": {"territory": "self/archive memories", "anchor": {"x": 0.5, "y": 0.52}, "shimmer": "steady"}, + "observatory": {"territory": "self/archive memories", "shimmer": "steady"}, "presenceTones": ["warm", "soft", "hopeful"], "presenceKeywords": ["website", "archive", "home", "self", "making", "return", "zaine"], "symbol": "Z", @@ -198,7 +198,7 @@ CHARACTER_REGISTRY = { "amused": "https://zainezq.com/assets/avatars/aphy.jpeg", }, "sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82}, - "observatory": {"territory": "system/symbolic areas", "anchor": {"x": 0.77, "y": 0.35}, "shimmer": "diagnostic"}, + "observatory": {"territory": "system/symbolic areas", "shimmer": "diagnostic"}, "presenceTones": ["funny", "strange", "hopeful"], "presenceKeywords": ["system", "console", "diagnostic", "keyboard", "search", "terminal", "backup", "symbolic", "query"], "symbol": "A", @@ -221,7 +221,7 @@ CHARACTER_REGISTRY = { "protective": "https://zainezq.com/assets/avatars/lima.jpg", }, "sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82}, - "observatory": {"territory": "warm/protective arcs", "anchor": {"x": 0.29, "y": 0.36}, "shimmer": "warm"}, + "observatory": {"territory": "warm/protective arcs", "shimmer": "warm"}, "presenceTones": ["warm", "protective", "soft"], "presenceKeywords": ["lima", "love", "warm", "kitchen", "light", "ring", "home", "protect", "eat"], "symbol": "L", @@ -243,7 +243,7 @@ CHARACTER_REGISTRY = { "wise": "https://zainezq.com/assets/avatars/sensei-chi.jpeg", }, "sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82}, - "observatory": {"territory": "reflective areas", "anchor": {"x": 0.68, "y": 0.68}, "shimmer": "quiet"}, + "observatory": {"territory": "reflective areas", "shimmer": "quiet"}, "presenceTones": ["wise", "melancholy", "soft"], "presenceKeywords": ["reflection", "patience", "wisdom", "lesson", "tea", "garden", "quiet", "sensei"], "symbol": "S", @@ -265,7 +265,7 @@ CHARACTER_REGISTRY = { "reassuring": "https://zainezq.com/assets/avatars/future-z.jpeg", }, "sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82}, - "observatory": {"territory": "temporal regions", "anchor": {"x": 0.73, "y": 0.18}, "shimmer": "temporal"}, + "observatory": {"territory": "temporal regions", "shimmer": "temporal"}, "presenceTones": ["hopeful", "melancholy", "wise"], "presenceKeywords": ["future", "time", "clock", "older", "tomorrow", "age", "reassurance", "continuity"], "symbol": "F", @@ -2853,10 +2853,6 @@ HIDDEN_APP_HTML = r""" } .cluster-node .count { font-size: 18px; font-weight: 850; } .cluster-halo { fill: rgba(211, 166, 77, 0.08); stroke: rgba(211, 166, 77, 0.22); stroke-dasharray: 3 8; } - .territory-anchor { pointer-events: none; opacity: 0.72; } - .territory-anchor circle { fill: rgba(251, 241, 220, 0.035); stroke-width: 1.2; stroke-dasharray: 5 11; } - .territory-anchor image { opacity: 0.88; } - .territory-anchor text { fill: rgba(248, 234, 209, 0.66); font-size: 18px; paint-order: stroke; stroke: rgba(14, 11, 8, 0.78); stroke-width: 3px; } .drag-preview-line { stroke: rgba(255, 232, 177, 0.78); stroke-width: 3; stroke-dasharray: 8 8; pointer-events: none; } .drag-preview-halo { fill: rgba(211, 166, 77, 0.1); stroke: rgba(255, 232, 177, 0.58); stroke-width: 2; stroke-dasharray: 4 7; pointer-events: none; } .drag-preview-label rect { fill: rgba(18, 16, 13, 0.86); stroke: rgba(255, 232, 177, 0.42); rx: 7; } @@ -3972,7 +3968,6 @@ HIDDEN_APP_HTML = r""" const storyRegions = renderStoryRegions(entries); const occupied = []; const defs = []; - const territoryAnchors = renderTerritoryAnchors(defs); const clusterNodes = clusters.map((cluster) => { const pos = state.clusterPositions.get(cluster.id); const character = state.mode === "character" ? cluster.label : cluster.character || "z"; @@ -4010,7 +4005,7 @@ HIDDEN_APP_HTML = r""" : svgAvatar(character, size, clipId, avatarExpressionForEntry(entry), state.zoom >= 2 ? "node-breathe" : "")} ${label}`; }).join(""); - graph.innerHTML = `${defs.join("")}${rings}${territoryAnchors}${storyRegions}${clusterEdges}${edges}${clusterNodes}${nodes}`; + graph.innerHTML = `${defs.join("")}${rings}${storyRegions}${clusterEdges}${edges}${clusterNodes}${nodes}`; graph.querySelectorAll(".cluster-node").forEach((node) => { node.addEventListener("click", () => openCluster(node.dataset.id)); node.addEventListener("dblclick", () => openCluster(node.dataset.id)); @@ -4029,23 +4024,6 @@ HIDDEN_APP_HTML = r""" renderMinimap(scope); updateDragPreview(); } - function renderTerritoryAnchors(defs) { - if (state.camera.k < 0.18 || ["journey","hidden","dream","temporal"].includes(state.mode)) return ""; - return Object.entries(avatarRegistry()).map(([character, config]) => { - const anchor = config.observatory?.anchor || { x: 0.5, y: 0.5 }; - const x = Math.max(260, Math.min(WORLD.width - 260, Number(anchor.x || 0.5) * WORLD.width)); - const y = Math.max(220, Math.min(WORLD.height - 220, Number(anchor.y || 0.5) * WORLD.height)); - const radius = state.mode === "character" ? 150 : 105; - const portrait = state.mode === "character" || state.camera.k > 0.42; - const clipId = `clip-territory-${slugify(character)}`; - defs.push(``); - return ` - - ${portrait ? svgAvatar(character, 38, clipId, "default", "node-breathe") : ""} - ${html(characterLabel(character))} - `; - }).join(""); - } function renderStoryRegions(entries) { if (!entries.length || state.camera.k < 0.22) return ""; return filteredStories().map((story) => {