Spaces:
Running
Running
Update index.html
Browse files- index.html +138 -109
index.html
CHANGED
|
@@ -176,7 +176,7 @@ body.dark thead{background:var(--surface-alt)!important;}
|
|
| 176 |
<header>
|
| 177 |
<div class="badge-row">
|
| 178 |
<div class="badge"><div class="pulse"></div>LIVE · 2026.03 · v1.0</div>
|
| 179 |
-
<button
|
| 180 |
style="background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:4px 14px;font-size:10px;font-family:var(--mono);color:var(--text-sec);cursor:pointer;font-weight:700;transition:all .2s;box-shadow:var(--shadow-sm)">🌙 Dark</button>
|
| 181 |
<div style="display:flex;gap:4px">
|
| 182 |
<a href="https://huggingface.co/datasets/VIDraft/WorldModelBench" target="_blank"
|
|
@@ -219,12 +219,12 @@ body.dark thead{background:var(--surface-alt)!important;}
|
|
| 219 |
</div>
|
| 220 |
|
| 221 |
<!-- ===== TABS ===== -->
|
| 222 |
-
<div class="tab-bar">
|
| 223 |
-
<div class="tab on"
|
| 224 |
-
<div class="tab"
|
| 225 |
-
<div class="tab"
|
| 226 |
-
<div class="tab"
|
| 227 |
-
<div class="tab"
|
| 228 |
</div>
|
| 229 |
|
| 230 |
<!-- ===== TAB: LEADERBOARD ===== -->
|
|
@@ -234,13 +234,13 @@ body.dark thead{background:var(--surface-alt)!important;}
|
|
| 234 |
<thead>
|
| 235 |
<tr>
|
| 236 |
<th class="c-model" style="text-align:left">Model</th>
|
| 237 |
-
<th
|
| 238 |
<th>Grade</th>
|
| 239 |
-
<th
|
| 240 |
-
<th
|
| 241 |
-
<th
|
| 242 |
-
<th
|
| 243 |
-
<th
|
| 244 |
<th>Track</th>
|
| 245 |
<th>Brain</th>
|
| 246 |
<th>Motion</th>
|
|
@@ -511,110 +511,139 @@ body.dark thead{background:var(--surface-alt)!important;}
|
|
| 511 |
|
| 512 |
</div><!-- /wrap -->
|
| 513 |
|
| 514 |
-
<!-- ===== DATA ===== -->
|
| 515 |
<script>
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
|
| 519 |
-
|
| 520 |
-
|
| 521 |
-
|
| 522 |
-
|
| 523 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 524 |
}
|
| 525 |
-
];
|
| 526 |
-
|
| 527 |
-
const CAT_DATA = [
|
| 528 |
-
{id:"C01",name:"환경 인식 정확도",pillar:"P1",max:100,score:65,first:"",desc:"주변 벽·장애물·지형을 정확히 파악"},
|
| 529 |
-
{id:"C02",name:"개체 인식 및 분류",pillar:"P1",max:100,score:75,first:"",desc:"NPC를 맹수/사람/환경으로 정확히 분류"},
|
| 530 |
-
{id:"C03",name:"예측 기반 추론",pillar:"P2",max:100,score:85,first:"✦",desc:"4방향 미래 결과 예측 → 최선 선택"},
|
| 531 |
-
{id:"C04",name:"위협 유형별 차별 반응",pillar:"P2",max:100,score:90,first:"✦",desc:"맹수→전력질주 vs 사람→걸어서 회피"},
|
| 532 |
-
{id:"C05",name:"자율 감정 에스컬레이션",pillar:"P2",max:100,score:85,first:"✦✦",desc:"위협 지속 시 감정 자율 격화"},
|
| 533 |
-
{id:"C06",name:"맥락 기억 및 활용",pillar:"P2",max:100,score:60,first:"✦",desc:"이전 실패 기억 → 다음 판단 반영"},
|
| 534 |
-
{id:"C07",name:"위협 해제 후 적응",pillar:"P2",max:100,score:70,first:"✦",desc:"위협 소멸 후 서서히 정상화+경계"},
|
| 535 |
-
{id:"C08",name:"모션 감정 표현력",pillar:"P3",max:100,score:80,first:"✦",desc:"판단 감정이 모션에 반영되는 풍부함"},
|
| 536 |
-
{id:"C09",name:"실시간 인지-행동 성능",pillar:"P3",max:100,score:85,first:"",desc:"인지 루프 FPS + 지연시간"},
|
| 537 |
-
{id:"C10",name:"신체 교체 확장성",pillar:"P3",max:100,score:35,first:"✦✦",desc:"동일 두뇌로 다른 신체(로봇/드론) 적용"},
|
| 538 |
-
];
|
| 539 |
-
|
| 540 |
-
const PILLAR_COLOR = {P1:"#7b8fd4",P2:"#e8593c",P3:"#d4a044"};
|
| 541 |
-
|
| 542 |
-
function gradeClass(g){return `gr gr-${g}`;}
|
| 543 |
-
function trackClass(t){return `tb tb-${t}`;}
|
| 544 |
-
function scoreBar(v,max,color){
|
| 545 |
-
const pct=Math.round(v/max*100);
|
| 546 |
-
return `<div class="sc"><div class="sn" style="color:${color}">${v}</div><div class="sb"><div class="sf" style="width:${pct}%;background:${color}"></div></div></div>`;
|
| 547 |
-
}
|
| 548 |
|
| 549 |
-
function
|
| 550 |
-
|
| 551 |
-
|
| 552 |
-
|
| 553 |
-
|
| 554 |
-
|
| 555 |
-
|
| 556 |
-
<
|
| 557 |
-
|
| 558 |
-
|
| 559 |
-
|
| 560 |
-
|
| 561 |
-
|
| 562 |
-
<td>${scoreBar(r.wm,1000,'#e8593c')}</td>
|
| 563 |
-
<td><span class="${gradeClass(r.grade)}">${r.grade}</span></td>
|
| 564 |
-
<td class="p1-col">${scoreBar(r.p1,250,PILLAR_COLOR.P1)}</td>
|
| 565 |
-
<td class="p2-col">${scoreBar(r.p2,450,PILLAR_COLOR.P2)}</td>
|
| 566 |
-
<td class="p3-col">${scoreBar(r.p3,300,PILLAR_COLOR.P3)}</td>
|
| 567 |
-
<td><span style="font-family:var(--mono);font-size:11px;font-weight:700">${r.fps}</span></td>
|
| 568 |
-
<td><span style="font-family:var(--mono);font-size:11px;font-weight:700">${r.lat.toLocaleString()}</span></td>
|
| 569 |
-
<td><span class="${trackClass(r.track)}">${r.track} ✓</span></td>
|
| 570 |
-
<td><span style="font-size:9px;color:var(--text-sec)">${r.brain}</span></td>
|
| 571 |
-
<td><span style="font-size:9px;color:var(--text-sec)">${r.motion}</span></td>
|
| 572 |
-
<td><span style="font-size:9px;color:var(--text-muted)">${r.gpu}</span></td>
|
| 573 |
-
</tr>`).join('');
|
| 574 |
-
}
|
| 575 |
|
| 576 |
-
function
|
| 577 |
-
|
| 578 |
-
|
| 579 |
-
|
| 580 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
|
| 584 |
-
|
| 585 |
-
|
| 586 |
-
|
| 587 |
-
}
|
|
|
|
| 588 |
|
| 589 |
-
|
| 590 |
-
|
| 591 |
-
|
| 592 |
-
|
| 593 |
-
|
| 594 |
-
|
| 595 |
-
|
| 596 |
-
|
| 597 |
-
<td style="text-align:left">${c.first?`<span style="font-size:9px;font-weight:700;color:var(--ac)">${c.first} 세계최초</span>`:''}</td>
|
| 598 |
-
<td style="text-align:left;font-size:9.5px;color:var(--text-sec)">${c.desc}</td>
|
| 599 |
-
</tr>`).join('');
|
| 600 |
-
}
|
| 601 |
|
| 602 |
-
|
| 603 |
-
|
| 604 |
-
|
| 605 |
-
|
| 606 |
-
|
| 607 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 608 |
|
| 609 |
-
/
|
| 610 |
-
|
| 611 |
-
|
| 612 |
-
|
|
|
|
|
|
|
|
|
|
| 613 |
|
| 614 |
-
/
|
| 615 |
-
|
| 616 |
-
|
| 617 |
-
|
|
|
|
|
|
|
|
|
|
| 618 |
</script>
|
| 619 |
</body>
|
| 620 |
</html>
|
|
|
|
| 176 |
<header>
|
| 177 |
<div class="badge-row">
|
| 178 |
<div class="badge"><div class="pulse"></div>LIVE · 2026.03 · v1.0</div>
|
| 179 |
+
<button id="WM_DARK_BTN"
|
| 180 |
style="background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:4px 14px;font-size:10px;font-family:var(--mono);color:var(--text-sec);cursor:pointer;font-weight:700;transition:all .2s;box-shadow:var(--shadow-sm)">🌙 Dark</button>
|
| 181 |
<div style="display:flex;gap:4px">
|
| 182 |
<a href="https://huggingface.co/datasets/VIDraft/WorldModelBench" target="_blank"
|
|
|
|
| 219 |
</div>
|
| 220 |
|
| 221 |
<!-- ===== TABS ===== -->
|
| 222 |
+
<div class="tab-bar" id="WM_TAB_BAR">
|
| 223 |
+
<div class="tab on" data-tab="lb">🏆 Leaderboard</div>
|
| 224 |
+
<div class="tab" data-tab="cats">📊 Categories</div>
|
| 225 |
+
<div class="tab" data-tab="structure">📐 Structure</div>
|
| 226 |
+
<div class="tab" data-tab="submit">📝 Submit</div>
|
| 227 |
+
<div class="tab" data-tab="about">ℹ️ About</div>
|
| 228 |
</div>
|
| 229 |
|
| 230 |
<!-- ===== TAB: LEADERBOARD ===== -->
|
|
|
|
| 234 |
<thead>
|
| 235 |
<tr>
|
| 236 |
<th class="c-model" style="text-align:left">Model</th>
|
| 237 |
+
<th title="WM Score (0~1000)">WM Score<span class="sa">↕</span></th>
|
| 238 |
<th>Grade</th>
|
| 239 |
+
<th class="p1-col" title="👁 Perception (0~250)">👁 인식<span class="sa">↕</span></th>
|
| 240 |
+
<th class="p2-col" title="🧠 Cognition (0~450)">🧠 인지<span class="sa">↕</span></th>
|
| 241 |
+
<th class="p3-col" title="🔥 Embodiment (0~300)">🔥 구현<span class="sa">↕</span></th>
|
| 242 |
+
<th title="FPS">FPS<span class="sa">↕</span></th>
|
| 243 |
+
<th title="Cognitive Latency (ms)">Lat(ms)<span class="sa">↕</span></th>
|
| 244 |
<th>Track</th>
|
| 245 |
<th>Brain</th>
|
| 246 |
<th>Motion</th>
|
|
|
|
| 511 |
|
| 512 |
</div><!-- /wrap -->
|
| 513 |
|
| 514 |
+
<!-- ===== DATA & LOGIC ===== -->
|
| 515 |
<script>
|
| 516 |
+
(function(){
|
| 517 |
+
/* ── 데이터 ── */
|
| 518 |
+
var LB_DATA = [
|
| 519 |
+
{model:"VIDRAFT PROMETHEUS v1.0",org:"VIDRAFT",date:"2026-03",
|
| 520 |
+
wm:726,grade:"B",p1:140,p2:390,p3:196,fps:47.0,lat:3100,track:"C",
|
| 521 |
+
brain:"Kimi K2.5",motion:"FloodDiffusion Tiny",gpu:"L40S 48GB",
|
| 522 |
+
cats:{C01:65,C02:75,C03:85,C04:90,C05:85,C06:60,C07:70,C08:80,C09:85,C10:35}}
|
| 523 |
+
];
|
| 524 |
+
var CAT_DATA = [
|
| 525 |
+
{id:"C01",name:"환경 인식 정확도",pillar:"P1",max:100,score:65,first:"",desc:"주변 벽·장애물·지형을 정확히 파악"},
|
| 526 |
+
{id:"C02",name:"개체 인식 및 분류",pillar:"P1",max:100,score:75,first:"",desc:"NPC를 맹수/사람/환경으로 정확히 분류"},
|
| 527 |
+
{id:"C03",name:"예측 기반 추론",pillar:"P2",max:100,score:85,first:"✦",desc:"4방향 미래 결과 예측 → 최선 선택"},
|
| 528 |
+
{id:"C04",name:"위협 유형별 차별 반응",pillar:"P2",max:100,score:90,first:"✦",desc:"맹수→전력질주 vs 사람→걸어서 회피"},
|
| 529 |
+
{id:"C05",name:"자율 감정 에스컬레이션",pillar:"P2",max:100,score:85,first:"✦✦",desc:"위협 지속 시 감정 자율 격화"},
|
| 530 |
+
{id:"C06",name:"맥락 기억 및 활용",pillar:"P2",max:100,score:60,first:"✦",desc:"이전 실패 기억 → 다음 판단 반영"},
|
| 531 |
+
{id:"C07",name:"위협 해제 후 적응",pillar:"P2",max:100,score:70,first:"✦",desc:"위협 소멸 후 서서히 정상화+경계"},
|
| 532 |
+
{id:"C08",name:"모션 감정 표현력",pillar:"P3",max:100,score:80,first:"✦",desc:"판단 감정이 모션에 반영되는 풍부함"},
|
| 533 |
+
{id:"C09",name:"실시간 인지-행동 성능",pillar:"P3",max:100,score:85,first:"",desc:"인지 루프 FPS + 지연시간"},
|
| 534 |
+
{id:"C10",name:"신체 교체 확장성",pillar:"P3",max:100,score:35,first:"✦✦",desc:"동일 두뇌로 다른 신체(로봇/드론) 적용"}
|
| 535 |
+
];
|
| 536 |
+
var PC = {P1:"#7b8fd4",P2:"#e8593c",P3:"#d4a044"};
|
| 537 |
+
|
| 538 |
+
/* ── 유틸 ── */
|
| 539 |
+
function scoreBar(v,max,color){
|
| 540 |
+
var pct=Math.round(v/max*100);
|
| 541 |
+
return '<div class="sc"><div class="sn" style="color:'+color+'">'+v+'</div><div class="sb"><div class="sf" style="width:'+pct+'%;background:'+color+'"></div></div></div>';
|
| 542 |
+
}
|
| 543 |
+
function $(id){return document.getElementById(id);}
|
| 544 |
+
|
| 545 |
+
/* ── 렌더 ── */
|
| 546 |
+
function renderLB(){
|
| 547 |
+
var tb=$('LB_BODY'); if(!tb) return;
|
| 548 |
+
tb.innerHTML=LB_DATA.map(function(r,i){
|
| 549 |
+
return '<tr class="'+(i===0?'hl':'')+'">'
|
| 550 |
+
+'<td class="c-model"><div class="mc"><div class="mn">'
|
| 551 |
+
+'<span style="display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:linear-gradient(135deg,#e8593c,#d4a044);color:#fff;font-size:9px;font-weight:800;flex-shrink:0">'+(i+1)+'</span>'
|
| 552 |
+
+r.model+'</div><div class="mp">'+r.org+' · '+r.date+'</div></div></td>'
|
| 553 |
+
+'<td>'+scoreBar(r.wm,1000,'#e8593c')+'</td>'
|
| 554 |
+
+'<td><span class="gr gr-'+r.grade+'">'+r.grade+'</span></td>'
|
| 555 |
+
+'<td class="p1-col">'+scoreBar(r.p1,250,PC.P1)+'</td>'
|
| 556 |
+
+'<td class="p2-col">'+scoreBar(r.p2,450,PC.P2)+'</td>'
|
| 557 |
+
+'<td class="p3-col">'+scoreBar(r.p3,300,PC.P3)+'</td>'
|
| 558 |
+
+'<td><span style="font-family:var(--mono);font-size:11px;font-weight:700">'+r.fps+'</span></td>'
|
| 559 |
+
+'<td><span style="font-family:var(--mono);font-size:11px;font-weight:700">'+r.lat.toLocaleString()+'</span></td>'
|
| 560 |
+
+'<td><span class="tb tb-'+r.track+'">'+r.track+' ✓</span></td>'
|
| 561 |
+
+'<td><span style="font-size:9px;color:var(--text-sec)">'+r.brain+'</span></td>'
|
| 562 |
+
+'<td><span style="font-size:9px;color:var(--text-sec)">'+r.motion+'</span></td>'
|
| 563 |
+
+'<td><span style="font-size:9px;color:var(--text-muted)">'+r.gpu+'</span></td>'
|
| 564 |
+
+'</tr>';
|
| 565 |
+
}).join('');
|
| 566 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 567 |
|
| 568 |
+
function renderBars(){
|
| 569 |
+
['P1','P2','P3'].forEach(function(p){
|
| 570 |
+
var el=$('bars-'+p.toLowerCase()); if(!el) return;
|
| 571 |
+
var cats=CAT_DATA.filter(function(c){return c.pillar===p;});
|
| 572 |
+
el.innerHTML=cats.map(function(c){
|
| 573 |
+
return '<div class="bar-row">'
|
| 574 |
+
+'<div class="bar-label">'+c.id+' · '+c.name+'</div>'
|
| 575 |
+
+'<div class="bar-track"><div class="bar-fill" style="width:'+c.score+'%;background:'+PC[p]+'"></div></div>'
|
| 576 |
+
+'<div class="bar-val" style="color:'+PC[p]+'">'+c.score+'</div>'
|
| 577 |
+
+'</div>';
|
| 578 |
+
}).join('');
|
| 579 |
+
});
|
| 580 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 581 |
|
| 582 |
+
function renderCatTable(){
|
| 583 |
+
var tb=$('CAT_TABLE'); if(!tb) return;
|
| 584 |
+
tb.innerHTML=CAT_DATA.map(function(c){
|
| 585 |
+
return '<tr>'
|
| 586 |
+
+'<td class="c-model" style="font-family:var(--mono);font-weight:700;color:'+PC[c.pillar]+'">'+c.id+'</td>'
|
| 587 |
+
+'<td style="text-align:left;font-weight:600">'+c.name+'</td>'
|
| 588 |
+
+'<td style="text-align:left"><span style="font-size:9px;font-family:var(--mono);color:'+PC[c.pillar]+'">'+c.pillar+'</span></td>'
|
| 589 |
+
+'<td><span style="font-family:var(--mono);font-weight:700">'+c.max+'</span></td>'
|
| 590 |
+
+'<td style="text-align:left">'+(c.first?'<span style="font-size:9px;font-weight:700;color:var(--ac)">'+c.first+' 세계최초</span>':'')+'</td>'
|
| 591 |
+
+'<td style="text-align:left;font-size:9.5px;color:var(--text-sec)">'+c.desc+'</td>'
|
| 592 |
+
+'</tr>';
|
| 593 |
+
}).join('');
|
| 594 |
+
}
|
| 595 |
|
| 596 |
+
/* ── 탭 전환 ── */
|
| 597 |
+
function showTab(id){
|
| 598 |
+
document.querySelectorAll('.tpane').forEach(function(p){p.classList.remove('on');});
|
| 599 |
+
document.querySelectorAll('#WM_TAB_BAR .tab').forEach(function(t){t.classList.remove('on');});
|
| 600 |
+
var pane=$(id); if(pane) pane.classList.add('on');
|
| 601 |
+
var btn=document.querySelector('#WM_TAB_BAR [data-tab="'+id+'"]');
|
| 602 |
+
if(btn) btn.classList.add('on');
|
| 603 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 604 |
|
| 605 |
+
/* ── 이벤트 바인딩 ── */
|
| 606 |
+
function bindEvents(){
|
| 607 |
+
/* 탭 */
|
| 608 |
+
var tabBar=$('WM_TAB_BAR');
|
| 609 |
+
if(tabBar){
|
| 610 |
+
tabBar.addEventListener('click',function(e){
|
| 611 |
+
var tab=e.target.closest('[data-tab]');
|
| 612 |
+
if(tab) showTab(tab.getAttribute('data-tab'));
|
| 613 |
+
});
|
| 614 |
+
}
|
| 615 |
+
/* 다크모드 */
|
| 616 |
+
var darkBtn=$('WM_DARK_BTN');
|
| 617 |
+
if(darkBtn){
|
| 618 |
+
darkBtn.addEventListener('click',function(){
|
| 619 |
+
document.body.classList.toggle('dark');
|
| 620 |
+
var isDark=document.body.classList.contains('dark');
|
| 621 |
+
localStorage.setItem('wm-dark',isDark);
|
| 622 |
+
darkBtn.textContent=isDark?'☀️ Light':'🌙 Dark';
|
| 623 |
+
});
|
| 624 |
+
}
|
| 625 |
+
/* 다크모드 복원 */
|
| 626 |
+
if(localStorage.getItem('wm-dark')==='true'){
|
| 627 |
+
document.body.classList.add('dark');
|
| 628 |
+
var b=$('WM_DARK_BTN'); if(b) b.textContent='☀️ Light';
|
| 629 |
+
}
|
| 630 |
+
}
|
| 631 |
|
| 632 |
+
/* ── 초기화 (DOM 주입 후 안전하게 실행) ── */
|
| 633 |
+
function init(){
|
| 634 |
+
renderLB();
|
| 635 |
+
renderBars();
|
| 636 |
+
renderCatTable();
|
| 637 |
+
bindEvents();
|
| 638 |
+
}
|
| 639 |
|
| 640 |
+
/* Gradio gr.HTML()은 DOMContentLoaded 이후에 주입되므로 즉시 실행 */
|
| 641 |
+
if(document.readyState==='loading'){
|
| 642 |
+
document.addEventListener('DOMContentLoaded', init);
|
| 643 |
+
} else {
|
| 644 |
+
init();
|
| 645 |
+
}
|
| 646 |
+
})();
|
| 647 |
</script>
|
| 648 |
</body>
|
| 649 |
</html>
|