9148c358d0
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를 Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류. - 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로 자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거, 동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거. - 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming, Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business, Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로, 나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는 title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백). 원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지. - 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서. - 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는 지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지. - Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경. - 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
4.3 KiB
4.3 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | verification_status | tags | raw_sources | last_reinforced | github_commit | tech_stack | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-시각-전정-충돌-visual-vestibular-confl | 시각-전정 충돌(Visual-vestibular conflict) | 10_Wiki/Topics | verified | self |
|
none | A | 0.95 | applied |
|
2026-05-10 | pending |
|
시각-전정 충돌(Visual-vestibular conflict)
매 한 줄
"매 visual motion 과 vestibular system 의 input mismatch 가 sickness 를 유발한다". Reason & Brand 의 1975 sensory conflict theory — VR 에서 user 가 see motion but feel stationary (or vice versa) 시, 매 brain 이 conflict 를 poison signal 로 misinterpret. 매 modern VR 의 #1 design constraint.
매 핵심
매 메커니즘
- 시각 cue: optic flow 가 forward motion 을 indicate.
- 전정 cue: 머리 actual movement 가 zero (sitting still).
- Mismatch detection: vestibular nuclei 가 conflict 를 detect.
- Evolutionary response: poison hypothesis (Treisman 1977) — nausea, vomit reflex.
매 영향 요소
- FOV: wider FOV → 매 stronger optic flow → 매 worse VVC.
- Acceleration: linear acceleration > constant velocity.
- Yaw rotation: smooth turning 이 worst (snap turn 으로 mitigate).
- Latency: motion-to-photon > 20ms 시 sickness 가속.
매 응용 (mitigation)
- Teleportation locomotion (no continuous motion).
- Vignette / tunneling on movement.
- Snap turn (e.g., 30° increments).
- High refresh rate (90Hz+, 2026 standard 120Hz).
- Cockpit / static reference frame.
💻 패턴
Vignette on locomotion (Three.js)
import * as THREE from "three";
const vignette = new THREE.ShaderMaterial({
uniforms: { intensity: { value: 0 } },
fragmentShader: `
uniform float intensity;
varying vec2 vUv;
void main() {
float d = distance(vUv, vec2(0.5));
gl_FragColor = vec4(0., 0., 0., smoothstep(0.3, 0.7, d) * intensity);
}`
});
function onLocomotion(speed: number) {
vignette.uniforms.intensity.value = THREE.MathUtils.clamp(speed / 5, 0, 0.7);
}
Snap turn implementation
const SNAP_DEGREES = 30;
let lastSnap = 0;
function onThumbstickX(x: number) {
const now = performance.now();
if (Math.abs(x) > 0.7 && now - lastSnap > 250) {
camera.rotation.y -= Math.sign(x) * THREE.MathUtils.degToRad(SNAP_DEGREES);
lastSnap = now;
}
}
Teleport locomotion
function teleport(target: THREE.Vector3) {
fadeToBlack(100);
setTimeout(() => {
rig.position.copy(target);
fadeFromBlack(100);
}, 100);
}
Frame-rate enforcement
// 90Hz minimum on Quest 3, 120Hz on Vision Pro
const targetFPS = navigator.userAgent.includes("Vision") ? 120 : 90;
renderer.setAnimationLoop((t, frame) => {
// skip work if budget exceeded
});
매 결정 기준
| 상황 | Approach |
|---|---|
| Seated experience | continuous + vignette OK |
| Standing / room scale | teleport + snap turn 권장 |
| Racing / cockpit sim | static cockpit ref → 매 reduces VVC |
| Audience first-time | always teleport default |
| Pro user | option for smooth |
기본값: teleport + snap turn 30° + vignette on continuous motion.
🔗 Graph
- 부모: VR Sickness
- 변형: Vergence-Accommodation Conflicts
- Adjacent: 가상현실 멀미 (VR Sickness) · 안구 운동 기능 (Oculomotor Functions)
- 응용: 가상현실(VR) 자전거 시뮬레이터
🤖 LLM 활용
언제: locomotion 설계 review · sickness 원인 분석 · UX option 추천. 언제 X: actual user testing 의 substitute (subjective experience 측정 필수).
❌ 안티패턴
- Smooth locomotion default: 매 first-time user 의 30%+ 가 sick.
- No comfort options: accessibility 실패.
- Frame drop tolerance: 60Hz fallback → severe sickness.
- Forced rotation: cinematic 의도 → 즉시 sick.
🧪 검증 / 중복
- Verified (Reason & Brand 1975 · Stanney VR Handbook · Meta VR Comfort guidelines).
- 신뢰도 A.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — VVC mechanism + mitigation 코드 |