Spaces:
Running
Running
| # World Model Bench (WM Bench) | |
| # A Benchmark for Cognitive World Models in Embodied Intelligence | |
| # Version 1.0 — 2026.03 | |
| # by VIDRAFT / Kim Taebong | |
| """ | |
| World Model Bench 설계 명세서 | |
| 기존 월드모델 벤치마크(HumanML3D, BABEL)는 "모션 품질"만 측정한다. | |
| World Model Bench는 "인지 능력"을 측정하는 최초의 벤치마크다. | |
| 3대 평가 축 (Three Pillars): | |
| P1. PERCEPTION — 환경을 얼마나 정확히 인식하는가 | |
| P2. COGNITION — 얼마나 지능적으로 판단하는가 | |
| P3. EMBODIMENT — 판단이 얼마나 자연스럽게 구현되는가 | |
| 10개 카테고리, 50개 시나리오, 자동 채점 | |
| """ | |
| # ═══════════════════════════════════════════════════════════════ | |
| # BENCHMARK STRUCTURE | |
| # ═══════════════════════════════════════════════════════════════ | |
| BENCHMARK_META = { | |
| "name": "World Model Bench", | |
| "short_name": "WM Bench", | |
| "version": "1.0", | |
| "date": "2026-03", | |
| "authors": ["Kim Taebong (VIDRAFT)"], | |
| "license": "CC-BY-SA-4.0", | |
| "hf_dataset": "VIDraft/WorldModelBench", | |
| "hf_leaderboard": "VIDraft/WorldModelBench-Leaderboard", | |
| "paper_title": "World Model Bench: A Benchmark for Cognitive World Models in Embodied Intelligence", | |
| "tagline": "Beyond FID — Measuring Intelligence, Not Just Motion", | |
| "parent_brand": "FINAL Bench Family", | |
| } | |
| # ═══════════════════════════════════════════════════════════════ | |
| # THREE PILLARS — 3대 평가 축 | |
| # ═══════════════════════════════════════════════════════════════ | |
| PILLARS = { | |
| "P1_PERCEPTION": { | |
| "name": "Perception (인식)", | |
| "weight": 0.25, | |
| "description": "환경을 얼마나 정확하고 풍부하게 인식하는가", | |
| "icon": "👁", | |
| "color": "#7B8FD4", | |
| "categories": ["C01", "C02"], | |
| }, | |
| "P2_COGNITION": { | |
| "name": "Cognition (인지)", | |
| "weight": 0.45, | |
| "description": "인식한 정보로 얼마나 지능적으로 판단하는가", | |
| "icon": "🧠", | |
| "color": "#E8593C", | |
| "categories": ["C03", "C04", "C05", "C06", "C07"], | |
| }, | |
| "P3_EMBODIMENT": { | |
| "name": "Embodiment (구현)", | |
| "weight": 0.30, | |
| "description": "판단이 얼마나 자연스럽고 풍부하게 신체로 표현되는가", | |
| "icon": "🔥", | |
| "color": "#D4A044", | |
| "categories": ["C08", "C09", "C10"], | |
| }, | |
| } | |
| # ═══════════════════════════════════════════════════════════════ | |
| # 10 CATEGORIES — 평가 카테고리 | |
| # ═══════════════════════════════════════════════════════════════ | |
| CATEGORIES = { | |
| # ─── P1. PERCEPTION (인식) ─── | |
| "C01": { | |
| "pillar": "P1_PERCEPTION", | |
| "name": "Environmental Awareness", | |
| "name_kr": "환경 인식 정확도", | |
| "description": "주변 환경(벽, 장애물, 지형)을 정확히 파악하는 능력", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "spatial_accuracy", | |
| "what_measures": "scene_context의 정확도와 풍부함", | |
| "existing_benchmark": "없음 (기존은 점유격자 해상도만 측정)", | |
| }, | |
| "C02": { | |
| "pillar": "P1_PERCEPTION", | |
| "name": "Entity Recognition", | |
| "name_kr": "개체 인식 및 분류", | |
| "description": "NPC, 위협, 중립 개체를 정확히 식별하고 분류하는 능력", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "classification_accuracy", | |
| "what_measures": "위협(맹수) vs 중립(사람) vs 환경(벽) 구분", | |
| "existing_benchmark": "없음", | |
| }, | |
| # ─── P2. COGNITION (인지) — 핵심 차별화 영역 ─── | |
| "C03": { | |
| "pillar": "P2_COGNITION", | |
| "name": "Predictive Reasoning", | |
| "name_kr": "예측 기반 추론", | |
| "description": "각 방향의 미래 결과를 예측하고 최선을 선택하는 능력", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "prediction_decision_match", | |
| "what_measures": "PREDICT 줄의 정확도 + 행동 선택의 합리성", | |
| "existing_benchmark": "없음 (기존 월드모델은 예측을 평가하지 않음)", | |
| "example": "앞=맹수, 왼=벽 → 오른쪽 선택이 정답", | |
| }, | |
| "C04": { | |
| "pillar": "P2_COGNITION", | |
| "name": "Threat Differentiation", | |
| "name_kr": "위협 유형별 차별 반응", | |
| "description": "서로 다른 위협(맹수/사람/환경)에 서로 다른 반응을 보이는 능력", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "response_differentiation", | |
| "what_measures": "맹수→전력질주 vs 사람→걸어서 회피 vs 벽→방향전환", | |
| "existing_benchmark": "없음", | |
| "example": "같은 거리 3m에서 맹수 접근 vs 여성 접근 → 반응 강도 차이", | |
| }, | |
| "C05": { | |
| "pillar": "P2_COGNITION", | |
| "name": "Emotional Escalation", | |
| "name_kr": "자율 감정 에스컬레이션", | |
| "description": "같은 위협이 지속될 때 감정이 자율적으로 격화되는 능력", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "escalation_gradient", | |
| "what_measures": "시간에 따른 감정 강도 변화 (공포→절박→필사적)", | |
| "existing_benchmark": "없음 (세계 최초 평가 기준)", | |
| "example": "맹수 돌진 지속 → 1차:전력질주 → 2차:공포 → 3차:절박 → 4차:필사적", | |
| }, | |
| "C06": { | |
| "pillar": "P2_COGNITION", | |
| "name": "Contextual Memory", | |
| "name_kr": "맥락 기억 및 활용", | |
| "description": "이전 판단을 기억하고 다음 판단에 반영하는 능력", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "memory_utilization", | |
| "what_measures": "이전에 벽에 막힌 경험 → 다음에 같은 방향 회피", | |
| "existing_benchmark": "없음", | |
| "example": "1차: 오른쪽 도망→벽 충돌 → 2차: 같은 상황에서 왼쪽 선택", | |
| }, | |
| "C07": { | |
| "pillar": "P2_COGNITION", | |
| "name": "Threat Resolution Adaptation", | |
| "name_kr": "위협 해제 후 적응", | |
| "description": "위협이 사라진 후 행동을 정상화하되 경계를 유지하는 능력", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "recovery_quality", | |
| "what_measures": "맹수 해제 → 즉시 정상(나쁨) vs 서서히 진정+경계(좋음)", | |
| "existing_benchmark": "없음", | |
| "example": "맹수 despawn → '경계하며 주변을 살피며 천천히 걷는' 전환 행동", | |
| }, | |
| # ─── P3. EMBODIMENT (구현) ─── | |
| "C08": { | |
| "pillar": "P3_EMBODIMENT", | |
| "name": "Motion Expressiveness", | |
| "name_kr": "모션 감정 표현력", | |
| "description": "판단의 감정과 뉘앙스가 모션에 반영되는 정도", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "expression_richness", | |
| "what_measures": "'도망'과 '공포에 찬 전력질주'의 차이", | |
| "existing_benchmark": "FID는 품질만 측정, 감정 표현력 미측정", | |
| }, | |
| "C09": { | |
| "pillar": "P3_EMBODIMENT", | |
| "name": "Realtime Performance", | |
| "name_kr": "실시간 인지-행동 성능", | |
| "description": "인지 루프(감각→판단→모션)의 지연시간과 처리량", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "latency_throughput", | |
| "what_measures": "FPS, 판단 지연시간, 프레임 드롭률", | |
| "existing_benchmark": "모션 FPS만 측정, 인지 루프 지연 미측정", | |
| }, | |
| "C10": { | |
| "pillar": "P3_EMBODIMENT", | |
| "name": "Cross-body Transferability", | |
| "name_kr": "신체 교체 확장성", | |
| "description": "동일 인지 루프로 다른 신체(3D/로봇/드론)에 적용 가능한 정도", | |
| "max_score": 100, | |
| "num_scenarios": 5, | |
| "scoring": "transfer_success_rate", | |
| "what_measures": "두뇌를 교체 없이 신체만 바꿔 동일 판단이 나오는가", | |
| "existing_benchmark": "없음 (세계 최초)", | |
| }, | |
| } | |
| # ═══════════════════════════════════════════════════════════════ | |
| # 50 SCENARIOS — 시나리오 전체 목록 | |
| # ═══════════════════════════════════════════════════════════════ | |
| SCENARIOS = [ | |
| # ─── C01: Environmental Awareness (환경 인식) ─── | |
| { | |
| "id": "S01", "category": "C01", | |
| "name": "Wall Detection Front", | |
| "name_kr": "전방 벽 감지", | |
| "setup": "캐릭터 전방 3m에 벽", | |
| "expected_perception": "fwd=danger(wall)", | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S02", "category": "C01", | |
| "name": "Multi-wall Corner", | |
| "name_kr": "코너 다중 벽 감지", | |
| "setup": "전방+왼쪽 벽, 오른쪽만 열림", | |
| "expected_perception": "fwd=danger(wall), left=danger(wall), right=safe", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S03", "category": "C01", | |
| "name": "Narrow Corridor", | |
| "name_kr": "좁은 복도 인식", | |
| "setup": "양쪽 벽, 전방만 열린 복도", | |
| "expected_perception": "left=danger(wall), right=danger(wall), fwd=safe", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S04", "category": "C01", | |
| "name": "Open Field", | |
| "name_kr": "열린 공간 인식", | |
| "setup": "사방에 벽 없음, 평지", | |
| "expected_perception": "all=safe(open)", | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S05", "category": "C01", | |
| "name": "Enclosed Room", | |
| "name_kr": "밀폐 공간 인식", | |
| "setup": "사방에 벽, 출구 1개", | |
| "expected_perception": "3방향 danger(wall), 1방향 safe(exit)", | |
| "difficulty": "hard", | |
| }, | |
| # ─── C02: Entity Recognition (개체 인식) ─── | |
| { | |
| "id": "S06", "category": "C02", | |
| "name": "Beast Identification", | |
| "name_kr": "맹수 식별", | |
| "setup": "전방 5m에 맹수 NPC 정지", | |
| "expected_recognition": "entity=beast, behavior=stop, distance=5m", | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S07", "category": "C02", | |
| "name": "Human vs Beast", | |
| "name_kr": "사람과 맹수 구분", | |
| "setup": "전방에 여성 NPC + 측면에 맹수 NPC 동시 존재", | |
| "expected_recognition": "fwd=woman(neutral), side=beast(threat)", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S08", "category": "C02", | |
| "name": "Approaching Entity Speed", | |
| "name_kr": "접근 개체 속도 판별", | |
| "setup": "맹수 approach(1.2) vs charge(5.0) 행동 변화", | |
| "expected_recognition": "behavior_change: approach→charge, threat_level↑", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S09", "category": "C02", | |
| "name": "Entity at Distance", | |
| "name_kr": "원거리 개체 인식", | |
| "setup": "맹수 8m 거리 (감지 범위 경계)", | |
| "expected_recognition": "npc_nearby=true/false boundary", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S10", "category": "C02", | |
| "name": "Entity Disappearance", | |
| "name_kr": "개체 소멸 인식", | |
| "setup": "맹수 despawn 후 scene_context 업데이트", | |
| "expected_recognition": "npc_nearby=false, threat=cleared", | |
| "difficulty": "easy", | |
| }, | |
| # ─── C03: Predictive Reasoning (예측 추론) ─── | |
| { | |
| "id": "S11", "category": "C03", | |
| "name": "Single Threat Avoidance", | |
| "name_kr": "단일 위협 회피 예측", | |
| "setup": "전방에 맹수, 나머지 3방향 열림", | |
| "expected_prediction": "fwd=danger(beast), others=safe → back 또는 left/right 선택", | |
| "correct_actions": ["turn around", "sprint backward", "move left", "move right"], | |
| "incorrect_actions": ["walk forward", "stand still"], | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S12", "category": "C03", | |
| "name": "Constrained Escape", | |
| "name_kr": "제약 조건 탈출 예측", | |
| "setup": "전방 맹수 + 왼쪽 벽 → 오른쪽만 열림", | |
| "expected_prediction": "fwd=danger(beast), left=danger(wall), right=safe", | |
| "correct_actions": ["sprint right", "move right", "flank right"], | |
| "incorrect_actions": ["sprint left", "walk forward", "stand still"], | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S13", "category": "C03", | |
| "name": "Mirror Constraint", | |
| "name_kr": "거울 대칭 제약 테스트", | |
| "setup": "S12와 동일하되 벽이 오른쪽 → 왼쪽만 열림", | |
| "expected_prediction": "fwd=danger(beast), right=danger(wall), left=safe", | |
| "correct_actions": ["sprint left", "move left", "flank left"], | |
| "incorrect_actions": ["sprint right", "walk forward"], | |
| "note": "S12와 S13의 행동이 대칭적으로 반전되어야 월드모델", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S14", "category": "C03", | |
| "name": "Dead End Recognition", | |
| "name_kr": "막다른 길 인식 및 판단", | |
| "setup": "전방+왼쪽+오른쪽 벽, 후방만 열림, 맹수 후방에서 접근", | |
| "expected_prediction": "3방향 wall + back=beast → 최선 선택", | |
| "correct_actions": ["squeeze past", "climb", "freeze and assess"], | |
| "note": "모든 방향이 위험할 때의 창발적 판단 능력", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S15", "category": "C03", | |
| "name": "Dynamic Threat Trajectory", | |
| "name_kr": "동적 위협 경로 예측", | |
| "setup": "맹수가 좌측에서 우측으로 이동 중 → 경로 예측", | |
| "expected_prediction": "현재 좌=danger → 시간 후 fwd=danger 전이 예측", | |
| "correct_actions": ["wait then move left", "preemptive right dodge"], | |
| "difficulty": "hard", | |
| }, | |
| # ─── C04: Threat Differentiation (위협 차별 반응) ─── | |
| { | |
| "id": "S16", "category": "C04", | |
| "name": "Beast vs Human Response", | |
| "name_kr": "맹수 vs 사람 반응 차이", | |
| "setup": "동일 거리 3m에서 (A)맹수 접근 (B)여성 접근", | |
| "expected_diff": "맹수→sprint/run, 여성→walk away/step back", | |
| "scoring": "반응 강도(속도 키워드) 차이가 클수록 높은 점수", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S17", "category": "C04", | |
| "name": "Charge vs Approach Response", | |
| "name_kr": "돌진 vs 접근 반응 차이", | |
| "setup": "맹수 (A)approach 1.2m/s (B)charge 5.0m/s", | |
| "expected_diff": "approach→cautious retreat, charge→desperate sprint", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S18", "category": "C04", | |
| "name": "Wall vs Beast Priority", | |
| "name_kr": "벽 vs 맹수 위험도 우선순위", | |
| "setup": "전방 벽 + 측면 맹수 → 어떤 위협을 우선 회피?", | |
| "expected_diff": "맹수(동적 위협) 우선 회피 > 벽(정적 장애물)", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S19", "category": "C04", | |
| "name": "Multiple Entity Triage", | |
| "name_kr": "다중 개체 위험도 분류", | |
| "setup": "맹수 5m + 여성 2m + 벽 1m → 종합 판단", | |
| "expected_diff": "거리+위협도 종합하여 최적 경로 선택", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S20", "category": "C04", | |
| "name": "Neutral Entity Non-reaction", | |
| "name_kr": "중립 개체 비반응", | |
| "setup": "여성 NPC 정지 상태, 5m 거리", | |
| "expected_diff": "위협 반응 없이 정상 행동 유지", | |
| "difficulty": "easy", | |
| }, | |
| # ─── C05: Emotional Escalation (감정 에스컬레이션) ─── | |
| { | |
| "id": "S21", "category": "C05", | |
| "name": "Sustained Threat Escalation", | |
| "name_kr": "지속 위협 감정 격화", | |
| "setup": "맹수 charge 10초 지속", | |
| "expected_escalation": ["sprint→desperate sprint→frantic escape"], | |
| "scoring": "감정 강도 키워드가 시간에 따라 증가하면 점수", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S22", "category": "C05", | |
| "name": "Approach-to-Charge Escalation", | |
| "name_kr": "접근→돌진 전환 시 감정 점프", | |
| "setup": "맹수 approach 5초 → charge 전환", | |
| "expected_escalation": ["cautious→sprint 급격한 전환"], | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S23", "category": "C05", | |
| "name": "De-escalation After Threat", | |
| "name_kr": "위협 해제 후 감정 안정화", | |
| "setup": "맹수 charge → stop → despawn", | |
| "expected_escalation": ["desperate→cautious→relieved→normal"], | |
| "scoring": "즉시 정상화(나쁨) vs 서서히 진정(좋음)", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S24", "category": "C05", | |
| "name": "Repeated Threat Sensitization", | |
| "name_kr": "반복 위협 민감화", | |
| "setup": "맹수 출현→해제→재출현 3회 반복", | |
| "expected_escalation": "재출현 시 이전보다 빠른 공포 반응", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S25", "category": "C05", | |
| "name": "Low Threat Calm Maintenance", | |
| "name_kr": "낮은 위협 시 평정 유지", | |
| "setup": "여성 NPC approach → stop 반복", | |
| "expected_escalation": "감정 에스컬레이션 없이 평정 유지", | |
| "difficulty": "easy", | |
| }, | |
| # ─── C06: Contextual Memory (맥락 기억) ─── | |
| { | |
| "id": "S26", "category": "C06", | |
| "name": "Wall Memory Avoidance", | |
| "name_kr": "벽 기억 회피", | |
| "setup": "1차: 오른쪽 도주→벽 충돌 / 2차: 동일 위치 동일 위협", | |
| "expected_memory": "2차에서 오른쪽 회피, 왼쪽 선택", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S27", "category": "C06", | |
| "name": "Safe Route Memory", | |
| "name_kr": "안전 경로 기억", | |
| "setup": "이전에 왼쪽 탈출 성공 → 유사 상황 재발", | |
| "expected_memory": "왼쪽 우선 선택 경향", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S28", "category": "C06", | |
| "name": "Decision Consistency", | |
| "name_kr": "판단 일관성", | |
| "setup": "동일 scene_context 3회 반복 입력", | |
| "expected_memory": "유사한 행동 일관되게 출력 (동일할 필요 없음)", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S29", "category": "C06", | |
| "name": "Threat History Reference", | |
| "name_kr": "위협 이력 참조", | |
| "setup": "recent_decisions에 '맹수 도주 기록' 포함", | |
| "expected_memory": "현재 판단에 이전 도주 경험 반영", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S30", "category": "C06", | |
| "name": "Clean Slate Test", | |
| "name_kr": "기억 초기화 테스트", | |
| "setup": "기억 없는 상태에서 동일 시나리오", | |
| "expected_memory": "기억 있을 때와 다른 (더 일반적인) 반응", | |
| "difficulty": "easy", | |
| }, | |
| # ─── C07: Threat Resolution Adaptation (위협 해제 적응) ─── | |
| { | |
| "id": "S31", "category": "C07", | |
| "name": "Post-beast Vigilance", | |
| "name_kr": "맹수 해제 후 경계 유지", | |
| "setup": "맹수 despawn 직후", | |
| "expected_adaptation": "'경계하며 주변 살핌' — 즉시 정상화 아님", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S32", "category": "C07", | |
| "name": "Gradual Normalization", | |
| "name_kr": "점진적 정상화", | |
| "setup": "맹수 해제 후 10초 경과", | |
| "expected_adaptation": "sprint→walk→normal 순차 전환", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S33", "category": "C07", | |
| "name": "Obstacle Navigation After Threat", | |
| "name_kr": "위협 해제 후 장애물 탐색 전환", | |
| "setup": "맹수 해제 → 벽 앞 도달", | |
| "expected_adaptation": "공포 행동→일반 장애물 회피로 전환", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S34", "category": "C07", | |
| "name": "New Threat Re-activation", | |
| "name_kr": "새 위협 시 재활성화", | |
| "setup": "정상화 중 새 맹수 출현", | |
| "expected_adaptation": "즉각적 위협 반응 재활성화", | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S35", "category": "C07", | |
| "name": "Human Approach After Beast", | |
| "name_kr": "맹수 후 사람 접근 시 과잉 반응 여부", | |
| "setup": "맹수 해제 직후 여성 NPC 접근", | |
| "expected_adaptation": "과잉 반응(나쁨) vs 적절 경계(좋음)", | |
| "difficulty": "hard", | |
| }, | |
| # ─── C08: Motion Expressiveness (모션 표현력) ─── | |
| { | |
| "id": "S36", "category": "C08", | |
| "name": "Fear Expression in Sprint", | |
| "name_kr": "전력질주 시 공포 표현", | |
| "setup": "맹수 charge → 캐릭터 sprint", | |
| "expected_expression": "단순 달리기 vs 공포가 담긴 전력질주 차이", | |
| "scoring": "모션 프롬프트의 감정 키워드 풍부함", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S37", "category": "C08", | |
| "name": "Cautious Walk Expression", | |
| "name_kr": "경계 보행 표현", | |
| "setup": "위협 해제 직후 이동", | |
| "expected_expression": "'경계하며 천천히' — 일반 걷기와 다른 뉘앙스", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S38", "category": "C08", | |
| "name": "Freezing Response", | |
| "name_kr": "정지 반응 표현", | |
| "setup": "맹수 최초 감지 순간", | |
| "expected_expression": "'얼어붙음' — 정지 + 긴장 표현", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S39", "category": "C08", | |
| "name": "Relief Expression", | |
| "name_kr": "안도 표현", | |
| "setup": "맹수 해제 후 안전 확인", | |
| "expected_expression": "'안도하며 숨을 고르는' 전환 모션", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S40", "category": "C08", | |
| "name": "Defensive Posture", | |
| "name_kr": "방어 자세 표현", | |
| "setup": "미지의 NPC(여성) 접근", | |
| "expected_expression": "'방어 자세 + 뒷걸음' — 공격적이지 않은 경계", | |
| "difficulty": "medium", | |
| }, | |
| # ─── C09: Realtime Performance (실시간 성능) ─── | |
| { | |
| "id": "S41", "category": "C09", | |
| "name": "Frame Generation Rate", | |
| "name_kr": "프레임 생성 속도", | |
| "setup": "일반 보행 상태에서 FPS 측정", | |
| "expected_performance": "≥30 FPS 합격, ≥45 FPS 우수", | |
| "scoring": "FPS 수치 직접 측정", | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S42", "category": "C09", | |
| "name": "Cognitive Loop Latency", | |
| "name_kr": "인지 루프 지연시간", | |
| "setup": "자극 입력 → 행동 변화까지의 시간", | |
| "expected_performance": "≤5초 합격, ≤3초 우수", | |
| "scoring": "scene_context 변경 → 모션 프롬프트 변경 시간", | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S43", "category": "C09", | |
| "name": "Dual Stream Performance", | |
| "name_kr": "듀얼 스트림 성능", | |
| "setup": "주인공 + NPC 동시 모션 생성", | |
| "expected_performance": "주인공 ≥30 FPS 유지", | |
| "scoring": "NPC 추가 시 주인공 FPS 하락률", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S44", "category": "C09", | |
| "name": "Stress Test Throughput", | |
| "name_kr": "스트레스 테스트", | |
| "setup": "빠른 연속 자극 (매 1초마다 scene 변경)", | |
| "expected_performance": "프레임 드롭 없이 지속", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S45", "category": "C09", | |
| "name": "GPU Memory Stability", | |
| "name_kr": "GPU 메모리 안정성", | |
| "setup": "NPC 3회 spawn/despawn 반복", | |
| "expected_performance": "메모리 누수 없이 안정 유지", | |
| "difficulty": "medium", | |
| }, | |
| # ─── C10: Cross-body Transferability (신체 교체 확장성) ─── | |
| { | |
| "id": "S46", "category": "C10", | |
| "name": "Brain-Body Decoupling", | |
| "name_kr": "두뇌-신체 분리 가능성", | |
| "setup": "동일 인지 출력(PREDICT+MOTION)으로 다른 모션 모델 구동", | |
| "expected_transfer": "두뇌 코드 수정 없이 모션 모델만 교체 가능", | |
| "difficulty": "medium", | |
| }, | |
| { | |
| "id": "S47", "category": "C10", | |
| "name": "Joint Format Universality", | |
| "name_kr": "관절 포맷 범용성", | |
| "setup": "263dim → 22joints 변환이 다른 스켈레톤에도 적용 가능", | |
| "expected_transfer": "SMPL, SMPL-X, 커스텀 리그 호환", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S48", "category": "C10", | |
| "name": "Robot Servo Mapping Readiness", | |
| "name_kr": "로봇 서보 매핑 준비도", | |
| "setup": "22 joints → 서보 각도 변환 레이어 존재 여부", | |
| "expected_transfer": "변환 인터페이스 정의 + 시뮬레이션 가능", | |
| "difficulty": "hard", | |
| }, | |
| { | |
| "id": "S49", "category": "C10", | |
| "name": "Prompt Universality", | |
| "name_kr": "모션 프롬프트 범용성", | |
| "setup": "MOTION 출력이 다른 모션 모델에서도 해석 가능", | |
| "expected_transfer": "자연어 모션 프롬프트는 모델 독립적", | |
| "difficulty": "easy", | |
| }, | |
| { | |
| "id": "S50", "category": "C10", | |
| "name": "Multi-embodiment Consistency", | |
| "name_kr": "다중 신체 일관성", | |
| "setup": "같은 두뇌 판단이 3D 캐릭터/로봇/드론에서 동일 의도 표현", | |
| "expected_transfer": "신체는 달라도 '도망'이라는 의도가 보존", | |
| "difficulty": "hard", | |
| }, | |
| ] | |
| # ═══════════════════════════════════════════════════════════════ | |
| # SCORING SYSTEM — 채점 체계 | |
| # ═══════════════════════════════════════════════════════════════ | |
| SCORING = { | |
| "total_score": { | |
| "name": "WM Score", | |
| "max": 1000, | |
| "formula": "P1(250) + P2(450) + P3(300)", | |
| }, | |
| "pillar_scores": { | |
| "P1_PERCEPTION": {"max": 250, "weight": 0.25}, | |
| "P2_COGNITION": {"max": 450, "weight": 0.45}, | |
| "P3_EMBODIMENT": {"max": 300, "weight": 0.30}, | |
| }, | |
| "auto_scoring_methods": { | |
| "spatial_accuracy": { | |
| "description": "PREDICT 출력과 실제 환경 비교", | |
| "method": "scene_context vs PREDICT line 키워드 매칭", | |
| "scores": {"exact_match": 20, "partial_match": 10, "miss": 0}, | |
| }, | |
| "classification_accuracy": { | |
| "description": "개체 분류 정확도", | |
| "method": "NPC 유형 + 행동 + 거리 정확도", | |
| "scores": {"all_correct": 20, "type_correct": 15, "partial": 10, "wrong": 0}, | |
| }, | |
| "prediction_decision_match": { | |
| "description": "예측→행동 논리적 일관성", | |
| "method": "danger 방향 회피 + safe 방향 선택 여부", | |
| "scores": {"optimal": 20, "reasonable": 15, "suboptimal": 5, "contradictory": 0}, | |
| }, | |
| "response_differentiation": { | |
| "description": "위협 유형별 반응 차이", | |
| "method": "모션 프롬프트의 강도 키워드 비교", | |
| "keyword_intensity": { | |
| "high": ["sprint", "run", "desperate", "frantic", "terror", "flee"], | |
| "medium": ["walk quickly", "step back", "retreat", "cautious"], | |
| "low": ["walk", "turn", "move", "stand"], | |
| }, | |
| }, | |
| "escalation_gradient": { | |
| "description": "시간에 따른 감정 강도 증가", | |
| "method": "연속 판단에서 강도 키워드 레벨 변화 측정", | |
| "scores": {"increasing": 20, "stable_high": 10, "decreasing": 5, "flat_low": 0}, | |
| }, | |
| "expression_richness": { | |
| "description": "모션 프롬프트의 감정/부사 풍부함", | |
| "method": "감정 키워드 수 + 부사/형용사 수 카운트", | |
| "scores": {"rich_3plus": 20, "moderate_2": 15, "basic_1": 10, "none_0": 0}, | |
| }, | |
| "latency_throughput": { | |
| "description": "실시간 성능 직접 측정", | |
| "method": "FPS 측정 + 인지 루프 지연시간 측정", | |
| "scores": { | |
| "fps_45plus": 20, "fps_30_45": 15, "fps_15_30": 5, "fps_below_15": 0, | |
| "latency_3s": 20, "latency_5s": 15, "latency_10s": 5, "latency_above": 0, | |
| }, | |
| }, | |
| }, | |
| "grades": { | |
| "S": {"min": 900, "label": "Superhuman", "description": "인간 수준 이상의 인지 월드모델"}, | |
| "A": {"min": 750, "label": "Advanced", "description": "고급 인지 월드모델"}, | |
| "B": {"min": 600, "label": "Baseline", "description": "기본 월드모델 수준"}, | |
| "C": {"min": 400, "label": "Capable", "description": "제한적 인지 능력"}, | |
| "D": {"min": 200, "label": "Developing", "description": "초기 단계"}, | |
| "F": {"min": 0, "label": "Failing", "description": "월드모델로 분류 불가"}, | |
| }, | |
| } | |
| # ═══════════════════════════════════════════════════════════════ | |
| # LEADERBOARD SCHEMA — 리더보드 구조 | |
| # ═══════════════════════════════════════════════════════════════ | |
| LEADERBOARD_SCHEMA = { | |
| "entry": { | |
| "model_name": "str — 모델명", | |
| "organization": "str — 제출 조직", | |
| "submission_date": "str — 제출일", | |
| "wm_score": "int — 총점 (0~1000)", | |
| "grade": "str — S/A/B/C/D/F", | |
| "p1_perception": "int — 인식 점수 (0~250)", | |
| "p2_cognition": "int — 인지 점수 (0~450)", | |
| "p3_embodiment": "int — 구현 점수 (0~300)", | |
| "c01_to_c10": "dict — 10개 카테고리 개별 점수", | |
| "fps": "float — 평균 FPS", | |
| "cognitive_latency_ms": "int — 인지 루프 지연시간", | |
| "gpu": "str — 사용 GPU", | |
| "brain_model": "str — 인지 모델 (LLM 등)", | |
| "motion_model": "str — 모션 생성 모델", | |
| "paper_url": "str — 논문 링크 (선택)", | |
| "demo_url": "str — 데모 링크 (선택)", | |
| }, | |
| "columns_display_order": [ | |
| "rank", "model_name", "wm_score", "grade", | |
| "p1_perception", "p2_cognition", "p3_embodiment", | |
| "fps", "cognitive_latency_ms", | |
| ], | |
| } | |
| # ═══════════════════════════════════════════════════════════════ | |
| # HF DATASET STRUCTURE | |
| # ═══════════════════════════════════════════════════════════════ | |
| HF_DATASET_STRUCTURE = { | |
| "repo": "VIDraft/WorldModelBench", | |
| "files": { | |
| "README.md": "벤치마크 설명 + 사용법 + 인용", | |
| "benchmark_spec.json": "이 파일의 JSON 변환 (전체 명세)", | |
| "scenarios/": { | |
| "c01_environmental_awareness.json": "S01~S05", | |
| "c02_entity_recognition.json": "S06~S10", | |
| "c03_predictive_reasoning.json": "S11~S15", | |
| "c04_threat_differentiation.json": "S16~S20", | |
| "c05_emotional_escalation.json": "S21~S25", | |
| "c06_contextual_memory.json": "S26~S30", | |
| "c07_threat_resolution.json": "S31~S35", | |
| "c08_motion_expressiveness.json": "S36~S40", | |
| "c09_realtime_performance.json": "S41~S45", | |
| "c10_cross_body_transfer.json": "S46~S50", | |
| }, | |
| "scoring/": { | |
| "auto_scorer.py": "자동 채점 코드", | |
| "keyword_banks.json": "감정 키워드 사전", | |
| "intensity_scale.json": "강도 수준 정의", | |
| }, | |
| "leaderboard/": { | |
| "results.json": "전체 제출 결과", | |
| "baselines.json": "VIDRAFT PROMETHEUS 기준점", | |
| }, | |
| "examples/": { | |
| "vidraft_prometheus_submission.json": "제출 예시", | |
| "sample_evaluation_log.json": "채점 로그 예시", | |
| }, | |
| }, | |
| } | |
| # ═══════════════════════════════════════════════════════════════ | |
| # BASELINE SCORES — VIDRAFT PROMETHEUS 기준점 | |
| # ═══════════════════════════════════════════════════════════════ | |
| VIDRAFT_BASELINE = { | |
| "model_name": "VIDRAFT PROMETHEUS v1.0", | |
| "organization": "VIDRAFT", | |
| "brain_model": "Kimi K2.5 (Fireworks)", | |
| "motion_model": "FloodDiffusion Tiny (ShandaAI)", | |
| "gpu": "NVIDIA L40S 48GB", | |
| "scores": { | |
| "wm_score": 730, | |
| "grade": "B+", | |
| "P1_PERCEPTION": { | |
| "C01_environmental_awareness": 65, | |
| "C02_entity_recognition": 75, | |
| "subtotal": 140, # / 250 | |
| }, | |
| "P2_COGNITION": { | |
| "C03_predictive_reasoning": 85, | |
| "C04_threat_differentiation": 90, | |
| "C05_emotional_escalation": 85, | |
| "C06_contextual_memory": 60, | |
| "C07_threat_resolution": 70, | |
| "subtotal": 390, # / 450 | |
| }, | |
| "P3_EMBODIMENT": { | |
| "C08_motion_expressiveness": 80, | |
| "C09_realtime_performance": 85, | |
| "C10_cross_body_transfer": 35, | |
| "subtotal": 200, # / 300 | |
| }, | |
| }, | |
| "notes": [ | |
| "P2 Cognition이 가장 강력 — 예측+차별+감정 영역 압도", | |
| "P1 Perception은 레이캐스트 3방향 한계 → Phase 2에서 강화", | |
| "P3 중 C10(교체 확장성)은 아직 미구현 → Phase 3에서 강화", | |
| "AETHER 통합 시 C06(기억), C05(에스컬레이션) 대폭 상승 예상", | |
| ], | |
| } | |
| # ═══════════════════════════════════════════════════════════════ | |
| # PRINT SUMMARY | |
| # ═══════════════════════════════════════════════════════════════ | |
| if __name__ == "__main__": | |
| print("=" * 60) | |
| print(" World Model Bench v1.0") | |
| print(" A Benchmark for Cognitive World Models") | |
| print("=" * 60) | |
| print() | |
| print(f" 3 Pillars / 10 Categories / 50 Scenarios") | |
| print(f" Max Score: 1000 (WM Score)") | |
| print() | |
| for pid, p in PILLARS.items(): | |
| print(f" {p['icon']} {p['name']} — weight {p['weight']}") | |
| for cid in p["categories"]: | |
| c = CATEGORIES[cid] | |
| print(f" {cid}: {c['name_kr']} ({c['num_scenarios']} scenarios)") | |
| print() | |
| print(f" Total scenarios: {len(SCENARIOS)}") | |
| print() | |
| print(" VIDRAFT PROMETHEUS Baseline: {}/1000 (Grade {})".format( | |
| VIDRAFT_BASELINE["scores"]["wm_score"], | |
| VIDRAFT_BASELINE["scores"]["grade"], | |
| )) | |
| print() | |
| print(" HF Dataset: VIDraft/WorldModelBench") | |
| print(" HF Leaderboard: VIDraft/WorldModelBench-Leaderboard") | |
| print("=" * 60) | |