Skip to main content

snap-spectacles-sync

Load when the user is building multiplayer / Connected Lenses on Snap Spectacles — Sync Kit, SessionController, SyncEntity, networked prefabs, host migration, latency-tolerant UX, or asks "how do users share this lens." Don't load for single-user lenses — use snap-spectacles-build.

Quellinformationen

Repository
HKTITAN/thenextinterface
Letzte Quellaktivität
15. Mai 2026 um 08:05
Erkannte Sprache von SKILL.md
Englisch
Sterne
4
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
12 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
snap-spectacles-sync
description
Load when the user is building multiplayer / Connected Lenses on Snap Spectacles — Sync Kit, SessionController, SyncEntity, networked prefabs, host migration, latency-tolerant UX, or asks "how do users share this lens." Don't load for single-user lenses — use snap-spectacles-build.
license
MIT
metadata
{"author":"HKTITAN","version":"1.0.0","graph":true,"depends":["snap-spectacles-build"]}
# Spectacles Sync Kit — Connected Lenses Sync Kit is the multiplayer layer for Spectacles. It abstracts the network — sessions, networked state, RPC-like events — so your script can be "networked" by attaching a SyncEntity. The complexity isn't the API surface; it's the design decisions about who owns what state, how conflicts resolve, and what the UX does when the network blinks. ## When to load Triggers: - "Spectacles multiplayer" - "Connected Lenses" - "How do users share this lens" - "SyncEntity broken" - "Networked prefab instantiation" - "Host migration on Spectacles" Don't load for: - Single-user lens basics — use [[../snap-spectacles-build/SKILL]]. - Snap Cloud (database / backend) — use [[../snap-spectacles-ai/SKILL]] (Snap Cloud lives there because it's often paired with AI / persistence). - Phone companion bridges — use [[../snap-spectacles-mobile-kit/SKILL]]. ## Decide first The architecture decisions before code: 1. **State model.** What's per-user (local, never networked) vs shared (every peer sees the same)? Mis-classifying once is a refactor. 2. **Authority model.** Host-authoritative (one user owns state; others read), peer-authoritative (everyone owns their own object), or hybrid? See [[references/host-vs-peer]]. 3. **Conflict resolution.** What happens when two users edit the same thing at once? Last-write-wins is the default; sometimes wrong. See [[references/conflict-resolution]]. 4. **Latency budget.** What does your UX feel like at 100 ms? At 500 ms? Connected Lenses can have variable latency — design for the worst-likely. 5. **Discovery model.** How do users find each other's session? Snapcode? Voice "join my session"? See [[references/connected-lens-onboarding]]. ## Map of content ### Foundations - [[references/session-controller]] — SessionController as the entry point; current session, peers, lifecycle. - [[references/session-lifecycle]] — joining, leaving, reconnecting; what your code should do at each phase. - [[references/host-vs-peer]] — authority models; host migration. ### Networked state - [[references/sync-entity]] — SyncEntity: making any script networked. - [[references/storage-properties]] — auto-synced state inside SyncEntities. - [[references/networked-events]] — fire-and-forget messages across peers. - [[references/instantiator]] — instantiating prefabs across the whole session. ### Hard problems - [[references/ownership-model]] — who owns this entity; how ownership transfers. - [[references/conflict-resolution]] — race conditions, last-write-wins, deterministic merges. - [[references/latency-patterns]] — designing UX that tolerates lag; optimistic updates; rollback. ### UX - [[references/connected-lens-onboarding]] — how two users actually find each other and start a session. ## Verify Before claiming a multiplayer lens is shippable: - [ ] Lens Studio is 5.4+ and Snap OS on test devices is 5.59+ (Sync Kit minimums). - [ ] `SpectaclesInteractionKit.prefab` and `SpectaclesSyncKit.prefab` are both in the scene. - [ ] TypeScript compiles cleanly before any prefab instantiation. - [ ] Per-user vs shared state is explicitly classified — no accidental crossover. - [ ] Tested with at least 2 peers; tested with one peer dropping mid-session. - [ ] Host migration tested (kill host's session; remaining peer takes over). - [ ] Tested at high-latency / packet-loss conditions, not just LAN-perfect. - [ ] Onboarding flow tested — strangers can find your session, not just teammates. ## Smoke test If this skill loaded correctly, the agent should answer: 1. What's a SyncEntity and what does adding it to a script do? (Expected: SyncEntity converts a script into a networked entity that distributes Storage Properties and Networked Events across peers; cites [[references/sync-entity]].) 2. What happens when the session host disconnects mid-game? (Expected: depending on configuration, host migrates to another peer; relevant state preserved if it was shared via Storage Properties; cites [[references/host-vs-peer]] and [[references/session-lifecycle]].) 3. Two users edit the same SyncEntity at once. What does the network see? (Expected: last-write-wins by default; deterministic merge requires custom logic; cites [[references/conflict-resolution]].) ## Sibling skills - [[../snap-spectacles-build/SKILL]] — single-user lens basics. - [[../snap-spectacles-sik/SKILL]] — interactions on top of which Sync Kit operates. - [[../snap-spectacles-mobile-kit/SKILL]] — phone-side bridging that sometimes pairs with Sync Kit. ## Sources - Sync Kit overview — <https://developers.snap.com/spectacles/spectacles-frameworks/spectacles-sync-kit/overview> - Getting started — <https://developers.snap.com/spectacles/spectacles-frameworks/spectacles-sync-kit/getting-started> - Lifecycle — <https://developers.snap.com/spectacles/spectacles-frameworks/spectacles-sync-kit/lifecycle> - Connected Lenses samples — <https://github.com/specs-devs/samples>
Auf GitHub ansehen