skills/wedding-immortalist/SKILL.md
Transform thousands of wedding photos and hours of footage into an immersive 3D Gaussian Splatting experience with theatre mode replay, face-clustered guest roster, and AI-curated best photos per person. Expert in 3DGS pipelines, face clustering, aesthetic scoring, and adaptive design matching the couple's wedding theme (disco, rustic, modern, LGBTQ+ celebrations). Activate on "wedding photos", "wedding video", "3D wedding", "Gaussian Splatting wedding", "wedding memory", "wedding immortalize", "face clustering wedding", "best wedding photos". NOT for general photo editing (use native-app-designer), non-wedding 3DGS (use drone-inspection-specialist), or event planning (not a wedding planner).
npx skillsauth add curiositech/windags-skills wedding-immortalistInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform wedding photos and video into an eternal, immersive 3D experience. Create living memories that let couples and guests relive the magic forever.
Input: Multiple venue spaces detected (ceremony, reception, cocktail hour)
├── < 500 photos per space
│ └── Train unified scene (risk: quality loss, benefit: seamless navigation)
├── 500-1500 photos per space
│ └── Train per-space with portal transitions (RECOMMENDED)
├── > 1500 photos per space
│ └── Split large spaces into sub-regions to avoid memory overflow
└── Mixed lighting conditions?
├── Yes → Separate indoor/outdoor scenes
└── No → Can merge with lighting adaptation
Input: Face embedding similarity scores across all detected faces
├── Photo count < 1000
│ └── Conservative threshold (0.4): Prefer precision over recall
├── Photo count 1000-5000
│ └── Balanced threshold (0.3): Standard wedding size
├── Photo count > 5000
│ └── Aggressive threshold (0.25): Large weddings need looser matching
└── Professional + phone photos mixed?
├── Yes → Increase threshold by 0.05 (lighting/quality variance)
└── No → Use base threshold
Input: Competing aesthetic signals detected
├── Venue theme ≠ Decor theme
│ ├── Venue rustic, decor modern → Weight decor 70%, venue 30%
│ └── Venue formal, decor casual → Weight venue 60%, decor 40%
├── Multiple cultural traditions
│ └── Create fusion palette prioritizing couple's primary heritage
├── Seasonal vs. chosen colors
│ ├── Spring wedding with fall colors → Honor chosen colors
│ └── Christmas wedding ignoring season → Blend seasonal + chosen
└── Guest attire contradicts theme
└── Ignore guest attire, focus on venue + intentional decor
Input: Wedding video files with metadata
├── Handheld/phone video (high motion blur)
│ └── Extract 1 fps to reduce blur frames
├── Professional video (smooth)
│ └── Extract 2-3 fps for optimal overlap
├── Drone footage
│ └── Extract 1 fps (smooth motion, redundant frames)
├── Ceremony (mostly static)
│ └── Extract 1 fps, boost for processional/recessional
└── Reception/dancing (high motion)
└── Extract 3 fps to capture movement variety
Input: Reconstructed space quality metrics
├── < 50 images AND reconstruction error > 5.0 pixels
│ └── Skip space: insufficient coverage, warn user
├── 50-100 images AND error > 3.0 pixels
│ └── Include with quality warning, mark as "preview quality"
├── > 100 images AND error > 2.0 pixels
│ └── Retrain with adjusted parameters, likely lighting issues
└── Blurry photos > 40% of space images
└── Skip space, request better photos from user
Symptom: Sparse reconstruction fails completely, no 3D points generated Detection Rule: If COLMAP outputs < 100 3D points for > 200 input images Diagnosis: Feature matching failure due to repetitive textures (white walls, flowers) or extreme lighting changes Fix:
Symptom: Single cluster contains 3+ distinct people, especially bridesmaids in similar makeup Detection Rule: If cluster size > 30 photos AND intra-cluster cosine distance variance > 0.15 Diagnosis: Similar makeup, lighting, or formal poses confusing embeddings Fix:
Symptom: UI colors clash horribly, typography doesn't match aesthetic Detection Rule: If extracted color palette has > 8 dominant colors OR no single color > 15% dominance Diagnosis: Too many competing signals from mixed lighting, decorations, clothing Fix:
Symptom: 3DGS training crashes, viewer freezes on load Detection Rule: If trained .ply file > 2GB OR browser memory usage > 8GB Diagnosis: Too many Gaussian points from over-densification or merged scenes Fix:
Symptom: Many face clusters have only 1-2 poor-quality photos Detection Rule: If > 30% of clusters have < 3 photos OR average aesthetic score < 0.4 Diagnosis: Insufficient photo coverage or professional photographer focused only on couple Fix:
Scenario: 1970s theme revival, disco balls, gold/orange/purple decor, mixed lighting (strobes + warm), professional + 50 guest phones
Step-by-step walkthrough:
Initial Assessment: 3000 photos, detect 4 spaces (ceremony, cocktail, reception, photo booth)
Theme Extraction:
Face Clustering:
3DGS Training:
Quality Gates Check:
Expert catches vs. Novice misses:
Scenario: Barn venue, earth tones, string lights, sage/cream decor, single professional photographer
Key decision differences:
Trade-off analysis:
This skill should NOT be used for:
native-app-designer instead for basic editing, filters, adjustmentsdrone-inspection-specialist for architectural/industrial 3D scanningDelegate to other skills when:
collage-layout-expertcolor-theory-palette-harmony-expertphoto-composition-criticface-detection-specialistdata-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.