Agenten commited on
Commit
60fb439
Β·
verified Β·
1 Parent(s): b9fa7d1

Upload 2 files

Browse files
Files changed (2) hide show
  1. README.md +199 -0
  2. index.html +563 -0
README.md ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: World Model Registry
3
+ emoji: 🌐
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: static
7
+ pinned: false
8
+ ---
9
+
10
+ # World Model Registry
11
+
12
+ ### Interactive registry for world models, world action models and Physical AI
13
+
14
+ **World Model Registry** is a data-driven Hugging Face Space for exploring and comparing world models across:
15
+
16
+ - world-model type
17
+ - architecture
18
+ - modalities
19
+ - action conditioning
20
+ - interactivity
21
+ - prediction target
22
+ - planning support
23
+ - control support
24
+ - robotics
25
+ - Physical AI
26
+ - simulation
27
+ - synthetic-data generation
28
+ - parameter count
29
+ - access status
30
+ - license
31
+ - commercial-use status
32
+ - base model
33
+ - associated paper
34
+ - verification date
35
+
36
+ The Space reads from:
37
+
38
+ **`world-models/world-model-registry`**
39
+
40
+ > **Not every predictive video model is the same kind of world model.**
41
+
42
+ The registry therefore distinguishes between categories such as:
43
+
44
+ ```text
45
+ World Foundation Model
46
+ World Action Model
47
+ Interactive World Model
48
+ Planning World Model
49
+ Action-Conditioned Video World Model
50
+ Predictive Representation / World-Model Backbone
51
+ ```
52
+
53
+ ---
54
+
55
+ ## What the Space provides
56
+
57
+ ### Registry filters
58
+
59
+ Filter by:
60
+
61
+ - world-model type
62
+ - architecture
63
+ - modality
64
+ - domain
65
+ - action-conditioned
66
+ - interactive
67
+ - planning support
68
+ - control support
69
+ - robotics
70
+ - Physical AI
71
+ - simulation
72
+ - access status
73
+ - license
74
+ - maximum parameter count
75
+
76
+ ### Compact detail view
77
+
78
+ Each model has a focused detail panel containing:
79
+
80
+ - taxonomy
81
+ - modalities
82
+ - domains
83
+ - prediction targets
84
+ - action-conditioning
85
+ - planning and control support
86
+ - robotics / Physical AI relevance
87
+ - simulation support
88
+ - parameter count
89
+ - access status
90
+ - license
91
+ - commercial-use status
92
+ - base model
93
+ - paper
94
+ - source links
95
+ - verification date
96
+ - registry notes
97
+
98
+ ### Direct model comparison
99
+
100
+ Select two models and compare their world-model characteristics side by side.
101
+
102
+ Differences are highlighted.
103
+
104
+ The interface does **not** rank models and does not select a winner.
105
+
106
+ ---
107
+
108
+ ## Dataset
109
+
110
+ Primary data source:
111
+
112
+ `world-models/world-model-registry`
113
+
114
+ The Space attempts to load the latest:
115
+
116
+ `data/train.jsonl`
117
+
118
+ directly from the dataset repository.
119
+
120
+ A small embedded fallback snapshot is included so the Space remains usable if live loading temporarily fails.
121
+
122
+ ---
123
+
124
+ ## Classification principles
125
+
126
+ ```text
127
+ USE THE MODEL CARD
128
+ LINK THE SOURCE
129
+ SEPARATE DOCUMENTED FACTS FROM INTERPRETATION
130
+ MARK GAPS INSTEAD OF GUESSING
131
+ ```
132
+
133
+ ---
134
+
135
+ ## Important taxonomy note
136
+
137
+ World-model terminology is not fully standardized.
138
+
139
+ For example:
140
+
141
+ - a world foundation model may be broad and generative;
142
+ - a world action model may connect prediction with action generation;
143
+ - an interactive world model may support closed-loop control;
144
+ - a predictive representation model may model latent dynamics without acting as a full simulator.
145
+
146
+ The registry makes those distinctions explicit.
147
+
148
+ ---
149
+
150
+ ## Related World Models resources
151
+
152
+ - `world-models/world-models-explorer`
153
+ - `world-models/world-model-benchmark`
154
+ - `world-models/world-model-landscape`
155
+ - `world-models/world-model-registry`
156
+
157
+ ---
158
+
159
+ ## Collaboration & Partnerships
160
+
161
+ The **World Models** organization is open to collaboration with:
162
+
163
+ - world-model research teams
164
+ - robotics companies
165
+ - Physical AI companies
166
+ - autonomous-system developers
167
+ - simulation platforms
168
+ - research labs
169
+ - universities
170
+ - model developers
171
+ - infrastructure providers
172
+
173
+ Relevant areas include:
174
+
175
+ - registry contributions
176
+ - world-model taxonomy
177
+ - World Action Models
178
+ - interactive simulation
179
+ - planning
180
+ - control
181
+ - Physical AI
182
+ - robotics
183
+ - benchmarks
184
+ - dataset integration
185
+ - model metadata
186
+
187
+ ### Collaboration Contact
188
+
189
+ **agenten@magenta.de**
190
+
191
+ ---
192
+
193
+ ## Independence
194
+
195
+ This is an independent Hugging Face community Space.
196
+
197
+ It is not an official registry of Hugging Face, NVIDIA, Meta or any other model developer listed in the registry.
198
+
199
+ All model names and trademarks belong to their respective owners.
index.html ADDED
@@ -0,0 +1,563 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <meta name="description" content="Interactive world model registry for Physical AI, robotics, action-conditioned prediction, simulation and planning.">
7
+ <title>World Model Registry</title>
8
+ <style>
9
+ :root{
10
+ --bg:#f6f9fc;--panel:#fff;--text:#102033;--muted:#66788b;--line:#d9e3ec;
11
+ --blue:#2869f0;--cyan:#00a9d6;--violet:#6757e8;--green:#118a61;--amber:#9c6b08;
12
+ --diff:#fff8e7;
13
+ }
14
+ *{box-sizing:border-box}
15
+ html{scroll-behavior:smooth}
16
+ body{
17
+ margin:0;
18
+ background:
19
+ radial-gradient(circle at 10% 0,rgba(0,169,214,.11),transparent 28%),
20
+ radial-gradient(circle at 92% 0,rgba(103,87,232,.09),transparent 25%),
21
+ var(--bg);
22
+ color:var(--text);
23
+ font:14px/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
24
+ }
25
+ .wrap{max-width:1440px;margin:auto;padding:0 22px}
26
+ .hero{padding:52px 0 24px}
27
+ .hero-inner{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}
28
+ .kicker{
29
+ display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #cfe0eb;
30
+ border-radius:999px;background:#fff;color:#187d9c;font-size:10px;font-weight:900;
31
+ text-transform:uppercase;letter-spacing:.09em
32
+ }
33
+ h1{font-size:clamp(38px,6vw,68px);line-height:1;margin:15px 0 10px;letter-spacing:-.055em}
34
+ h2{font-size:25px;letter-spacing:-.03em;margin:0 0 6px}
35
+ .grad{
36
+ background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet));
37
+ background-clip:text;-webkit-background-clip:text;color:transparent
38
+ }
39
+ .subtitle{max-width:850px;color:var(--muted);font-size:17px}
40
+ .sourcebox{
41
+ min-width:270px;border:1px solid var(--line);border-radius:15px;background:#ffffffd9;
42
+ padding:13px 15px;box-shadow:0 12px 32px rgba(40,70,100,.06)
43
+ }
44
+ .sourcebox b{display:block;font-size:11px} .sourcebox span{font-size:11px;color:var(--muted)}
45
+ .status{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:10px;font-weight:800}
46
+ .dot{width:8px;height:8px;border-radius:50%;background:#7f8c99}
47
+ .dot.live{background:var(--green)} .dot.fallback{background:var(--amber)}
48
+
49
+ .navtabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
50
+ .navtabs a{
51
+ text-decoration:none;color:var(--text);font-size:11px;font-weight:900;padding:9px 13px;
52
+ border:1px solid var(--line);background:#fff;border-radius:999px
53
+ }
54
+ .navtabs a:hover{border-color:var(--blue)}
55
+
56
+ .panel{
57
+ border:1px solid var(--line);border-radius:18px;background:#ffffffec;
58
+ padding:16px;box-shadow:0 16px 38px rgba(42,76,105,.07)
59
+ }
60
+ .section{margin-bottom:18px}
61
+ .compare-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:14px}
62
+ .compare-head p{margin:0;color:var(--muted);max-width:760px;font-size:12px}
63
+ .compare-controls{display:grid;grid-template-columns:1fr auto 1fr auto;gap:10px;align-items:end}
64
+ .field label{
65
+ display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;
66
+ color:#708296;margin:0 0 5px 2px
67
+ }
68
+ input,select{
69
+ width:100%;border:1px solid #cfdbe5;background:white;border-radius:10px;
70
+ padding:10px 11px;color:var(--text);font:inherit;outline:none
71
+ }
72
+ input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,169,214,.09)}
73
+ button{
74
+ border:1px solid #cbd8e3;background:white;border-radius:10px;padding:10px 12px;
75
+ cursor:pointer;font-size:11px;font-weight:900;color:var(--text);white-space:nowrap
76
+ }
77
+ button:hover{border-color:var(--blue)}
78
+ .primary{background:linear-gradient(90deg,var(--blue),var(--violet));color:#fff;border-color:transparent}
79
+
80
+ .compare-grid{
81
+ display:grid;grid-template-columns:220px 1fr 1fr;border:1px solid var(--line);
82
+ border-radius:16px;overflow:hidden;margin-top:14px
83
+ }
84
+ .ccell{
85
+ padding:11px 12px;border-bottom:1px solid #edf2f6;border-right:1px solid #edf2f6;
86
+ background:#fff;min-width:0
87
+ }
88
+ .ccell:nth-child(3n){border-right:0}
89
+ .labelcell{
90
+ background:#f7fafc;font-size:9px;font-weight:900;text-transform:uppercase;
91
+ letter-spacing:.075em;color:#718397
92
+ }
93
+ .modelhead{padding:15px 12px;background:#fbfdff}
94
+ .modelhead b{display:block;font-size:14px} .modelhead small{display:block;color:var(--muted);margin-top:2px}
95
+ .diff{background:var(--diff)}
96
+
97
+ .badge{
98
+ display:inline-block;padding:4px 7px;border:1px solid #d1dee8;border-radius:999px;
99
+ background:#f8fbfd;font-size:9px;font-weight:800;margin:1px 2px 1px 0;white-space:nowrap
100
+ }
101
+ .badge.yes{color:var(--green);border-color:#bae5d4;background:#f1fbf7}
102
+ .badge.no{color:#7b8794}
103
+ .badge.public{color:var(--green);border-color:#bae5d4;background:#f1fbf7}
104
+ .badge.gated{color:#9a6808;border-color:#ead7a8;background:#fffaf0}
105
+
106
+ .filters{margin-top:18px}
107
+ .filter-grid{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:10px}
108
+ .filter-grid-2{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:10px}
109
+ .range-row{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
110
+ .controls{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px}
111
+ .stats{color:var(--muted);font-size:12px} .stats strong{color:var(--text)}
112
+
113
+ .registry{margin:16px 0 56px}
114
+ .table-wrap{
115
+ overflow:auto;border:1px solid var(--line);border-radius:18px;background:white;
116
+ box-shadow:0 16px 38px rgba(42,76,105,.07)
117
+ }
118
+ table{width:100%;border-collapse:collapse;min-width:1450px}
119
+ thead th{
120
+ position:sticky;top:0;z-index:3;background:#f7fafc;font-size:9px;text-transform:uppercase;
121
+ letter-spacing:.075em;color:#718397;text-align:left;padding:11px 10px;border-bottom:1px solid var(--line)
122
+ }
123
+ tbody td{padding:11px 10px;border-bottom:1px solid #edf2f6;vertical-align:top;font-size:11px}
124
+ tbody tr:hover{background:#fbfdff}
125
+ .repo a{font-weight:900;color:#1e5ec8;text-decoration:none}
126
+ .repo small{display:block;color:var(--muted);margin-top:3px}
127
+ .num{font-variant-numeric:tabular-nums;font-weight:800}
128
+ .empty{
129
+ text-align:center;padding:48px;color:var(--muted);border:1px solid var(--line);
130
+ border-radius:18px;background:white
131
+ }
132
+
133
+ .detail-shell{
134
+ margin-top:18px;border:1px solid var(--line);border-radius:18px;background:#ffffffec;
135
+ box-shadow:0 16px 38px rgba(42,76,105,.07);overflow:hidden
136
+ }
137
+ .detail-shell[hidden]{display:none}
138
+ .detail-top{
139
+ display:flex;justify-content:space-between;gap:16px;align-items:flex-start;
140
+ padding:18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfdff,#fff)
141
+ }
142
+ .detail-kicker{
143
+ font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.085em;
144
+ color:#718397;margin-bottom:4px
145
+ }
146
+ .detail-title{font-size:23px;line-height:1.15;font-weight:900;letter-spacing:-.03em;overflow-wrap:anywhere}
147
+ .detail-sub{color:var(--muted);margin-top:5px;font-size:11px}
148
+ .detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
149
+ .detail-actions button,.detail-actions a{
150
+ border:1px solid #cbd8e3;background:#fff;border-radius:999px;padding:8px 11px;
151
+ cursor:pointer;font-size:10px;font-weight:900;color:var(--text);text-decoration:none;white-space:nowrap
152
+ }
153
+ .detail-actions .primary-link{background:linear-gradient(90deg,var(--blue),var(--violet));color:#fff;border-color:transparent}
154
+ .detail-body{padding:16px 18px 18px}
155
+ .detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:13px}
156
+ .detail-stat{border:1px solid #d9e4ec;border-radius:12px;background:#fbfdff;padding:10px}
157
+ .detail-stat span{
158
+ display:block;color:#718397;font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:900
159
+ }
160
+ .detail-stat b{display:block;margin-top:3px;font-size:12px;overflow-wrap:anywhere}
161
+ .detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
162
+ .detail-field{border:1px solid #e1e8ef;border-radius:11px;padding:10px;background:#fff}
163
+ .detail-field .dlabel{
164
+ color:#718397;font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;margin-bottom:4px
165
+ }
166
+ .detail-field .dvalue{font-size:11px;overflow-wrap:anywhere}
167
+ .detail-notes{margin-top:11px;border:1px solid #dce7ef;border-radius:12px;background:#f9fcff;padding:11px}
168
+ .detail-notes b{display:block;font-size:10px;margin-bottom:4px} .detail-notes div{font-size:10px;color:var(--muted)}
169
+ .detail-sources{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
170
+ .detail-sources a{
171
+ font-size:9px;font-weight:800;color:#1e5ec8;text-decoration:none;border:1px solid #d3e0ea;
172
+ border-radius:999px;padding:5px 7px;background:white
173
+ }
174
+ .detail-btn{
175
+ border:1px solid #cbd8e3;background:#fff;border-radius:999px;padding:6px 9px;
176
+ cursor:pointer;font-size:9px;font-weight:900;color:var(--text)
177
+ }
178
+ .note{
179
+ margin-top:14px;border:1px solid #e5dcbf;border-radius:13px;background:#fffdf5;
180
+ padding:12px 14px;color:#75643b;font-size:11px
181
+ }
182
+ footer{border-top:1px solid var(--line);padding:28px 0 42px;color:var(--muted);font-size:12px}
183
+ footer strong{color:var(--text)}
184
+
185
+ @media(max-width:1100px){
186
+ .hero-inner{display:block} .sourcebox{margin-top:16px;max-width:360px}
187
+ .filter-grid{grid-template-columns:repeat(3,1fr)} .filter-grid-2{grid-template-columns:repeat(3,1fr)}
188
+ .compare-controls{grid-template-columns:1fr 1fr} .compare-controls button{width:100%}
189
+ }
190
+ @media(max-width:760px){
191
+ .compare-grid{grid-template-columns:110px minmax(260px,1fr) minmax(260px,1fr);overflow:auto}
192
+ .compare-head{display:block} .compare-head p{margin-top:6px}
193
+ .detail-summary{grid-template-columns:repeat(2,1fr)} .detail-top{display:block}
194
+ .detail-actions{justify-content:flex-start;margin-top:12px}
195
+ }
196
+ @media(max-width:650px){
197
+ .filter-grid,.filter-grid-2{grid-template-columns:1fr 1fr}
198
+ .controls{align-items:flex-start;flex-direction:column}
199
+ .detail-summary,.detail-grid{grid-template-columns:1fr}
200
+ }
201
+ </style>
202
+ </head>
203
+ <body>
204
+
205
+ <header class="hero">
206
+ <div class="wrap hero-inner">
207
+ <div>
208
+ <span class="kicker">World Models Β· Physical AI Β· Robotics Β· Simulation</span>
209
+ <h1>World Model <span class="grad">Registry</span></h1>
210
+ <div class="subtitle">
211
+ Explore and compare world foundation models, world action models, interactive simulators,
212
+ planning world models and predictive world-model backbones.
213
+ </div>
214
+ </div>
215
+ <div class="sourcebox">
216
+ <b>Dataset source</b>
217
+ <span>world-models/world-model-registry</span>
218
+ <div class="status"><span class="dot" id="statusDot"></span><span id="statusText">Loading registry…</span></div>
219
+ </div>
220
+ </div>
221
+ </header>
222
+
223
+ <main class="wrap">
224
+ <nav class="navtabs">
225
+ <a href="#compare">Direct comparison</a>
226
+ <a href="#registry">Registry</a>
227
+ </nav>
228
+
229
+ <section class="panel section" id="compare">
230
+ <div class="compare-head">
231
+ <div>
232
+ <h2>Direct World Model Comparison</h2>
233
+ <p>Select two registry entries and inspect their taxonomy, action conditioning, planning, control, simulation and Physical AI characteristics side by side.</p>
234
+ </div>
235
+ </div>
236
+
237
+ <div class="compare-controls">
238
+ <div class="field"><label>Model A</label><select id="modelA"></select></div>
239
+ <button id="swap">⇄ Swap</button>
240
+ <div class="field"><label>Model B</label><select id="modelB"></select></div>
241
+ <button class="primary" id="copyLink">Copy comparison link</button>
242
+ </div>
243
+
244
+ <div class="compare-grid" id="compareGrid"></div>
245
+ </section>
246
+
247
+ <section class="detail-shell section" id="modelDetail" hidden>
248
+ <div class="detail-top">
249
+ <div>
250
+ <div class="detail-kicker">Compact world-model detail</div>
251
+ <div class="detail-title" id="detailTitle">Model</div>
252
+ <div class="detail-sub" id="detailSub"></div>
253
+ </div>
254
+ <div class="detail-actions">
255
+ <button id="detailToA">Use as Model A</button>
256
+ <button id="detailToB">Use as Model B</button>
257
+ <a id="detailRepo" class="primary-link" href="#" target="_blank" rel="noopener">Open repository</a>
258
+ <button id="detailClose">Close</button>
259
+ </div>
260
+ </div>
261
+ <div class="detail-body">
262
+ <div class="detail-summary" id="detailSummary"></div>
263
+ <div class="detail-grid" id="detailGrid"></div>
264
+ <div class="detail-notes">
265
+ <b>Registry note</b>
266
+ <div id="detailNotes">β€”</div>
267
+ <div class="detail-sources" id="detailSources"></div>
268
+ </div>
269
+ </div>
270
+ </section>
271
+
272
+ <section class="panel filters section" id="registry">
273
+ <div class="filter-grid">
274
+ <div class="field"><label>Search</label><input id="q" type="search" placeholder="Model, organization, type…"></div>
275
+ <div class="field"><label>World-model type</label><select id="type"><option value="">All types</option></select></div>
276
+ <div class="field"><label>Architecture</label><select id="arch"><option value="">All architectures</option></select></div>
277
+ <div class="field"><label>Modality</label><select id="modality"><option value="">All modalities</option></select></div>
278
+ <div class="field"><label>Domain</label><select id="domain"><option value="">All domains</option></select></div>
279
+ <div class="field"><label>Access</label><select id="access"><option value="">All access</option></select></div>
280
+ </div>
281
+
282
+ <div class="filter-grid-2">
283
+ <div class="field"><label>Action conditioned</label><select id="action"><option value="">Any</option><option value="true">Yes</option><option value="false">No</option></select></div>
284
+ <div class="field"><label>Interactive</label><select id="interactive"><option value="">Any</option><option value="true">Yes</option><option value="false">No</option></select></div>
285
+ <div class="field"><label>Planning</label><select id="planning"><option value="">Any</option><option value="true">Yes</option><option value="false">No</option></select></div>
286
+ <div class="field"><label>Control</label><select id="control"><option value="">Any</option><option value="true">Yes</option><option value="false">No</option></select></div>
287
+ <div class="field"><label>Physical AI</label><select id="physical"><option value="">Any</option><option value="true">Yes</option><option value="false">No</option></select></div>
288
+ <div class="field"><label>Simulation</label><select id="simulation"><option value="">Any</option><option value="true">Yes</option><option value="false">No</option></select></div>
289
+ </div>
290
+
291
+ <div class="range-row">
292
+ <div class="field"><label>Maximum parameter count (B)</label><input id="maxParams" type="number" min="0" step="1" placeholder="e.g. 5"></div>
293
+ </div>
294
+
295
+ <div class="controls">
296
+ <div class="stats"><strong id="count">0</strong> models shown Β· registry verified <strong id="verified">β€”</strong></div>
297
+ <button id="reset">Reset filters</button>
298
+ </div>
299
+
300
+ <div class="note">
301
+ World-model taxonomy is still evolving. Registry fields are source-linked descriptive metadata, not performance rankings.
302
+ </div>
303
+ </section>
304
+
305
+ <section class="registry">
306
+ <div class="table-wrap" id="tableWrap">
307
+ <table>
308
+ <thead>
309
+ <tr>
310
+ <th>Model</th><th>Type</th><th>Modalities</th><th>Domain</th>
311
+ <th>Action</th><th>Interactive</th><th>Planning</th><th>Control</th>
312
+ <th>Physical AI</th><th>Simulation</th><th>Params</th><th>Access</th><th>License</th><th>Verified</th><th>Details</th>
313
+ </tr>
314
+ </thead>
315
+ <tbody id="rows"></tbody>
316
+ </table>
317
+ </div>
318
+ <div class="empty" id="empty" hidden>No models match the current filters.</div>
319
+ </section>
320
+ </main>
321
+
322
+ <footer>
323
+ <div class="wrap">
324
+ <strong>World Model Registry</strong> β€” independent community registry.<br>
325
+ Collaboration: <strong>agenten@magenta.de</strong>
326
+ </div>
327
+ </footer>
328
+
329
+ <script>
330
+ const DATASET_URL="https://huggingface.co/datasets/world-models/world-model-registry/resolve/main/data/train.jsonl?download=true";
331
+ const fallback=[{"repo_id": "nvidia/Cosmos-Predict2-2B-Video2World", "organization": "nvidia", "model_name": "Cosmos-Predict2-2B-Video2World", "world_model_type": "world foundation model", "architecture_family": "latent video diffusion transformer", "modalities": ["text", "image", "video"], "domain": ["physical-ai", "world-generation"], "action_conditioned": false, "interactive": false, "prediction_target": ["future video frames", "world states"], "planning_support": false, "control_support": false, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": true, "parameter_count_b": 2.0, "weights_available": true, "access_status": "gated", "license": "nvidia-open-model-license", "commercial_use": "permitted_by_license", "base_model": null, "paper_id": null, "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/nvidia/Cosmos-Predict2-2B-Video2World"], "notes": "NVIDIA describes Cosmos-Predict2 as a world foundation model family for physics-aware world generation and Physical AI."}, {"repo_id": "nvidia/Cosmos-Predict2-14B-Video2World", "organization": "nvidia", "model_name": "Cosmos-Predict2-14B-Video2World", "world_model_type": "world foundation model", "architecture_family": "latent video diffusion transformer", "modalities": ["text", "image", "video"], "domain": ["physical-ai", "world-generation"], "action_conditioned": false, "interactive": false, "prediction_target": ["future video frames", "world states"], "planning_support": false, "control_support": false, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": true, "parameter_count_b": 14.0, "weights_available": true, "access_status": "gated", "license": "nvidia-open-model-license", "commercial_use": "permitted_by_license", "base_model": null, "paper_id": null, "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/nvidia/Cosmos-Predict2-14B-Video2World"], "notes": "Larger Cosmos Predict-2 Video2World checkpoint for higher-fidelity world generation."}, {"repo_id": "nvidia/Cosmos-Policy-LIBERO-Predict2-2B", "organization": "nvidia", "model_name": "Cosmos-Policy-LIBERO-Predict2-2B", "world_model_type": "world action model / visuomotor policy", "architecture_family": "latent video diffusion transformer", "modalities": ["text", "multi-view image", "proprioception", "action"], "domain": ["robotics", "manipulation", "simulation"], "action_conditioned": true, "interactive": true, "prediction_target": ["actions", "future images", "future proprioception", "value"], "planning_support": true, "control_support": true, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": false, "parameter_count_b": 2.0, "weights_available": true, "access_status": "public", "license": "nvidia-one-way-noncommercial-license-nsclv1", "commercial_use": "not_permitted_without_custom_license", "base_model": "nvidia/Cosmos-Predict2-2B-Video2World", "paper_id": "2601.16163", "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/nvidia/Cosmos-Policy-LIBERO-Predict2-2B"], "notes": "Jointly predicts actions, future states and values for LIBERO robot manipulation tasks."}, {"repo_id": "nvidia/Cosmos-Policy-RoboCasa-Predict2-2B", "organization": "nvidia", "model_name": "Cosmos-Policy-RoboCasa-Predict2-2B", "world_model_type": "world action model / visuomotor policy", "architecture_family": "latent video diffusion transformer", "modalities": ["text", "multi-view image", "proprioception", "action"], "domain": ["robotics", "kitchen-manipulation", "simulation"], "action_conditioned": true, "interactive": true, "prediction_target": ["actions", "future images", "future proprioception", "value"], "planning_support": true, "control_support": true, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": false, "parameter_count_b": 2.0, "weights_available": true, "access_status": "public", "license": "nvidia-one-way-noncommercial-license-nsclv1", "commercial_use": "not_permitted_without_custom_license", "base_model": "nvidia/Cosmos-Predict2-2B-Video2World", "paper_id": "2601.16163", "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/nvidia/Cosmos-Policy-RoboCasa-Predict2-2B"], "notes": "Cosmos Policy checkpoint for RoboCasa kitchen manipulation, predicting actions, future state and value."}, {"repo_id": "nvidia/Cosmos-Policy-ALOHA-Planning-Model-Predict2-2B", "organization": "nvidia", "model_name": "Cosmos-Policy-ALOHA-Planning-Model-Predict2-2B", "world_model_type": "planning world model", "architecture_family": "latent video diffusion transformer", "modalities": ["text", "multi-view image", "proprioception", "action"], "domain": ["robotics", "bimanual-manipulation", "real-world"], "action_conditioned": true, "interactive": true, "prediction_target": ["future images", "future proprioception", "value"], "planning_support": true, "control_support": true, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": false, "parameter_count_b": 2.0, "weights_available": true, "access_status": "public", "license": "nvidia-one-way-noncommercial-license-nsclv1", "commercial_use": "not_permitted_without_custom_license", "base_model": "nvidia/Cosmos-Policy-ALOHA-Predict2-2B", "paper_id": "2601.16163", "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/nvidia/Cosmos-Policy-ALOHA-Planning-Model-Predict2-2B"], "notes": "Refined world-model and value checkpoint for best-of-N model-based planning on real ALOHA manipulation tasks."}, {"repo_id": "nvidia/Cosmos-H-Dreams", "organization": "nvidia", "model_name": "Cosmos-H-Dreams", "world_model_type": "interactive world model", "architecture_family": "causal latent video diffusion transformer", "modalities": ["image", "robot kinematics", "video"], "domain": ["surgical-robotics", "interactive-simulation", "healthcare"], "action_conditioned": true, "interactive": true, "prediction_target": ["future video frames"], "planning_support": true, "control_support": true, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": true, "parameter_count_b": 2.0, "weights_available": true, "access_status": "public", "license": "nvidia-open-model-license", "commercial_use": "permitted_by_license", "base_model": "nvidia/Cosmos-Predict2.5-2B-Video2World", "paper_id": "2511.00062", "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/nvidia/Cosmos-H-Dreams"], "notes": "Real-time action-conditioned surgical world model for interactive simulation and policy evaluation."}, {"repo_id": "sii-research/tau-0-wm", "organization": "sii-research", "model_name": "tau-0-wm", "world_model_type": "unified video-action world model", "architecture_family": "video diffusion backbone", "modalities": ["multi-view video", "language", "robot state", "action"], "domain": ["robotics", "manipulation", "real-world"], "action_conditioned": true, "interactive": true, "prediction_target": ["future visual latents", "continuous actions", "task-progress value"], "planning_support": true, "control_support": true, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": false, "parameter_count_b": null, "weights_available": true, "access_status": "public", "license": "apache-2.0", "commercial_use": "permitted_by_license", "base_model": "Wan-2.2 video diffusion backbone", "paper_id": "2606.01027", "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/sii-research/tau-0-wm", "https://huggingface.co/papers/2606.01027"], "notes": "Unified Video Action Model plus action-conditioned simulator for robotic manipulation."}, {"repo_id": "Fleurrr/A2World-World-Model", "organization": "Fleurrr", "model_name": "A2World-World-Model", "world_model_type": "action-conditioned video world model", "architecture_family": "multi-view diffusion world model", "modalities": ["multi-view image", "robot action", "video"], "domain": ["robotics", "manipulation", "simulation"], "action_conditioned": true, "interactive": false, "prediction_target": ["future robot observations", "video rollout"], "planning_support": true, "control_support": false, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": false, "parameter_count_b": 2.0, "weights_available": true, "access_status": "public", "license": "nvidia-open-model-license", "commercial_use": "subject_to_nvidia_open_model_license", "base_model": "nvidia/Cosmos-Predict2-2B-Video2World", "paper_id": "2606.29501", "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/Fleurrr/A2World-World-Model", "https://huggingface.co/papers/2606.29501"], "notes": "Predicts future robot observations from initial camera observations and a 20-step action chunk; supports autoregressive rollout."}, {"repo_id": "BLM-Lab/Boundless-World-Model", "organization": "BLM-Lab", "model_name": "Boundless-World-Model", "world_model_type": "action-conditioned video world model", "architecture_family": "DiT + action encoder", "modalities": ["video", "robot action"], "domain": ["robotics", "manipulation"], "action_conditioned": true, "interactive": false, "prediction_target": ["future video frames"], "planning_support": false, "control_support": false, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": true, "synthetic_data": false, "parameter_count_b": 5.0, "weights_available": true, "access_status": "public", "license": "not_documented_on_hf_model_card", "commercial_use": "unknown", "base_model": "Wan-AI/Wan2.2-TI2V-5B", "paper_id": null, "verification_status": "verified_with_license_gap", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/BLM-Lab/Boundless-World-Model"], "notes": "Physically consistent action-conditioned video world model; license was not displayed on the Hugging Face model card at verification time."}, {"repo_id": "facebook/vjepa2-vitg-fpc64-384", "organization": "facebook", "model_name": "V-JEPA 2 ViT-g 384", "world_model_type": "predictive representation / world-model backbone", "architecture_family": "joint-embedding predictive architecture", "modalities": ["video", "image"], "domain": ["video-understanding", "physical-world-representation"], "action_conditioned": false, "interactive": false, "prediction_target": ["latent video representations"], "planning_support": false, "control_support": false, "robotics": true, "physical_ai": true, "spatial_reasoning": true, "simulation": false, "synthetic_data": false, "parameter_count_b": 1.0, "weights_available": true, "access_status": "public", "license": "apache-2.0", "commercial_use": "permitted_by_license", "base_model": null, "paper_id": "2506.09985", "verification_status": "verified", "last_verified": "2026-09-24", "source_urls": ["https://huggingface.co/facebook/vjepa2-vitg-fpc64-384", "https://huggingface.co/papers/2506.09985"], "notes": "Base V-JEPA 2 checkpoint is action-free; the associated research post-trains V-JEPA 2-AC as an action-conditioned world model for robotic planning."}];
332
+
333
+ let data=[];
334
+ const $=id=>document.getElementById(id);
335
+ const els={
336
+ modelA:$("modelA"),modelB:$("modelB"),swap:$("swap"),copyLink:$("copyLink"),compareGrid:$("compareGrid"),
337
+ q:$("q"),type:$("type"),arch:$("arch"),modality:$("modality"),domain:$("domain"),access:$("access"),
338
+ action:$("action"),interactive:$("interactive"),planning:$("planning"),control:$("control"),physical:$("physical"),simulation:$("simulation"),
339
+ maxParams:$("maxParams"),rows:$("rows"),count:$("count"),verified:$("verified"),empty:$("empty"),tableWrap:$("tableWrap"),
340
+ reset:$("reset"),statusDot:$("statusDot"),statusText:$("statusText"),
341
+ modelDetail:$("modelDetail"),detailTitle:$("detailTitle"),detailSub:$("detailSub"),detailSummary:$("detailSummary"),
342
+ detailGrid:$("detailGrid"),detailNotes:$("detailNotes"),detailSources:$("detailSources"),detailRepo:$("detailRepo"),
343
+ detailToA:$("detailToA"),detailToB:$("detailToB"),detailClose:$("detailClose")
344
+ };
345
+
346
+ function esc(v){return String(v??"β€”").replace(/[&<>"']/g,c=>({"&":"&amp;","<":"&lt;",">":"&gt;","\"":"&quot;","'":"&#039;"}[c]))}
347
+ function arr(v){return Array.isArray(v)?v:(v?[v]:[])}
348
+ function uniq(a){return [...new Set(a.filter(Boolean))].sort((a,b)=>String(a).localeCompare(String(b)))}
349
+ function fillSelect(el,values,first=null){
350
+ el.innerHTML=(first!==null?`<option value="">${esc(first)}</option>`:"")+values.map(v=>`<option value="${esc(v)}">${esc(v)}</option>`).join("");
351
+ }
352
+ function boolBadge(v){return `<span class="badge ${v?"yes":"no"}">${v?"Yes":"No"}</span>`}
353
+ function n(v){return v==null?"β€”":Number(v).toLocaleString("en-US",{maximumFractionDigits:1})}
354
+ function pretty(v){return v==null||v===""?"β€”":String(v).replaceAll("_"," ")}
355
+ function same(a,b){
356
+ const norm=v=>Array.isArray(v)?JSON.stringify([...v].sort()):String(v??"");
357
+ return norm(a)===norm(b);
358
+ }
359
+
360
+ function init(){
361
+ const options=data.map(x=>({value:x.repo_id,label:`${x.model_name} β€” ${x.organization}`}));
362
+ els.modelA.innerHTML=options.map(o=>`<option value="${esc(o.value)}">${esc(o.label)}</option>`).join("");
363
+ els.modelB.innerHTML=els.modelA.innerHTML;
364
+
365
+ const p=new URLSearchParams(location.search);
366
+ const qa=p.get("a"),qb=p.get("b");
367
+ els.modelA.value=data.some(x=>x.repo_id===qa)?qa:data[0]?.repo_id||"";
368
+ els.modelB.value=data.some(x=>x.repo_id===qb)?qb:data[Math.min(1,data.length-1)]?.repo_id||"";
369
+
370
+ fillSelect(els.type,uniq(data.map(x=>x.world_model_type)),"All types");
371
+ fillSelect(els.arch,uniq(data.map(x=>x.architecture_family)),"All architectures");
372
+ fillSelect(els.modality,uniq(data.flatMap(x=>arr(x.modalities))),"All modalities");
373
+ fillSelect(els.domain,uniq(data.flatMap(x=>arr(x.domain))),"All domains");
374
+ fillSelect(els.access,uniq(data.map(x=>x.access_status)),"All access");
375
+ els.verified.textContent=uniq(data.map(x=>x.last_verified)).slice(-1)[0]||"β€”";
376
+
377
+ renderCompare();
378
+ renderRegistry();
379
+ }
380
+
381
+ const compareFields=[
382
+ ["Repository","repo_id",x=>`<a href="https://huggingface.co/${encodeURI(x.repo_id)}" target="_blank" rel="noopener">${esc(x.repo_id)}</a>`],
383
+ ["World-model type","world_model_type",x=>esc(x.world_model_type)],
384
+ ["Architecture","architecture_family",x=>esc(x.architecture_family)],
385
+ ["Modalities","modalities",x=>arr(x.modalities).map(v=>`<span class="badge">${esc(v)}</span>`).join("")||"β€”"],
386
+ ["Domains","domain",x=>arr(x.domain).map(v=>`<span class="badge">${esc(v)}</span>`).join("")||"β€”"],
387
+ ["Prediction target","prediction_target",x=>arr(x.prediction_target).map(v=>`<span class="badge">${esc(v)}</span>`).join("")||"β€”"],
388
+ ["Action-conditioned","action_conditioned",x=>boolBadge(x.action_conditioned)],
389
+ ["Interactive","interactive",x=>boolBadge(x.interactive)],
390
+ ["Planning support","planning_support",x=>boolBadge(x.planning_support)],
391
+ ["Control support","control_support",x=>boolBadge(x.control_support)],
392
+ ["Robotics","robotics",x=>boolBadge(x.robotics)],
393
+ ["Physical AI","physical_ai",x=>boolBadge(x.physical_ai)],
394
+ ["Spatial reasoning","spatial_reasoning",x=>boolBadge(x.spatial_reasoning)],
395
+ ["Simulation","simulation",x=>boolBadge(x.simulation)],
396
+ ["Synthetic data","synthetic_data",x=>boolBadge(x.synthetic_data)],
397
+ ["Parameters","parameter_count_b",x=>x.parameter_count_b==null?"β€”":`${n(x.parameter_count_b)}B`],
398
+ ["Access","access_status",x=>`<span class="badge ${x.access_status==="public"?"public":"gated"}">${esc(x.access_status)}</span>`],
399
+ ["License","license",x=>esc(x.license)],
400
+ ["Commercial use","commercial_use",x=>esc(pretty(x.commercial_use))],
401
+ ["Base model","base_model",x=>esc(x.base_model||"β€”")],
402
+ ["Paper","paper_id",x=>x.paper_id?`<a href="https://huggingface.co/papers/${encodeURIComponent(x.paper_id)}" target="_blank" rel="noopener">${esc(x.paper_id)}</a>`:"β€”"],
403
+ ["Last verified","last_verified",x=>esc(x.last_verified)]
404
+ ];
405
+
406
+ function renderCompare(){
407
+ const a=data.find(x=>x.repo_id===els.modelA.value)||data[0];
408
+ const b=data.find(x=>x.repo_id===els.modelB.value)||data[1]||data[0];
409
+ if(!a||!b)return;
410
+
411
+ const head=`<div class="ccell labelcell modelhead">Field</div>
412
+ <div class="ccell modelhead"><b>${esc(a.model_name)}</b><small>${esc(a.organization)} Β· ${esc(a.world_model_type)}</small></div>
413
+ <div class="ccell modelhead"><b>${esc(b.model_name)}</b><small>${esc(b.organization)} Β· ${esc(b.world_model_type)}</small></div>`;
414
+
415
+ const rows=compareFields.map(([label,key,fmt])=>{
416
+ const diff=!same(a[key],b[key]);
417
+ return `<div class="ccell labelcell">${esc(label)}</div>
418
+ <div class="ccell ${diff?"diff":""}">${fmt(a)}</div>
419
+ <div class="ccell ${diff?"diff":""}">${fmt(b)}</div>`;
420
+ }).join("");
421
+
422
+ els.compareGrid.innerHTML=head+rows;
423
+ const url=new URL(location.href);
424
+ url.searchParams.set("a",a.repo_id); url.searchParams.set("b",b.repo_id);
425
+ history.replaceState(null,"",url);
426
+ }
427
+
428
+ let detailRepoId=null;
429
+ function openDetail(repoId,scroll=true){
430
+ const x=data.find(m=>m.repo_id===repoId);
431
+ if(!x)return;
432
+ detailRepoId=x.repo_id;
433
+ els.detailTitle.textContent=x.model_name||x.repo_id;
434
+ els.detailSub.textContent=`${x.organization||"β€”"} Β· ${x.world_model_type||"β€”"} Β· ${x.repo_id}`;
435
+ els.detailRepo.href=`https://huggingface.co/${encodeURI(x.repo_id)}`;
436
+
437
+ els.detailSummary.innerHTML=[
438
+ ["Type",esc(x.world_model_type)],
439
+ ["Action-conditioned",boolBadge(x.action_conditioned)],
440
+ ["Interactive",boolBadge(x.interactive)],
441
+ ["Physical AI",boolBadge(x.physical_ai)]
442
+ ].map(([k,v])=>`<div class="detail-stat"><span>${esc(k)}</span><b>${v}</b></div>`).join("");
443
+
444
+ const fields=[
445
+ ["Architecture",esc(x.architecture_family||"β€”")],
446
+ ["Modalities",arr(x.modalities).map(v=>`<span class="badge">${esc(v)}</span>`).join("")||"β€”"],
447
+ ["Domains",arr(x.domain).map(v=>`<span class="badge">${esc(v)}</span>`).join("")||"β€”"],
448
+ ["Prediction targets",arr(x.prediction_target).map(v=>`<span class="badge">${esc(v)}</span>`).join("")||"β€”"],
449
+ ["Planning support",boolBadge(x.planning_support)],
450
+ ["Control support",boolBadge(x.control_support)],
451
+ ["Robotics",boolBadge(x.robotics)],
452
+ ["Spatial reasoning",boolBadge(x.spatial_reasoning)],
453
+ ["Simulation",boolBadge(x.simulation)],
454
+ ["Synthetic data",boolBadge(x.synthetic_data)],
455
+ ["Parameters",x.parameter_count_b==null?"β€”":`${n(x.parameter_count_b)}B`],
456
+ ["Weights available",boolBadge(x.weights_available)],
457
+ ["Access",`<span class="badge ${x.access_status==="public"?"public":"gated"}">${esc(x.access_status||"β€”")}</span>`],
458
+ ["License",esc(x.license||"β€”")],
459
+ ["Commercial use",esc(pretty(x.commercial_use))],
460
+ ["Base model",esc(x.base_model||"β€”")],
461
+ ["Paper",x.paper_id?`<a href="https://huggingface.co/papers/${encodeURIComponent(x.paper_id)}" target="_blank" rel="noopener">${esc(x.paper_id)}</a>`:"β€”"],
462
+ ["Last verified",esc(x.last_verified||"β€”")]
463
+ ];
464
+ els.detailGrid.innerHTML=fields.map(([k,v])=>`<div class="detail-field"><div class="dlabel">${esc(k)}</div><div class="dvalue">${v}</div></div>`).join("");
465
+ els.detailNotes.textContent=x.notes||"No additional registry note.";
466
+ els.detailSources.innerHTML=arr(x.source_urls).map((u,j)=>`<a href="${esc(u)}" target="_blank" rel="noopener">Source ${j+1}</a>`).join("")||"<span>β€”</span>";
467
+
468
+ els.modelDetail.hidden=false;
469
+ if(scroll)els.modelDetail.scrollIntoView({behavior:"smooth",block:"start"});
470
+ }
471
+ function closeDetail(){els.modelDetail.hidden=true;detailRepoId=null}
472
+
473
+ function boolFilter(value,selected){
474
+ if(selected==="")return true;
475
+ return String(Boolean(value))===selected;
476
+ }
477
+
478
+ function renderRegistry(){
479
+ const q=els.q.value.trim().toLowerCase(),type=els.type.value,arch=els.arch.value,mod=els.modality.value,
480
+ dom=els.domain.value,acc=els.access.value,maxParams=Number(els.maxParams.value||Infinity);
481
+
482
+ const filtered=data.filter(x=>{
483
+ const hay=[x.repo_id,x.organization,x.model_name,x.world_model_type,x.architecture_family,x.license,...arr(x.domain),...arr(x.modalities),...arr(x.prediction_target)].join(" ").toLowerCase();
484
+ const p=x.parameter_count_b==null?0:Number(x.parameter_count_b);
485
+ return (!q||hay.includes(q))
486
+ &&(!type||x.world_model_type===type)
487
+ &&(!arch||x.architecture_family===arch)
488
+ &&(!mod||arr(x.modalities).includes(mod))
489
+ &&(!dom||arr(x.domain).includes(dom))
490
+ &&(!acc||x.access_status===acc)
491
+ &&boolFilter(x.action_conditioned,els.action.value)
492
+ &&boolFilter(x.interactive,els.interactive.value)
493
+ &&boolFilter(x.planning_support,els.planning.value)
494
+ &&boolFilter(x.control_support,els.control.value)
495
+ &&boolFilter(x.physical_ai,els.physical.value)
496
+ &&boolFilter(x.simulation,els.simulation.value)
497
+ &&p<=maxParams;
498
+ });
499
+
500
+ els.count.textContent=filtered.length;
501
+ els.empty.hidden=filtered.length>0; els.tableWrap.hidden=filtered.length===0;
502
+
503
+ els.rows.innerHTML=filtered.map(x=>`<tr>
504
+ <td class="repo"><a href="https://huggingface.co/${encodeURI(x.repo_id)}" target="_blank" rel="noopener">${esc(x.model_name)}</a><small>${esc(x.organization)} Β· ${esc(x.architecture_family)}</small></td>
505
+ <td>${esc(x.world_model_type)}</td>
506
+ <td>${arr(x.modalities).map(v=>`<span class="badge">${esc(v)}</span>`).join("")}</td>
507
+ <td>${arr(x.domain).map(v=>`<span class="badge">${esc(v)}</span>`).join("")}</td>
508
+ <td>${boolBadge(x.action_conditioned)}</td>
509
+ <td>${boolBadge(x.interactive)}</td>
510
+ <td>${boolBadge(x.planning_support)}</td>
511
+ <td>${boolBadge(x.control_support)}</td>
512
+ <td>${boolBadge(x.physical_ai)}</td>
513
+ <td>${boolBadge(x.simulation)}</td>
514
+ <td class="num">${x.parameter_count_b==null?"β€”":n(x.parameter_count_b)+"B"}</td>
515
+ <td><span class="badge ${x.access_status==="public"?"public":"gated"}">${esc(x.access_status||"β€”")}</span></td>
516
+ <td>${esc(x.license||"β€”")}</td>
517
+ <td>${esc(x.last_verified||"β€”")}</td>
518
+ <td><button class="detail-btn" data-detail="${esc(x.repo_id)}">Details</button></td>
519
+ </tr>`).join("");
520
+
521
+ els.rows.querySelectorAll("[data-detail]").forEach(btn=>btn.addEventListener("click",()=>openDetail(btn.dataset.detail)));
522
+ }
523
+
524
+ async function load(){
525
+ try{
526
+ const res=await fetch(DATASET_URL,{cache:"no-store"});
527
+ if(!res.ok)throw new Error("HTTP "+res.status);
528
+ const text=await res.text();
529
+ const parsed=text.split(/\r?\n/).filter(Boolean).map(line=>JSON.parse(line));
530
+ if(!parsed.length)throw new Error("empty dataset");
531
+ data=parsed;
532
+ els.statusDot.className="dot live";els.statusText.textContent="Live dataset loaded";
533
+ }catch(e){
534
+ data=fallback;
535
+ els.statusDot.className="dot fallback";els.statusText.textContent="Embedded fallback snapshot";
536
+ }
537
+ init();
538
+ }
539
+
540
+ els.modelA.addEventListener("change",renderCompare);
541
+ els.modelB.addEventListener("change",renderCompare);
542
+ els.swap.addEventListener("click",()=>{const a=els.modelA.value;els.modelA.value=els.modelB.value;els.modelB.value=a;renderCompare()});
543
+ els.copyLink.addEventListener("click",async()=>{
544
+ try{await navigator.clipboard.writeText(location.href);const old=els.copyLink.textContent;els.copyLink.textContent="Copied";setTimeout(()=>els.copyLink.textContent=old,1200)}
545
+ catch(e){els.copyLink.textContent="Use browser URL"}
546
+ });
547
+ els.detailClose.addEventListener("click",closeDetail);
548
+ els.detailToA.addEventListener("click",()=>{if(!detailRepoId)return;els.modelA.value=detailRepoId;renderCompare();$("compare").scrollIntoView({behavior:"smooth",block:"start"})});
549
+ els.detailToB.addEventListener("click",()=>{if(!detailRepoId)return;els.modelB.value=detailRepoId;renderCompare();$("compare").scrollIntoView({behavior:"smooth",block:"start"})});
550
+
551
+ ["input","change"].forEach(evt=>{
552
+ [els.q,els.type,els.arch,els.modality,els.domain,els.access,els.action,els.interactive,els.planning,els.control,els.physical,els.simulation,els.maxParams]
553
+ .forEach(el=>el.addEventListener(evt,renderRegistry));
554
+ });
555
+ els.reset.addEventListener("click",()=>{
556
+ [els.q,els.type,els.arch,els.modality,els.domain,els.access,els.action,els.interactive,els.planning,els.control,els.physical,els.simulation,els.maxParams].forEach(el=>el.value="");
557
+ renderRegistry();
558
+ });
559
+
560
+ load();
561
+ </script>
562
+ </body>
563
+ </html>