한 패턴, 네 가지 진동
스크롤이 진행될 때마다 같은 geometric primitive 가 다른 패턴으로 변형됩니다. 4 stage 모두 동일한 흑백 binary 와 동일한 vermillion focal: 변하는 것은 패턴 함수 하나뿐입니다.
STRIPE (스트라이프)
--pattern-stage = 0.0 stripe(x) = sin(x · freq) > 0 ? 흑 : 백
초기 안정 패턴. 평행 스트라이프가 위상 시프트로 미세하게 휘며 진동합니다. vermillion focal 이 mid-crest 를 따라 trace 합니다.
MOIRÉ (무아레)
--pattern-stage = 0.33 moire(x,y) = grid(x,y,0) XOR grid(x,y,12°)
두 격자가 겹치며 간섭 beat 가 발생합니다. 11도 회전 overlay 가 무아레 진동을 만들고, vermillion 이 간섭 node 정점에서 catch 됩니다.
WAVE (웨이브)
--pattern-stage = 0.66 wave(r) = sin(r · freq + uTime) > 0 ? 흑 : 백
방사 진동. 동심원 주파수가 epicenter 에서 외곽으로 expand 하며 3D bulge 착시를 유발합니다. vermillion 이 epicenter dot 으로 anchor 됩니다.
RADIAL (방사)
--pattern-stage = 1.0 radial(θ) = mod(θ, π/12) > π/24 ? 흑 : 백
방사 spokes 의 pinwheel 회전. θ 각도 기준으로 spokes 가 분할되고, 다수의 spoke 중 단 하나만 vermillion wedge 로 표시됩니다. 시퀀스의 마지막 프레임.
* 4 stage · 실제 패턴은 SVG attribute update · reduced-motion 시 정적 프레임 swap (§ethics #4) · flash 0 · transition 1.5초 이상 점진 잠금 (§ethics #1) · 스크롤 구간 사용자 swap
패턴 분해도 6 layer
키네틱 옵아트 한 프레임이 만들어지는 6 layer 분해입니다. 베이스 그리드 · 위상 · 주파수 · 진폭 · 간섭 · 단일 vermillion 포인트. 모두 SVG 한 render pass 에서 합산됩니다.
Composite · 최종 합산
6 layer 를 한 SVG render pass 에서 합산합니다. base · phase · frequency · amplitude · interference · vermillion 을 더한 뒤 화면 buffer 로 출력합니다. 60fps target.
Base Grid · 베이스 그리드
평행 스트라이프 또는 격자의 기준 geometry 입니다. pure ink stroke · 40px 타일이 패턴의 기준 단위가 됩니다.
Phase Shift · 위상 시프트
sin 함수가 stripe position 마다 위상을 시프트합니다. 위상이 시간·위치에 따라 변하면서 stripe 가 휘어진 듯한 광학 착시를 만듭니다.
Frequency · 주파수 모듈
stripe 간격(타일 크기)의 주파수 변조입니다. 좌측 wide → 우측 narrow. 스크롤에 따라 점진적으로 변조되며 1.5초 점진 잠금을 지킵니다 (§ethics #1).
Interference · 간섭 패턴
두 격자가 겹치고 한쪽이 12도 회전합니다. XOR 간섭으로 무아레 beat 가 발생하며, 무아레 stage 에서만 활성화됩니다.
Vermillion Focal · 단일 포인트
단일 warm vermillion focal · oklch L 0.55 C 0.19 통제 · 화면 area 1% 미만. 흑백 binary 위 유일한 vivid warm anchor 로, no-neon 룰의 stage focal 분기를 정당화합니다.
* 6 layer mock · 실제 패턴은 SVG 1 pass · attribute source 부분 공개 (§FAQ) · 라이선스에 따라 full source 제공 (Pro / Enterprise) · layer 4 주파수 변조는 1.5초 점진 잠금
상호작용 명세
마우스 · 스크롤 · 터치 입력이 SVG attribute 로 변환됩니다. 입력 device 별 fallback 과 광민감성 보호까지 모두 명시합니다.
위치 phase shift
마우스 위치를 SVG attribute --phase-shift offset 으로 변환합니다. 즉시 반응 · easing 없음 · 60fps update.
--phase-shift = mouseX / innerWidth stripe(x) = sin(x · freq + phase · 2π)
패턴 변환
스크롤 진행을 --pattern-stage attribute 에 비례 매핑합니다 (0..1). 4 stage 로 분기하며 SVG 패턴을 변환합니다.
--pattern-stage = clamp(scrollY / pageH, 0, 1) pattern = blend(stage[i], stage[i+1], 1.5s ease)
터치 fallback
터치 디바이스 · 저사양 GPU · SVG 미지원 시 자동 fallback. 4 stage 정적 이미지 swap, 터치 스와이프로 stage 전환. reduced-motion 과 동일 동작.
if (!svg || reducedMotion || lowGPU) {
swapImages(stage1..stage4)광민감성 lock
page-blocking 경고 dialog 동의 후 활성. flash 0 mandatory · transition 1.5초 이상 점진 · invert 점진 · 사용자 manual mute 가능 (§ethics #1).
if (acknowledged && !staticMode) {
enablePatterns({ flash: 0, transition: 1500 })* 4 인터랙션 mock · SVG attribute 명세 · 터치 fallback 디바이스 자동 감지 (§ethics #2) · 광민감성 보호 카드 4 (§ethics #1) · GPU 성능 정직 (§ethics #9)
패턴의 신뢰 5 룰
쇼케이스 art-piece 의 product-trust 는 정량 지표가 아니라 신뢰 룰 그 자체입니다. 60fps · 접근성 · 디바이스 · reduced-motion · 광민감성 5축.
60fps 보장
패턴은 60fps target · requestAnimationFrame 기준입니다. 디바이스가 60fps 미달 시 자동 fallback (정적 프레임 swap). 가짜 60fps 주장은 하지 않습니다.
접근성 alt 텍스트
SVG 패턴에 aria-label 을 명시하고 4 stage 별 프레임 description alt 텍스트를 제공합니다. 스크린리더 친화 · 키보드 fallback.
디바이스 fallback
SVG 미지원 · 저사양 GPU · 저전력 모드를 자동 감지한 뒤 정적 프레임으로 swap 합니다. 디바이스 성능을 정직하게 안내합니다 (§ethics #2·#9).
reduced-motion 대응
prefers-reduced-motion 활성 시 패턴을 정지하고 정적 프레임으로 swap 합니다. 전정 장애 사용자 친화 (§ethics #4).
광민감성 보호
페이지 진입 시 경고 dialog · flash 0 mandatory · transition 1.5초 이상 점진 · invert 점진 · 사용자 manual mute. 도전자 sample 의 일반 trust 와 다른 graphic-pattern 카테고리 특수 룰입니다 (§ethics #1).
* 5 신뢰 룰 · 도전자 sample 의 정량 trust 와 다른 카테고리 · 쇼케이스 graphic art-piece 의 신뢰는 신뢰 룰 자체가 trust signal · 룰 5 광민감성 보호는 graphic-pattern 카테고리 특수 강화
도입 플랜
쇼케이스 라이선스 3 단계 · 단일 페이지 임베드 · 5 페이지 + 커스텀 · 풀 패턴 라이선스. 약정 없음.
Embed
- 단일 페이지 임베드 권한
- 4 stage 시퀀스 기본 (stripe·moiré·wave·radial)
- 흑백 binary + vermillion 1 색 고정
- 광민감성 dialog 기본 패키지
Pro
- Embed 전부
- 5 페이지 임베드 권한
- vermillion focal 색 분기 (협의)
- 패턴 attribute 노출 (3개)
- 12개월 유지보수
- 광민감성 dialog 커스텀 카피
Enterprise
- Pro 전부
- 풀 SVG pattern source 제공
- 무제한 페이지 · 도메인
- 패턴 attribute 전체 노출
- 커스텀 stage 추가 (5+)
- 전담 유지보수 · 우선 지원 (24h)
* 가격 mock · 사용자 swap · 라이선스 옵션 §ethics #7 명시 · 약정 없음 · 환불 정책은 푸터 정책 링크
만든 사람과 사용처
만든 사람의 한 마디와 4 가지 사용 사례 (mock).
우리는 그래픽이 얼마나 진동할 수 있는지 보여주려고 이 패턴을 만들었습니다. 화려한 효과보다 정확한 기하와 단 한 점의 색을 믿습니다. 옵아트는 눈을 즐겁게 하는 만큼 부담도 줄 수 있어서, 진입 경고와 정적 모드를 먼저 만들고 나서 패턴을 만들었습니다. 보는 사람의 선택권이 패턴보다 앞섭니다.
브랜드 시즌 캠페인
SS 컬렉션 키비주얼 · 시즌 런칭 키네틱 인트로 · 옴니채널 송출. mock 사례이며 실제 브랜드명은 표기하지 않습니다 (§ethics #6).
갤러리 인스톨
인터랙티브 설치 미술 · 관객 마우스·터치 입력에 반응하는 패턴 · 멀티 디스플레이. mock 사례이며 실제 갤러리·작가명은 표기하지 않습니다 (§ethics #6).
음악 비주얼
라이브 공연 백 비주얼 · BPM 동기화 패턴 · 무대 LED 송출. mock 사례이며 실제 아티스트·곡명은 표기하지 않습니다 (§ethics #6).
패션 룩북
디지털 룩북 배경 패턴 · 실루엣과 패턴 vibration 결합 · 웹·SNS 송출. mock 사례이며 실제 패션 브랜드·모델명은 표기하지 않습니다 (§ethics #6).
* 4 사용처 mock · 실제 도입 사례는 도입 문의 후 별도 공유 · 실명·실 작품 표기 없음 · 합성 사례 없음 (§ethics #6)
운영 원칙
접근성 · 광민감성 · 라이선스 · 재사용 · 디바이스 fallback 5 cell. 쇼케이스 graphic art-piece 의 운영 책임.
접근성
SVG 패턴 aria-label 명시 · 4 stage 별 프레임 alt 텍스트 · 스크린리더 친화 · 키보드 fallback (스페이스바 stage 전환).
광민감성 보호
페이지 진입 시 경고 dialog · flash 0 · transition 1.5초 점진 · invert 점진 · 사용자 manual mute. graphic-pattern 카테고리 특수 강화.
라이선스
Embed · Pro · Enterprise 3 단계 · 사용 범위 명시 · SVG source 공유는 Enterprise 만. 재배포·2차 가공은 별도 협의.
재사용 가이드
다른 프로젝트 재사용은 Pro 이상. 재배포 금지 · 2차 가공은 Enterprise 협의 · 클로닝·역공학 금지.
디바이스 fallback
SVG 미지원 · 저사양 GPU 자동 감지 후 정적 프레임 swap. 디바이스 성능 정직: 가짜 60fps 주장 없음.
* 5 cell · §ethics 11 항목 중 핵심 5 운영 cell · cell 2 광민감성 보호가 저전력 모드 자리를 대체 (graphic-pattern 카테고리 특수) · 자세한 약관은 푸터 정책 링크
자주 묻는 질문
* 6 FAQ mock · 추가 문의는 아래 도입 문의
도입 문의
사용 목적 · 디바이스 · 예산 · 라이선스 옵션 · 추가 메모. 영업일 1일 내 응답.
도입 문의 후 진행
- 영업일 1일 내 응답 (이메일 또는 카톡)
- 사용 사례 파악 · 라이선스 협의
- 패턴 커스터마이즈 (Pro 이상) · 영업일 3-5일
- 임베드 가이드 + 패턴 자산 전달
* 모든 단계 사용자 문의 후 1:1 진행 · 패턴 자산은 라이선스 옵션에 따라 분기 · 광민감성 dialog 커스텀은 Pro 이상