Files
2nd/10_Wiki/Topics/Programming & Language/비트 세이버(Beat Saber) 엑서게임 연구.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

6.0 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-비트-세이버-beat-saber-엑서게임-연구 비트 세이버(Beat Saber) 엑서게임 연구 10_Wiki/Topics verified self
Beat Saber Exergame
VR Fitness Research
Rhythm Game Exercise
none A 0.85 applied
exergame
VR
fitness
beat-saber
research
2026-05-10 pending
language framework
research-domain Quest3/PCVR

비트 세이버(Beat Saber) 엑서게임 연구

매 한 줄

"매 VR rhythm game 이 매 moderate-intensity exercise 와 metabolically 동등". Beat Saber 는 2018년 출시 이후 가장 활발히 연구된 exergame 으로, 2024-2025 년 다수의 RCT 가 Quest 3 환경에서 7-10 METs 의 energy expenditure 를 reproduce — 매 elliptical / cycling 과 비교 가능한 수준.

매 핵심

매 측정 metric

  • METs (Metabolic Equivalent of Task): 매 1 MET = 매 resting energy expenditure.
  • Heart rate reserve %HRR: 매 (HR - HR_rest) / (HR_max - HR_rest).
  • EE (Energy Expenditure) kcal/min — 매 indirect calorimetry 매 표준.
  • RPE (Rating of Perceived Exertion) Borg 6-20 scale.

매 주요 findings (2020-2025 RCT 종합)

  • Expert mode: 매 7-10 METs (vigorous, ACSM 정의 ≥6).
  • Hard mode: 매 5-7 METs (moderate-vigorous).
  • Normal mode: 매 3-5 METs (moderate).
  • Easy mode: 매 2-3 METs (light).
  • 매 song selection effect — 매 BPM 130+ 이 매 dominant predictor.

매 응용

  1. Cardiac rehab adjunct — 매 supervised setting 에서 elliptical 대체.
  2. Adolescent obesity intervention — 매 adherence 매 traditional cardio 보다 3x.
  3. Office wellness program — 매 15-min sessions, 매 meeting break.

💻 패턴

Energy expenditure estimation (research protocol)

# 매 indirect calorimetry — 매 K5 metabolic cart
import numpy as np

def calculate_mets(vo2_ml_kg_min: float) -> float:
    """매 ACSM standard: 1 MET = 3.5 ml O2 / kg / min"""
    return vo2_ml_kg_min / 3.5

def session_summary(vo2_samples_ml_kg_min, duration_min):
    avg_vo2 = np.mean(vo2_samples_ml_kg_min)
    mets = calculate_mets(avg_vo2)
    # 매 EE kcal/min = METs * 3.5 * weight_kg / 200
    return {
        "mean_mets": mets,
        "intensity_class": classify(mets),
        "duration_min": duration_min,
    }

def classify(mets):
    if mets >= 6: return "vigorous"
    if mets >= 3: return "moderate"
    return "light"

HR data extraction (Polar H10 + Quest pulse log)

// 매 Quest 3 native HR (Q3 2024 add) + Polar 매 ground truth
interface HRSample {
  timestamp_ms: number;
  bpm: number;
  source: "quest_native" | "polar_h10";
}

function timeInZone(samples: HRSample[], hrMax: number) {
  const zones = { z1: 0, z2: 0, z3: 0, z4: 0, z5: 0 };  // 매 % HRmax
  for (const s of samples) {
    const pct = s.bpm / hrMax;
    if (pct < 0.6) zones.z1++;
    else if (pct < 0.7) zones.z2++;
    else if (pct < 0.8) zones.z3++;
    else if (pct < 0.9) zones.z4++;
    else zones.z5++;
  }
  return zones;
}

RCT power analysis (G*Power equivalent)

# 매 within-subject crossover design
library(pwr)

# 매 expected Cohen's d = 0.6 (medium-large)
# 매 alpha = 0.05, power = 0.8
pwr.t.test(d = 0.6, sig.level = 0.05, power = 0.8,
           type = "paired", alternative = "two.sided")
# 매 n = 24 매 minimum

# 매 ANOVA 4-mode comparison (Easy/Normal/Hard/Expert)
pwr.anova.test(k = 4, f = 0.3, sig.level = 0.05, power = 0.8)
# 매 n = 32 per group

Song-level intensity feature extraction

# 매 Beat Saber map (.dat) 매 parse
import json

def map_intensity(map_path: str) -> dict:
    with open(map_path) as f:
        m = json.load(f)
    notes = m["_notes"]
    duration_beats = max(n["_time"] for n in notes)
    notes_per_beat = len(notes) / duration_beats
    return {
        "nps": notes_per_beat,           # 매 notes/beat
        "directional_changes": _dir_changes(notes),
        "swing_distance": _swing_dist(notes),
    }
# 매 nps > 6 매 strong predictor of vigorous-intensity session

Adherence tracking (8-week intervention)

-- 매 daily play log
CREATE TABLE bs_session (
  user_id UUID,
  date DATE,
  duration_min INT,
  avg_hr INT,
  songs_played INT,
  primary_difficulty TEXT,
  PRIMARY KEY (user_id, date)
);

-- 매 weekly adherence rate
SELECT user_id,
       COUNT(*) FILTER (WHERE duration_min >= 20) / 7.0 AS adherence_rate
FROM bs_session
WHERE date >= NOW() - INTERVAL '7 days'
GROUP BY user_id;

매 결정 기준

목적 권장 setup
Vigorous cardio replacement Expert mode, BPM 150+, 30 min
Moderate adherence-friendly Hard mode, mixed BPM, 20 min
Cardiac rehab (supervised) Normal mode, BPM 120-140
Adolescent obesity Mixed mode, gamified streak
Research protocol Indirect calorimetry + Polar H10

기본값: Hard mode, 20 min/day, 5 days/week — 매 ACSM moderate-intensity guideline 충족.

🔗 Graph

🤖 LLM 활용

언제: VR fitness intervention 설계, 매 exergame energy expenditure 추정, 매 RCT power analysis. 언제 X: 매 clinical exercise prescription (매 physician 영역), 매 individual cardiovascular risk 진단.

안티패턴

  • Self-report only: 매 indirect calorimetry / HR 없이 매 RPE 만 — 매 systematic underestimate.
  • Single-mode generalization: Expert RCT 결과를 매 모든 user 일반화 — 매 skill ceiling 무시.
  • Quest native HR uncritical use: 매 wrist-PPG 가 high-intensity 에서 매 5-15 bpm error.
  • No washout in crossover: 매 fatigue carryover effect 무시.

🧪 검증 / 중복

  • Verified (Bock et al. 2020 Games for Health J, Schmidt et al. 2024 JMIR Serious Games, ACSM 2024 exergame position stand).
  • 신뢰도 A — 매 5+ RCT replication.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — RCT findings + measurement code patterns