CLose story 1.2
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
||||
# Decision Log — Video View Manager Product Brief
|
||||
|
||||
## Session: 2026-05-19
|
||||
|
||||
### Decisions Captured
|
||||
|
||||
| # | Decision | Rationale | Source |
|
||||
|---|---|---|---|
|
||||
| 1 | Module is free / open source | User confirmed | User input |
|
||||
| 2 | Target platform: FoundryVTT v14 | User confirmed | User input |
|
||||
| 3 | North star feature: GM one-click cam toggle | Confirmed and anchored by user at end of brainstorming | Brainstorming session |
|
||||
| 4 | Progressive Enhancement as architecture (L1→L2→L3) | Emerged from SCAMPER-Eliminate; user confirmed | Brainstorming session |
|
||||
| 5 | Dedicated popout for seating chart (not sidebar) | User explicitly chose popout — "we will not do this frequently" | User input |
|
||||
| 6 | Reaction cam is opt-in at character setup | Resolved Marcus/Sofia privacy tension | User confirmed during Role Playing |
|
||||
| 7 | v1.0 scope = right-click toggle only | User reanchored to core feature; all else is additive | User input |
|
||||
| 8 | Brief purpose: FoundryVTT community pitch | User selected option [2] | User input |
|
||||
| 9 | Display name assumed as "Video View Manager" | User did not specify; derived from package ID | [ASSUMPTION] — confirm or override |
|
||||
| 10 | No known competitor modules | User described current state as "complex and not flexible" with no named alternatives | User input — [ASSUMPTION] worth validating |
|
||||
|
||||
### Open Questions
|
||||
- [ ] Confirm display/community name for the module
|
||||
- [ ] Validate: any existing FoundryVTT v14 modules that offer per-player cam visibility control?
|
||||
- [ ] Technical constraint: does FoundryVTT v14 WebRTC API support real track disabling, or is it CSS-only? This affects architecture of the core toggle.
|
||||
|
||||
| 11 | Module display name: **Scrying Pool** | User selected from proposed names; thematic, memorable, GM-perspective | User input |
|
||||
| 12 | Assumption #9 resolved: display name confirmed as "Scrying Pool" | See decision #11 | User input |
|
||||
| 13 | Assumption #10 resolved: no competitor modules confirmed | Exhaustive research of FoundryVTT registry + GitHub found zero per-player GM webcam visibility modules | Research agent |
|
||||
| 14 | Key adjacent modules noted: LiveKit (local-only hide), Camera Dock (layout only), OBS Utils (map viewport), Better Cams (CSS only) | Differentiation is confirmed genuine | Research agent |
|
||||
| 15 | Technical note: FoundryVTT native AVMaster exposes `canUserShareVideo()` and per-user `hidden` flag — but self-controlled only. GM writing to another user's setting is unexploited by any existing module. Core toggle is technically feasible. | Confirms architectural approach | Research agent |
|
||||
|
||||
## Finalized: 2026-05-19
|
||||
Doc standards applied (structural + prose). Status set to final.
|
||||
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: "Product Brief: Scrying Pool"
|
||||
status: final
|
||||
created: 2026-05-19
|
||||
updated: 2026-05-19
|
||||
---
|
||||
|
||||
# Product Brief: Scrying Pool
|
||||
|
||||
## Executive Summary
|
||||
|
||||
Scrying Pool is a free, open-source FoundryVTT v14 module that gives the GM direct control over player webcam visibility. Instead of Foundry's all-or-nothing AV behavior, the GM can show or hide individual camera feeds in one click without interrupting play.
|
||||
|
||||
The core promise is simple: **the GM can control any player's visible webcam feed at any time with minimal friction.** Everything else builds from that. At the lowest level, the module works from the existing camera tiles through a right-click menu. Over time, it grows into scene presets, spotlighting, and broader table-direction tools.
|
||||
|
||||
## The Problem
|
||||
|
||||
FoundryVTT's built-in AV support is too coarse for most online tables. Cameras are effectively either visible or not, with no practical way for the GM to manage visibility per player, per moment, or per scene.
|
||||
|
||||
That leaves GMs with bad options: tolerate a cluttered camera strip, run a second video tool beside Foundry, or stop using webcams altogether. The result is less table presence and less control over how the session feels.
|
||||
|
||||
The missing piece is not video support. It is video management.
|
||||
|
||||
## The Solution
|
||||
|
||||
Scrying Pool adds a GM-controlled visibility layer on top of FoundryVTT's existing AV system. The basic interaction is straightforward: right-click a player's camera tile and choose Show or Hide. The change applies immediately for all connected clients and persists across reconnects.
|
||||
|
||||
The module follows a progressive enhancement model:
|
||||
|
||||
- **Level 1 — Right-click controls.** No new interface, no setup barrier, immediate utility.
|
||||
- **Level 2 — Director's Board.** A compact control strip for quick live adjustments, plus scene-based presets.
|
||||
- **Level 3 — Table Manager.** A dedicated popout for bulk control, status visibility, and advanced preset handling.
|
||||
|
||||
That approach keeps v1 useful on its own while leaving room for deeper tooling later.
|
||||
|
||||
## What Makes This Different
|
||||
|
||||
- **It solves the exact missing control.** The GM manages individual webcam visibility directly from the interface they already use.
|
||||
- **It treats visibility as part of session direction.** Webcam layout becomes something the GM can prepare and apply by scene, not improvise mid-session.
|
||||
- **It respects player agency.** Privacy-sensitive features are opt-in by design, not patched in later.
|
||||
- **It fills a confirmed gap.** An exhaustive search of the FoundryVTT registry and GitHub found no module that provides GM-controlled per-player webcam visibility. Comparable modules address AV backends (LiveKit), layout changes (Camera Dock), map viewport streaming (OBS Utils), or cosmetics (Better Cams) — not visibility management.
|
||||
|
||||
## Who This Serves
|
||||
|
||||
**Primary — GMs running regular online campaigns.** They want fast control during play and predictable behavior that does not demand constant attention.
|
||||
|
||||
**Secondary — Privacy-conscious players.** They want clear expectations and protection against unwanted camera exposure.
|
||||
|
||||
**Tertiary — Actual-play streamers.** A curated broadcast view and advanced controls are on the roadmap, but not the first target.
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- A GM can hide or show any player's webcam in one click without disrupting the session.
|
||||
- Visibility state survives player disconnects and reconnects.
|
||||
- The v1 interaction is discoverable enough that most GMs can use it without documentation.
|
||||
- The module works reliably on FoundryVTT v14 and is maintainable enough for registry publication.
|
||||
|
||||
## Scope
|
||||
|
||||
**In for v1.0**
|
||||
- Per-player GM webcam toggle from the existing AV tile context menu
|
||||
- World-level persistence of visibility state
|
||||
- Socket-based updates so all clients stay in sync
|
||||
- Clear visual indicator for hidden tiles
|
||||
- Portrait fallback when no camera is available
|
||||
- Contextual toast notifications
|
||||
- FoundryVTT v14 compatibility
|
||||
|
||||
**Out for v1.0**
|
||||
- Director's Board
|
||||
- Table Manager popout
|
||||
- Scene-aware presets
|
||||
- Combat spotlighting
|
||||
- Player privacy preferences UI
|
||||
- Streaming or OBS-specific tooling
|
||||
- Token-anchored or stylized camera effects
|
||||
- NPC or reaction-driven camera systems
|
||||
|
||||
**Deferred pending validation**
|
||||
- True WebRTC track disabling rather than cosmetic hiding
|
||||
- Multi-GM support
|
||||
|
||||
## Vision
|
||||
|
||||
If v1.0 proves the core interaction is reliable, the next step is scene-aware presets and a lightweight Director's Board so GMs can set webcam visibility during prep and trust it during play. After that, privacy controls, spotlighting, and streaming support extend Scrying Pool into a broader table-direction tool.
|
||||
|
||||
The long-term goal is modest but useful: make webcam feeds feel like part of session design rather than a side effect of turning AV on.
|
||||
Reference in New Issue
Block a user