@@ -24,10 +24,10 @@ <h1 class="hero-title">MOOZY</h1>
2424 </ p >
2525
2626 < p class ="author-list ">
27- < a href ="https://orcid.org/0009-0003-0674-5230 "> Yousef Kotp</ a > < sup > 1,2</ sup > ,
28- < a href ="# "> Vincent Quoc-Huy Trinh</ a > < sup > 3,4</ sup > ,
29- < a href ="# "> Christopher Pal</ a > < sup > 2,5,6</ sup > ,
30- < a href ="https://orcid.org/0000-0002-9147-0731 "> Mahdi S. Hosseini</ a > < sup > 1,2,7</ sup >
27+ < a href ="https://scholar.google.com/citations?user=YMSkXbEAAAAJ "> Yousef Kotp</ a > < sup > 1,2</ sup > ,
28+ < a href ="https://scholar.google.com/citations?user=K7Na7ZcAAAAJ "> Vincent Quoc-Huy Trinh</ a > < sup > 3,4</ sup > ,
29+ < a href ="https://scholar.google.com/citations?user=1ScWJOoAAAAJ "> Christopher Pal</ a > < sup > 2,5,6</ sup > ,
30+ < a href ="https://scholar.google.com/citations?user=SO-FFrgAAAAJ "> Mahdi S. Hosseini</ a > < sup > 1,2,7</ sup >
3131 </ p >
3232 < p class ="affiliation-list ">
3333 < sup > 1</ sup > Concordia University  
@@ -51,31 +51,50 @@ <h1 class="hero-title">MOOZY</h1>
5151<!-- ============ KEY NUMBERS ============ -->
5252< section class ="section " style ="padding-top:0 ">
5353 < div class ="container ">
54- < div class ="stat-cards ">
55- < div class ="stat-card ">
56- < span class ="stat-number "> 85.77M</ span >
57- < span class ="stat-label "> parameters< br > (14× smaller than GigaPath)</ span >
54+ < div class ="stat-cards-dark ">
55+ < div class ="stat-card-dark ">
56+ < span class ="stat-number-dark "> 85.77M</ span >
57+ < span class ="stat-label-dark "> parameters< br > (14× smaller than GigaPath)</ span >
5858 </ div >
59- < div class ="stat-card ">
60- < span class ="stat-number "> 77,134</ span >
61- < span class ="stat-label "> public slides</ span >
59+ < div class ="stat-card-dark ">
60+ < span class ="stat-number-dark "> 77,134</ span >
61+ < span class ="stat-label-dark "> public slides</ span >
6262 </ div >
63- < div class ="stat-card ">
64- < span class ="stat-number "> 333</ span >
65- < span class ="stat-label "> tasks from 56 datasets</ span >
63+ < div class ="stat-card-dark ">
64+ < span class ="stat-number-dark "> 333</ span >
65+ < span class ="stat-label-dark "> tasks from 56 datasets</ span >
6666 </ div >
67- < div class ="stat-card ">
68- < span class ="stat-number "> +7.4%</ span >
69- < span class ="stat-label "> F1 over TITAN</ span >
67+ < div class ="stat-card-dark ">
68+ < span class ="stat-number-dark "> +7.4%</ span >
69+ < span class ="stat-label-dark "> F1 over TITAN</ span >
7070 </ div >
71- < div class ="stat-card ">
72- < span class ="stat-number "> 23</ span >
73- < span class ="stat-label "> anatomical sites</ span >
71+ < div class ="stat-card-dark ">
72+ < span class ="stat-number-dark "> 23</ span >
73+ < span class ="stat-label-dark "> anatomical sites</ span >
7474 </ div >
7575 </ div >
7676 </ div >
7777</ section >
7878
79+ <!-- ============ QUICK START ============ -->
80+ < section class ="section ">
81+ < div class ="container " style ="max-width:700px ">
82+ < h2 class ="section-heading "> Quick Start</ h2 >
83+ < div class ="code-block "> < span class ="comment "> # install</ span >
84+ pip install moozy
85+
86+ < span class ="comment "> # encode from pre-computed H5 feature files</ span >
87+ moozy encode slide_1.h5 slide_2.h5 -o case_embedding.h5
88+
89+ < span class ="comment "> # encode from raw whole-slide images (requires atlas-patch)</ span >
90+ moozy encode slide_1.svs slide_2.svs -o case_embedding.h5 --target_mag 20</ div >
91+ < p style ="margin-top:0.8rem; color: var(--text-secondary); font-size:0.9rem; text-align:center; ">
92+ Checkpoint and task definitions are downloaded automatically from
93+ < a href ="https://huggingface.co/AtlasAnalyticsLab/MOOZY " style ="color:#333; text-decoration:underline "> HuggingFace</ a > on first use.
94+ </ p >
95+ </ div >
96+ </ section >
97+
7998<!-- ============ ABSTRACT ============ -->
8099< section class ="section section-alt ">
81100 < div class ="container " style ="max-width:850px ">
@@ -104,39 +123,6 @@ <h2 class="section-heading">Two-Stage Training Pipeline</h2>
104123 </ div >
105124</ section >
106125
107- <!-- ============ WHAT MAKES MOOZY DIFFERENT ============ -->
108- < section class ="section section-alt ">
109- < div class ="container ">
110- < h2 class ="section-heading "> What Makes MOOZY Different</ h2 >
111- < div class ="columns ">
112- < div class ="column is-4 ">
113- < div class ="feature-card ">
114- < h3 > Patient-First</ h3 >
115- < p > The patient case, not the individual slide, is the unit of representation. A case transformer explicitly models cross-slide dependencies during pretraining — no post-hoc slide averaging.</ p >
116- < img src ="static/images/slide_enc_case_agg.webp " alt ="Slide encoder and case aggregator architecture "
117- class ="fig-clickable " data-full ="static/images/slide_enc_case_agg.webp " loading ="lazy " style ="width:100% ">
118- </ div >
119- </ div >
120- < div class ="column is-4 ">
121- < div class ="feature-card ">
122- < h3 > Two-Stage Open Pretraining</ h3 >
123- < p > Stage 1: self-supervised slide encoder on 77K unlabeled slides. Stage 2: multi-task alignment across 333 clinical tasks. No private data, no paired reports, no billion-parameter patch encoders.</ p >
124- < img src ="static/images/sparse_supervision.webp " alt ="Sparse multi-task supervision "
125- class ="fig-clickable " data-full ="static/images/sparse_supervision.webp " loading ="lazy " style ="width:100% ">
126- </ div >
127- </ div >
128- < div class ="column is-4 ">
129- < div class ="feature-card ">
130- < h3 > Parameter Efficient</ h3 >
131- < p > 85.77M total parameters. 14× smaller than GigaPath (1.22B), 4× smaller than TITAN (355M), while matching or exceeding performance on held-out tasks.</ p >
132- < img src ="static/images/scatter_comparison_bubble.webp " alt ="Parameter efficiency comparison "
133- class ="fig-clickable " data-full ="static/images/scatter_comparison_bubble.webp " loading ="lazy " style ="width:100% ">
134- </ div >
135- </ div >
136- </ div >
137- </ div >
138- </ section >
139-
140126<!-- ============ DATA SCALE ============ -->
141127< section class ="section ">
142128 < div class ="container ">
@@ -148,7 +134,7 @@ <h2 class="section-heading">Training Data Scale</h2>
148134 style ="width:100%; border-radius:8px; ">
149135 </ div >
150136 < div class ="column is-6 ">
151- < p style ="line-height:1.7; color: var(--text-secondary) ">
137+ < p style ="line-height:1.7 ">
152138 MOOZY is trained entirely on public data. Stage 1 uses 77,134 slide feature grids
153139 (53,286 at 20× and 23,848 at 40×) extracted from ~1.67 billion patches across ~31.8 TB of raw WSI data.
154140 Stage 2 uses 41,089 supervised cases across 333 tasks from 56 datasets —
@@ -370,37 +356,18 @@ <h2 class="section-heading">Embedding Quality</h2>
370356 </ div >
371357</ section >
372358
373- <!-- ============ QUICK START ============ -->
374- < section class ="section ">
375- < div class ="container " style ="max-width:700px ">
376- < h2 class ="section-heading "> Quick Start</ h2 >
377- < div class ="code-block ">
378- < span class ="comment "> # Install</ span >
379- < span class ="prompt "> $</ span > pip install moozy
380-
381- < span class ="comment "> # Encode from pre-computed H5 feature files</ span >
382- < span class ="prompt "> $</ span > moozy encode slide_1.h5 slide_2.h5 -o case_embedding.h5
383-
384- < span class ="comment "> # Encode from raw whole-slide images</ span >
385- < span class ="prompt "> $</ span > moozy encode slide_1.svs slide_2.svs -o case_embedding.h5 --target_mag 20
386- </ div >
387- < p style ="margin-top:0.8rem; color: var(--text-secondary); font-size:0.9rem; text-align:center; ">
388- Checkpoint and task definitions are downloaded automatically from
389- < a href ="https://huggingface.co/AtlasAnalyticsLab/MOOZY " style ="color:var(--accent) "> HuggingFace</ a > on first use.
390- </ p >
391- </ div >
392- </ section >
393-
394359<!-- ============ BIBTEX ============ -->
395360< section class ="section section-alt ">
396361 < div class ="container " style ="max-width:700px ">
397362 < h2 class ="section-heading "> Citation</ h2 >
398363 < div class ="bibtex-block ">
399364 < button class ="copy-btn "> Copy</ button >
400- < code > @article{moozy2026,
401- title = {MOOZY: A Patient-First Foundation Model for Computational Pathology},
402- author = {Kotp, Yousef and Trinh, Vincent Quoc-Huy and Pal, Christopher and Hosseini, Mahdi S.},
403- year = {2026},
365+ < code > @article{moozy2026,
366+ title = {MOOZY: A Patient-First Foundation Model for
367+ Computational Pathology},
368+ author = {Kotp, Yousef and Trinh, Vincent Quoc-Huy
369+ and Pal, Christopher and Hosseini, Mahdi S.},
370+ year = {2026}
404371}</ code >
405372 </ div >
406373 </ div >
@@ -410,13 +377,10 @@ <h2 class="section-heading">Citation</h2>
410377< footer class ="footer " style ="padding:2rem 1.5rem; background: var(--bg-alt); ">
411378 < div class ="container has-text-centered " style ="font-size:0.85rem; color: var(--text-secondary); ">
412379 < p >
413- < a href ="https://github.com/AtlasAnalyticsLab " style ="color: var(--text-secondary); "> Atlas Analytics Lab</ a >
380+ < a href ="https://atlasanalyticslab. github.io/ " style ="color: var(--text-secondary); "> Atlas Analytics Lab</ a >
414381  | 
415382 Licensed under < a href ="https://creativecommons.org/licenses/by-nc-sa/4.0/ " style ="color: var(--text-secondary); "> CC BY-NC-SA 4.0</ a >
416383 </ p >
417- < p style ="margin-top:0.3rem; ">
418- Page template inspired by < a href ="https://nerfies.github.io " style ="color: var(--text-secondary); "> Nerfies</ a > .
419- </ p >
420384 </ div >
421385</ footer >
422386
0 commit comments