Communitygithub.com

laasya2005/building-3d-scroll-portfolios

Use when building a personal or developer portfolio with Three.js / React Three Fiber, a scroll-driven 3D journey, an animated video avatar of the person, gamified career "levels" or achievements, or when a portfolio feels flat, static, gimmicky or not premium.

building-3d-scroll-portfolios란 무엇인가요?

building-3d-scroll-portfolios is a Claude Code agent skill that use when building a personal or developer portfolio with Three.js / React Three Fiber, a scroll-driven 3D journey, an animated video avatar of the person, gamified career "levels" or achievements, or when a portfolio feels flat, static, gimmicky or not premium.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/laasya2005/building-3d-scroll-portfolios/tree/HEAD/building-3d-scroll-portfolios

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Building 3D Scroll Portfolios

Overview

One persistent WebGL world, driven by native scroll, carries a person's story chapter by chapter; semantic HTML sits on top and carries the meaning. The person is present as a live presenter (a still resting portrait + short action clips). Premium comes from restraint: one strong idea per screen, a tight palette, crisp rendering, and copy that sounds like the person.

When to Use

  • "Make my portfolio 3D / interactive / like Bruno Simon / Kage / an Awwwards site"
  • Career told as a journey, levels, worlds, or a game
  • An avatar of the person that waves and reacts
  • Existing portfolio feels static, generic, or "AI-made"

Not for: a single hero effect on an existing site (add one interaction instead).

Ask first (decisions that change everything)

  1. Palette direction (show 3 options). 2. Avatar source: real photos/AI video vs rigged GLB. 3. Story structure: journey chapters vs character-led sections. 4. Hosting/domain. 5. What must stay private (employer details, email, resume).

Architecture (read architecture.md)

LayerPatternReference
ScrollNative scroll → fractional anchor progress; exact for UI, damped smooth for camerareference/conductor.ts
Story dataAnchor ledger: camera, lighting, presenter size, line per [data-anchor]architecture.md
CameraCatmull-Rom through anchor keys, mobile overridesreference/CameraRig.tsx
WorldsOne diorama per chapter on a shared plinthworlds.md, reference/diorama-common.tsx
GameOptional quests, achievements, toasts, DOM twinsreference/game-state.ts
PresenterStill resting portrait + crossfading action clipsavatar.md
ContactResume request form → serverless + Resendreference/resume-request.ts

Hard rules (each came from a real failure)

  • Never feather/mask the presenter where it overlaps the body (arm turns see-through). Washes behind hero text must stop before the portrait.
  • No tilt-shift / depth-of-field on content worlds. Users read it as "blurry".
  • Copy: no em/en dashes, no invented metrics, person's own words for About, short plain project names.
  • Privacy: no personal email, no client/partner/internal feature names; describe projects by skills.
  • Every 3D interaction needs a DOM button twin; gate 3D clicks to the active chapter.
  • Mobile is a separate composition, not a shrink: presenter on top, bubble after hero, 16px inputs, cards clear the Dock/bubble, one toast at a time.

Verify before claiming done (qa.md)

Real Chrome (not just SwiftShader) screenshots of every anchor at 1440×900 and iPhone/iPad emulation with touch; every quest; no horizontal overflow; no console errors; contact API rejects bad input.

관련 스킬