- name
- snap-spectacles-design
- description
- Load when the user is polishing a Snap Spectacles lens for shipping — FOV / safe zone, head vs body vs world lock, comfort and motion-sickness rules, performance and thermal budgets, lens publishing and review. Don't load for early build mechanics — use snap-spectacles-build.
- license
- MIT
- metadata
- {"author":"HKTITAN","version":"1.0.0","graph":true,"depends":["snap-spectacles-build"]}
# Spectacles Design — Comfort, Performance, Publishing
Shipping a Spectacles lens is more than getting it to work in the editor. It has to be comfortable for 10+ minutes of wear, fit Snap's perf budget, survive thermal / battery constraints, and pass review. This skill is the polish layer — what separates a tech demo from a shipped lens. Pair with [`GUIDELINES.md`](../../../GUIDELINES.md) at the repo root, which is the bible for display-glasses design across vendors.
## When to load
Triggers:
- "Spectacles lens performance"
- "Lens won't pass review"
- "FOV safe zone Spectacles"
- "Motion sickness in my lens"
- "Lens approval Snap"
- "Performance budget Spectacles"
- "How to publish a Spectacles lens"
Don't load for:
- Early build mechanics — [[../snap-spectacles-build/SKILL]].
- Interaction wiring — [[../snap-spectacles-sik/SKILL]].
- Cross-vendor design principles — read [`GUIDELINES.md`](../../../GUIDELINES.md) at the repo root.
## Decide first
The architecture decisions before polish:
1. **Comfort budget.** What's the longest you expect a user to wear your lens? 1 minute? 10? 60? Everything else flows from this.
2. **Anchor strategy.** Head, body, or world lock for each content piece? See [[references/head-locked-vs-world-locked]].
3. **Performance target.** What frame rate are you holding? 60 fps is the floor; below that, motion comfort suffers.
4. **Publishing path.** Personal lens, unlisted, or public via lens review? Each has its own requirements.
## Map of content
### Visual comfort
- [[references/fov-safe-zone]] — where content reads comfortably; where it doesn't.
- [[references/head-locked-vs-world-locked]] — anchor choice and its comfort impact.
- [[references/body-locked-ui]] — the underused middle option.
- [[references/text-legibility]] — readable type on Spectacles' display.
### Physical comfort
- [[references/comfort-rules]] — vergence-accommodation, IPD, eye fatigue.
- [[references/motion-comfort]] — avoiding motion sickness in dynamic lenses.
### Performance
- [[references/performance-budget]] — frame rate, draw calls, polycount.
- [[references/profiling]] — measuring what your lens actually costs.
- [[references/draw-call-budget]] — the per-frame draw count.
- [[references/thermal-budget]] — thermal throttling under load.
- [[references/battery-budget]] — what drains battery and how to slow it.
### Shipping
- [[references/permissions-privacy]] — designing for permission flows; Snap's privacy rules.
- [[references/publishing-checklist]] — pre-submission audit.
- [[references/lens-approval]] — what Snap reviews look for.
## Verify
Before submitting a lens for review:
- [ ] Sustained 60 fps on device for the typical scene; no drops below 45 fps even at peak.
- [ ] FOV safe zone respected — primary content lives within the comfortable region.
- [ ] No head-locked content longer than 2 seconds at a time.
- [ ] Body-locked UI smoothed (no jitter from user motion).
- [ ] Comfort budget: tested with at least one 10-minute wear; eye fatigue or discomfort flagged.
- [ ] Thermal: lens runs 20+ minutes without throttling.
- [ ] Battery: lens drains battery at a rate compatible with intended session length.
- [ ] All requested permissions justified in the lens description.
- [ ] Privacy considerations documented for any user data leaving the device.
- [ ] Lens metadata in My Lenses portal: title, description, preview imagery, category — all set.
## Smoke test
If this skill loaded correctly, the agent should answer:
1. What's the floor frame rate for a Spectacles lens to feel comfortable? (Expected: 60 fps sustained; below 45 fps motion comfort degrades sharply; cites [[references/performance-budget]] and [[references/motion-comfort]].)
2. The user has a UI panel that follows their head. What's wrong? (Expected: head-locked UI longer than a few seconds disorients; switch to body-locked or world-locked; cites [[references/head-locked-vs-world-locked]] and [[references/body-locked-ui]].)
3. Lens rejected during review for "performance issues." What's the diagnostic order? (Expected: profile on device, check draw calls / poly / texture, audit thermal / battery, verify smooth at 60 fps; cites [[references/profiling]] and [[references/performance-budget]].)
## Sibling skills
- [[../snap-spectacles-build/SKILL]] — build basics.
- [[../snap-spectacles-sik/SKILL]] — interaction polish.
- [[../snap-spectacles-sync/SKILL]] — multiplayer-specific polish.
## Cross-vendor reference
- **[`GUIDELINES.md`](../../../GUIDELINES.md)** at the repo root is the bible for display-glasses design across vendors. This skill is Snap-specific polish; the guidelines are universal.
## Sources
- Spectacles best practices — <https://developers.snap.com/spectacles/best-practices>
- Performance optimization — <https://developers.snap.com/spectacles/best-practices/performance-optimization/overview>
- Spectacles permissions & privacy — <https://developers.snap.com/spectacles/permissions-privacy>
- My Lenses portal — <https://my-lenses.snapchat.com>
Voir sur GitHub