lvwerra HF Staff commited on
Commit
b77b374
·
verified ·
1 Parent(s): a3be50d

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +193 -244
README.md CHANGED
@@ -14,255 +14,204 @@ The science team at Hugging Face is dedicated to advancing machine learning rese
14
  This is the release timeline so far (you can click on each element!):
15
 
16
  <style>
17
- @import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600&display=swap');
18
-
19
- .page-container {
20
- width: 100%;
21
- max-width: 100vw;
22
- overflow-x: hidden;
23
- }
24
-
25
- .timeline-container {
26
- max-width: 100%;
27
- margin: 120px auto 40px;
28
- padding: 30px;
29
- overflow-x: auto;
30
- font-family: 'DM Sans', sans-serif;
31
- scrollbar-width: auto;
32
- scrollbar-color: #888 #f1f1f1;
33
- }
34
-
35
- .timeline {
36
- position: relative;
37
- min-width: 1800px;
38
- }
39
-
40
- /* Rest of your existing CSS remains the same */
41
- .line {
42
- position: absolute;
43
- width: 100%;
44
- height: 2px;
45
- background: #333;
46
- bottom: 30px;
47
- }
48
-
49
- .timeline-items {
50
- display: flex;
51
- justify-content: space-between;
52
- align-items: flex-end;
53
- position: relative;
54
- min-height: 320px;
55
- }
56
-
57
- .month-marker {
58
- display: flex;
59
- flex-direction: column;
60
- align-items: center;
61
- position: relative;
62
- flex: 1;
63
- }
64
-
65
- .month-dot {
66
- width: 12px;
67
- height: 12px;
68
- background: #000;
69
- border-radius: 50%;
70
- margin-bottom: -14px;
71
- position: relative;
72
- z-index: 1;
73
- }
74
-
75
- .month-label {
76
- font-weight: bold;
77
- margin-top: 10px;
78
- }
79
-
80
- .events-container {
81
- position: absolute;
82
- bottom: 40px;
83
- left: 50%;
84
- transform: translateX(-50%);
85
- width: 200px;
86
- text-align: left;
87
- }
88
-
89
- .event {
90
- position: relative;
91
- left: 92px;
92
- margin: 8px 0;
93
- font-size: 14px;
94
- display: flex;
95
- align-items: flex-start;
96
- gap: 5px;
97
- white-space: pre-wrap;
98
- max-width: 135px;
99
- }
100
 
101
- .event img {
102
- width: 20px;
103
- height: 20px;
104
- vertical-align: middle;
105
- }
106
 
107
- .event a {
108
- text-decoration: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  }
110
 
111
- .event a:hover {
112
- color: #686868;
113
- text-decoration: underline;
 
 
 
 
114
  }
115
- </style>
116
-
117
-
118
-
119
-
120
-
121
- <div class="page-container">
122
- <div class="timeline-container">
123
- <div class="timeline">
124
- <div class="line"></div>
125
- <div class="timeline-items">
126
- <div class="month-marker">
127
- <div class="events-container">
128
- <div class="event">🎥<a href="https://huggingface.co/blog/smolvlm2" target="_blank">SmolVLM2</a></div>
129
- <div class="event">🪐<a href="https://huggingface.co/spaces/nanotron/ultrascale-playbook" target="_blank">Ultra-Scale Playbook</a></div>
130
- <div class="event">🐋<a href="https://huggingface.co/datasets/open-r1/OpenR1-Math-220k" target="_blank">OpenR1-Math-220k</a></div>
131
- <div class="event">🕺<a href="https://huggingface.co/blog/dabstep" target="_blank">DABstep</a></div>
132
- <div class="event">🔎<a href="https://huggingface.co/blog/open-deep-research" target="_blank">Open Deep Research</a></div>
133
- <div class="event">📝<a href="https://huggingface.co/papers/2502.02737" target="_blank">SmolLM2 report</a></div>
134
- </div>
135
- <div class="month-dot"></div>
136
- <div class="month-label">Feb</div>
137
- </div>
138
- <div class="month-marker">
139
- <div class="events-container">
140
- <div class="event">🧮<a href="https://x.com/HKydlicek/status/1881734376696041659" target="_blank">Math Verify</a></div>
141
- <div class="event">🐳<a href="https://github.com/huggingface/open-r1" target="_blank">Open-R1</a></div>
142
- <div class="event">🛠️<a href="https://huggingface.co/docs/smolagents" target="_blank">SmolAgents</a></div>
143
- </div>
144
- <div class="month-dot"></div>
145
- <div class="month-label">Jan 2025</div>
146
- </div>
147
- <div class="month-marker">
148
- <div class="events-container">
149
- <div class="event">🔢<a href="https://huggingface.co/spaces/huggingface/number-tokenization-blog" target="_blank">Number Tokenization Blog</a></div>
150
- <div class="event">🥂<a href="https://huggingface.co/datasets/HuggingFaceFW/fineweb-2" target="_blank">FineWeb 2</a></div>
151
- <div class="event">📈<a href="https://huggingface.co/spaces/HuggingFaceH4/blogpost-scaling-test-time-compute" target="_blank">Scaling Test Time Compute</a></div>
152
- <div class="event">🤖<a href="https://github.com/huggingface/picotron" target="_blank">Picotron</a></div>
153
- <div class="event">📐<a href="https://huggingface.co/datasets/HuggingFaceTB/finemath" target="_blank">FineMath</a></div>
154
- </div>
155
- <div class="month-dot"></div>
156
- <div class="month-label">Dec 2024</div>
157
- </div>
158
- <div class="month-marker">
159
- <div class="events-container">
160
- <div class="event">🤏<a href="https://huggingface.co/HuggingFaceTB/SmolLM2-1.7B-Instruct" target="_blank">SmolLM2</a></div>
161
- <div class="event">🤓<a href="https://huggingface.co/HuggingFaceTB/SmolVLM-Instruct" target="_blank">SmolVLM</a></div>
162
- </div>
163
- <div class="month-dot"></div>
164
- <div class="month-label">Nov</div>
165
- </div>
166
- <div class="month-marker">
167
- <div class="events-container">
168
- <div class="event">🔎<a href="https://github.com/huggingface/evaluation-guidebook" target="_blank">LLM Evaluation Guidebook</a></div>
169
- <div class="event">🦾<a href="https://x.com/Thom_Wolf/status/1851557379294286176" target="_blank">LeRobot Hackathon</a></div>
170
- <div class="event">🗺️<a href="https://huggingface.co/spaces/HuggingFaceFW/blogpost-fine-tasks" target="_blank">FineTasks</a></div>
171
- <div class="event">⛅<a href="https://x.com/nathanhabib1011/status/1849160216438587466" target="_blank">Lighteval now Multilingual</a></div>
172
- </div>
173
- <div class="month-dot"></div>
174
- <div class="month-label">Oct</div>
175
- </div>
176
- <div class="month-marker">
177
- <div class="events-container">
178
- <div class="event">🦾<a href="https://x.com/alibert_s/status/1828760527730082024" target="_blank">LeRobot Video</a></div>
179
- <div class="event">🎥<a href="https://huggingface.co/spaces/HuggingFaceFV/FineVideo-Explorer" target="_blank">FineVideo</a></div>
180
- <div class="event">📣<a href="https://x.com/andi_marafioti/status/1830862304906268725" target="_blank">Speech-to-Speech Multilingual</a></div>
181
- </div>
182
- <div class="month-dot"></div>
183
- <div class="month-label">Sep</div>
184
- </div>
185
- <div class="month-marker">
186
- <div class="events-container">
187
- <div class="event">🦾<a href="https://github.com/huggingface/lerobot/blob/main/examples/7_get_started_with_real_robot.md" target="_blank">LeRobot Tutorial</a></div>
188
- <div class="event">📣<a href="https://github.com/huggingface/speech-to-speech" target="_blank">Speech-to-Speech</a></div>
189
- <div class="event">🐶<a href="https://huggingface.co/HuggingFaceM4/Idefics3-8B-Llama3" target="_blank">Idefics 3</a></div>
190
- <div class="event">🤏<a href="https://huggingface.co/spaces/HuggingFaceTB/instant-smollm" target="_blank">Instant SmolLM</a></div>
191
- </div>
192
- <div class="month-dot"></div>
193
- <div class="month-label">Aug</div>
194
- </div>
195
- <div class="month-marker">
196
- <div class="events-container">
197
- <div class="event">🛟<a href="https://x.com/Haojun_Zhao14/status/1815419356408336738" target="_blank">Ring attention</a></div>
198
- <div class="event">🦾<a href="https://x.com/RemiCadene/status/1805583409382932620" target="_blank">LeRobot TeleOps</a></div>
199
- <div class="event">🥇<a href="https://x.com/_lewtun/status/1808898804822720769" target="_blank">Win AIMO</a></div>
200
- <div class="event">🐶<a href="https://huggingface.co/blog/docmatix" target="_blank">Docmatix</a></div>
201
- <div class="event">🤏<a href="https://huggingface.co/blog/smollm" target="_blank">SmolLM</a></div>
202
- </div>
203
- <div class="month-dot"></div>
204
- <div class="month-label">Jul</div>
205
- </div>
206
- <div class="month-marker">
207
- <div class="events-container">
208
- <div class="event">🍷<a href="https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1f" target="_blank">FineWeb Report</a></div>
209
- <div class="event">🍷<a href="https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu" target="_blank">FineWeb-Edu</a></div>
210
- <div class="event">🌺<a href="https://huggingface.co/blog/finetune-florence2" target="_blank">Florence 2 Blog</a></div>
211
- <div class="event">🏆<a href="https://huggingface.co/spaces/open-llm-leaderboard/blog" target="_blank">Open LLM Leaderboard v2</a></div>
212
- <div class="event">👩‍🏫<a href="https://www.youtube.com/watch?v=jm2hyJLFfN8" target="_blank">Stanford CS25</a></div>
213
- </div>
214
- <div class="month-dot"></div>
215
- <div class="month-label">Jun</div>
216
- </div>
217
- <div class="month-marker">
218
- <div class="events-container">
219
- <div class="event">🦾<a href="https://github.com/huggingface/lerobot" target="_blank">LeRobot Release</a></div>
220
- <div class="event">📈<a href="https://arxiv.org/abs/2405.18392" target="_blank">WSD Analysis</a></div>
221
- </div>
222
- <div class="month-dot"></div>
223
- <div class="month-label">May</div>
224
- </div>
225
- <div class="month-marker">
226
- <div class="events-container">
227
- <div class="event">🍷<a href="https://huggingface.co/datasets/HuggingFaceFW/fineweb" target="_blank">FineWeb</a></div>
228
- <div class="event">🕵️<a href="https://huggingface.co/blog/jat" target="_blank">JAT Agent</a></div>
229
- <div class="event">🪁<a href="HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1" target="_blank">Zephyr Mixtral</a></div>
230
- <div class="event">🐶<a href="https://huggingface.co/HuggingFaceM4/idefics2-8bb" target="_blank">Idefics 2</a></div>
231
- <div class="event">🏆<a href="https://huggingface.co/blog/leaderboard-medicalllm" target="_blank">Community Leaderboards</a></div>
232
- </div>
233
- <div class="month-dot"></div>
234
- <div class="month-label">Apr</div>
235
- </div>
236
- <div class="month-marker">
237
- <div class="events-container">
238
- <div class="event">🪁<a href="https://huggingface.co/HuggingFaceH4/zephyr-7b-gemma-v0.1" target="_blank">Zephyr Gemma</a></div>
239
- <div class="event">🪐<a href="https://huggingface.co/datasets/HuggingFaceTB/cosmopedia" target="_blank">Cosmopedia</a></div>
240
- </div>
241
- <div class="month-dot"></div>
242
- <div class="month-label">Mar</div>
243
- </div>
244
- <div class="month-marker">
245
- <div class="events-container">
246
- <div class="event">⚙️<a href="https://github.com/huggingface/nanotron/" target="_blank">Nanotron Release</a></div>
247
- <div class="event">⛅<a href="https://github.com/huggingface/lighteval/" target="_blank">Lighteval Release</a></div>
248
- <div class="event">⚙️<a href="https://github.com/huggingface/datatrove/" target="_blank">Datatrove Release</a></div>
249
- <div class="event">⭐️<a href="https://huggingface.co/datasets/bigcode/the-stack-v2" target="_blank">The Stack v2</a></div>
250
- <div class="event">⭐️<a href="https://huggingface.co/bigcode/starcoder2-15b" target="_blank">StarCoder2</a></div>
251
- </div>
252
- <div class="month-dot"></div>
253
- <div class="month-label">Feb</div>
254
- </div>
255
- <div class="month-marker">
256
- <div class="events-container">
257
- <div class="event">🔥 Warming up</div>
258
- </div>
259
- <div class="month-dot"></div>
260
- <div class="month-label">Jan 2024</div>
261
- </div>
262
- </div>
263
- </div>
264
- </div>
265
- </div>
266
 
267
  ### 🛠️ Tooling & Infrastructure
268
 
 
14
  This is the release timeline so far (you can click on each element!):
15
 
16
  <style>
17
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
18
+ .timeline-container { max-width: 1000px; margin: 20px auto; padding: 20px; background: white; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
19
+ .timeline-row { display: flex; margin-bottom: 20px; min-height: 120px; position: relative; }
20
+ .timeline-row.reverse { flex-direction: row-reverse; }
21
+ .month-box { flex: 1; padding: 10px; text-align: center; position: relative; }
22
+ .month-arrow { width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 12px solid #666; margin: 0 auto 8px; }
23
+ .reverse .month-arrow { border-left: none; border-right: 12px solid #666; }
24
+ .month-title { font-weight: 600; font-size: 12px; color: #666; text-transform: uppercase; margin-bottom: 8px; }
25
+ .event-list { font-size: 11px; color: #333; }
26
+ .event-item { margin: 3px 0; padding: 2px 4px; background: #f8f9fa; border-radius: 3px; }
27
+ .timeline-row::before { content: ''; position: absolute; top: 12px; left: 0; right: 0; height: 1px; background: #ddd; z-index: 1; }
28
+ .month-box { z-index: 2; background: white; }
29
+ </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
+ <div id="snake-timeline-container" style="max-width: 1000px; margin: 20px auto; padding: 20px; background: white; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.1);">
32
+ Loading timeline...
33
+ </div>
 
 
34
 
35
+ <script>
36
+ // Release data with links
37
+ const releases = [
38
+ { month: "2024-01", name: "🔥 Warming up", link: null },
39
+ { month: "2024-02", name: "⚙️ Nanotron Release", link: "https://github.com/huggingface/nanotron/" },
40
+ { month: "2024-02", name: "⛅ Lighteval Release", link: "https://github.com/huggingface/lighteval/" },
41
+ { month: "2024-02", name: "⚙️ Datatrove Release", link: "https://github.com/huggingface/datatrove/" },
42
+ { month: "2024-02", name: "⭐️ The Stack v2", link: "https://huggingface.co/datasets/bigcode/the-stack-v2" },
43
+ { month: "2024-02", name: "⭐️ StarCoder2", link: "https://huggingface.co/bigcode/starcoder2-15b" },
44
+ { month: "2024-03", name: "🪁 Zephyr Gemma", link: "https://huggingface.co/HuggingFaceH4/zephyr-7b-gemma-v0.1" },
45
+ { month: "2024-03", name: "🪐 Cosmopedia", link: "https://huggingface.co/datasets/HuggingFaceTB/cosmopedia" },
46
+ { month: "2024-04", name: "🍷 FineWeb", link: "https://huggingface.co/datasets/HuggingFaceFW/fineweb" },
47
+ { month: "2024-04", name: "🕵️ JAT Agent", link: "https://huggingface.co/blog/jat" },
48
+ { month: "2024-04", name: "🪁 Zephyr Mixtral", link: "HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1" },
49
+ { month: "2024-04", name: "🐶 Idefics 2", link: "https://huggingface.co/HuggingFaceM4/idefics2-8bb" },
50
+ { month: "2024-04", name: "🏆 Community Leaderboards", link: "https://huggingface.co/blog/leaderboard-medicalllm" },
51
+ { month: "2024-05", name: "🦾 LeRobot Release", link: "https://github.com/huggingface/lerobot" },
52
+ { month: "2024-05", name: "📈 WSD Analysis", link: "https://arxiv.org/abs/2405.18392" },
53
+ { month: "2024-06", name: "🍷 FineWeb Report", link: "https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1f" },
54
+ { month: "2024-06", name: "🍷 FineWeb-Edu", link: "https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu" },
55
+ { month: "2024-06", name: "🌺 Florence 2 Blog", link: "https://huggingface.co/blog/finetune-florence2" },
56
+ { month: "2024-06", name: "🏆 Open LLM Leaderboard v2", link: "https://huggingface.co/spaces/open-llm-leaderboard/blog" },
57
+ { month: "2024-06", name: "👩‍🏫 Stanford CS25", link: "https://www.youtube.com/watch?v=jm2hyJLFfN8" },
58
+ { month: "2024-07", name: "🛟 Ring attention", link: "https://x.com/Haojun_Zhao14/status/1815419356408336738" },
59
+ { month: "2024-07", name: "🦾 LeRobot TeleOps", link: "https://x.com/RemiCadene/status/1805583409382932620" },
60
+ { month: "2024-07", name: "🥇 Win AIMO", link: "https://x.com/_lewtun/status/1808898804822720769" },
61
+ { month: "2024-07", name: "🐶 Docmatix", link: "https://huggingface.co/blog/docmatix" },
62
+ { month: "2024-07", name: "🤏 SmolLM", link: "https://huggingface.co/blog/smollm" },
63
+ { month: "2024-08", name: "🦾 LeRobot Tutorial", link: "https://github.com/huggingface/lerobot/blob/main/examples/7_get_started_with_real_robot.md" },
64
+ { month: "2024-08", name: "📣 Speech-to-Speech", link: "https://github.com/huggingface/speech-to-speech" },
65
+ { month: "2024-08", name: "🐶 Idefics 3", link: "https://huggingface.co/HuggingFaceM4/Idefics3-8B-Llama3" },
66
+ { month: "2024-08", name: "🤏 Instant SmolLM", link: "https://huggingface.co/spaces/HuggingFaceTB/instant-smollm" },
67
+ { month: "2024-09", name: "🦾 LeRobot Video", link: "https://x.com/alibert_s/status/1828760527730082024" },
68
+ { month: "2024-09", name: "🎥 FineVideo", link: "https://huggingface.co/spaces/HuggingFaceFV/FineVideo-Explorer" },
69
+ { month: "2024-09", name: "📣 Speech-to-Speech Multilingual", link: "https://x.com/andi_marafioti/status/1830862304906268725" },
70
+ { month: "2024-10", name: "🔎 LLM Evaluation Guidebook", link: "https://github.com/huggingface/evaluation-guidebook" },
71
+ { month: "2024-10", name: "🦾 LeRobot Hackathon", link: "https://x.com/Thom_Wolf/status/1851557379294286176" },
72
+ { month: "2024-10", name: "🗺️ FineTasks", link: "https://huggingface.co/spaces/HuggingFaceFW/blogpost-fine-tasks" },
73
+ { month: "2024-10", name: "⛅ Lighteval now Multilingual", link: "https://x.com/nathanhabib1011/status/1849160216438587466" },
74
+ { month: "2024-11", name: "🤏 SmolLM2", link: "https://huggingface.co/HuggingFaceTB/SmolLM2-1.7B-Instruct" },
75
+ { month: "2024-11", name: "🤓 SmolVLM", link: "https://huggingface.co/HuggingFaceTB/SmolVLM-Instruct" },
76
+ { month: "2024-12", name: "🔢 Number Tokenization Blog", link: "https://huggingface.co/spaces/huggingface/number-tokenization-blog" },
77
+ { month: "2024-12", name: "🥂 FineWeb 2", link: "https://huggingface.co/datasets/HuggingFaceFW/fineweb-2" },
78
+ { month: "2024-12", name: "📈 Scaling Test Time Compute", link: "https://huggingface.co/spaces/HuggingFaceH4/blogpost-scaling-test-time-compute" },
79
+ { month: "2024-12", name: "🤖 Picotron", link: "https://github.com/huggingface/picotron" },
80
+ { month: "2024-12", name: "📐 FineMath", link: "https://huggingface.co/datasets/HuggingFaceTB/finemath" },
81
+ // 2025
82
+ { month: "2025-01", name: "🧮 Math Verify", link: "https://x.com/HKydlicek/status/1881734376696041659" },
83
+ { month: "2025-01", name: "🐳 Open-R1", link: "https://github.com/huggingface/open-r1" },
84
+ { month: "2025-01", name: "🛠️ SmolAgents", link: "https://huggingface.co/docs/smolagents" },
85
+ { month: "2025-02", name: "🎥 SmolVLM2", link: "https://huggingface.co/blog/smolvlm2" },
86
+ { month: "2025-02", name: "🪐 Ultra-Scale Playbook", link: "https://huggingface.co/spaces/nanotron/ultrascale-playbook" },
87
+ { month: "2025-02", name: "🐋 OpenR1-Math-220k", link: "https://huggingface.co/datasets/open-r1/OpenR1-Math-220k" },
88
+ { month: "2025-02", name: "🕺 DABstep", link: "https://huggingface.co/blog/dabstep" },
89
+ { month: "2025-02", name: "🔎 Open Deep Research", link: "https://huggingface.co/blog/open-deep-research" },
90
+ { month: "2025-02", name: "📝 SmolLM2 report", link: "https://huggingface.co/papers/2502.02737" },
91
+ { month: "2025-02", name: "🤖 Pi0 Integration", link: "https://x.com/RemiCadene/status/1886823939856589296" },
92
+ { month: "2025-03", name: "📄 SmolDocling", link: "https://huggingface.co/ds4sd/SmolDocling-256M-preview" },
93
+ { month: "2025-03", name: "🧑‍🎓 DCLM-edu", link: "https://huggingface.co/datasets/HuggingFaceTB/dclm-edu" },
94
+ { month: "2025-03", name: "💾 Stack-edu", link: "https://huggingface.co/datasets/HuggingFaceTB/stack-edu" },
95
+ { month: "2025-03", name: "🏅 Olympic Coder", link: "https://huggingface.co/open-r1/OlympicCoder-7B" },
96
+ { month: "2025-03", name: "🌅 Leaderboard Sunset", link: "https://x.com/clefourrier/status/1900280339613860057" },
97
+ { month: "2025-03", name: "🔎 Find a Leaderboard", link: "https://huggingface.co/spaces/OpenEvals/find-a-leaderboard" },
98
+ { month: "2025-03", name: "🚗 LeKiwi", link: "https://x.com/RemiCadene/status/1896535455325442390" },
99
+ { month: "2025-04", name: "🪑 YourBench", link: "https://huggingface.co/spaces/yourbench/demo" },
100
+ { month: "2025-04", name: "🦾 SO-101", link: "https://x.com/RemiCadene/status/1916751964807057515" },
101
+ { month: "2025-04", name: "🧑‍🎓 DeepLearning AI Agent Course", link: "https://x.com/DeepLearningAI/status/1915081924302839984" },
102
+ { month: "2025-05", name: "🤏 nanoVLM", link: "https://github.com/huggingface/nanoVLM" },
103
+ { month: "2025-05", name: "📝 OpenR1-Codeforces", link: "https://huggingface.co/datasets/open-r1/codeforces" },
104
+ { month: "2025-05", name: "🧠 Mixture of Thoughts", link: "https://huggingface.co/datasets/open-r1/Mixture-of-Thoughts" },
105
+ { month: "2025-05", name: "💻 Open Computer Agent", link: "https://huggingface.co/spaces/smolagents/computer-agent" },
106
+ { month: "2025-05", name: "🐣 Reachy Mini", link: "https://x.com/Thom_Wolf/status/1928103448970473962" },
107
+ { month: "2025-06", name: "🤖 LeRobot Hackathon", link: "https://x.com/RemiCadene/status/1917118988959813699" },
108
+ { month: "2025-06", name: "🤖 SmolVLA", link: "https://huggingface.co/collections/lerobot/smolvla-683c072ec3ef6ab0fcb87e60" },
109
+ { month: "2025-06", name: "🖥️ ScreenSuite", link: "https://github.com/huggingface/screensuite" }
110
+ ];
111
+
112
+
113
+ function createSnakeTimeline() {
114
+ // Group by month
115
+ const grouped = {};
116
+ releases.forEach(item => {
117
+ if (!grouped[item.month]) grouped[item.month] = [];
118
+ grouped[item.month].push(item);
119
+ });
120
+
121
+ const months = Object.keys(grouped).sort().reverse(); // Reverse to show latest first
122
+
123
+ // Create rows of 4 months each
124
+ const rows = [];
125
+ for (let i = 0; i < months.length; i += 4) {
126
+ rows.push(months.slice(i, i + 4));
127
+ }
128
+
129
+ let html = '<div style="font-family: -apple-system, BlinkMacSystemFont, \'Segoe UI\', sans-serif; position: relative;">';
130
+
131
+ rows.forEach((row, rowIndex) => {
132
+ const isReverse = rowIndex % 2 === 1;
133
+ // For reverse rows, we need to reverse the month order, not the display order
134
+ const displayRow = isReverse ? [...row].reverse() : row;
135
+ const isLastRow = rowIndex === rows.length - 1;
136
+
137
+ // Row container - the flex direction should always be normal
138
+ html += `<div style="display: flex; margin-bottom: 32px; min-height: 140px; position: relative;">`;
139
+
140
+ // Horizontal connecting line (aligned with arrows)
141
+ html += `<div style="position: absolute; top: 8px; left: 0; right: 0; height: 1px; background: #e0e0e0; z-index: 1;"></div>`;
142
+
143
+ displayRow.forEach((monthKey, monthIndex) => {
144
+ const [year, month] = monthKey.split('-');
145
+ const monthName = new Date(year, month - 1).toLocaleString('en', { month: 'short' }).toUpperCase();
146
+ const events = grouped[monthKey] || [];
147
+ const isYearMarker = month === '01';
148
+
149
+ // Month container
150
+ html += `<div style="flex: 1; padding: 0 15px; text-align: center; position: relative; z-index: 2;">`;
151
+
152
+ // Arrow (positioned to align with horizontal line) - flipped for reverse chronological order
153
+ const arrowStyle = isReverse
154
+ ? 'width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 10px solid #666; margin: 2px auto 12px;'
155
+ : 'width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-right: 10px solid #666; margin: 2px auto 12px;';
156
+
157
+ html += `<div style="${arrowStyle}"></div>`;
158
+
159
+ // Month title
160
+ const titleStyle = isYearMarker
161
+ ? 'font-weight: 600; font-size: 14px; color: #1a1a1a; background: #f0f0f0; padding: 4px 12px; border-radius: 12px; margin-bottom: 16px; display: inline-block;'
162
+ : 'font-weight: 500; font-size: 13px; color: #666; text-transform: uppercase; margin-bottom: 16px; letter-spacing: 0.5px;';
163
+
164
+ const titleText = isYearMarker ? `${monthName} ${year}` : monthName;
165
+ html += `<div style="${titleStyle}">${titleText}</div>`;
166
+
167
+ // Events
168
+ html += `<div style="font-size: 12px; color: #4a4a4a; max-width: 180px; margin: 0 auto; display: flex; flex-direction: column; gap: 6px;">`;
169
+ events.forEach(event => {
170
+ if (event.link && event.link !== '#') {
171
+ // Clickable event with link
172
+ html += `<a href="${event.link}" target="_blank" style="text-decoration: none; color: inherit;">
173
+ <div style="padding: 6px 8px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 6px; line-height: 1.4; transition: all 0.2s ease; box-shadow: 0 1px 2px rgba(0,0,0,0.05); cursor: pointer;" onmouseover="this.style.transform='translateY(-1px)'; this.style.boxShadow='0 2px 4px rgba(0,0,0,0.1)'; this.style.background='#e3f2fd'" onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 1px 2px rgba(0,0,0,0.05)'; this.style.background='#f8f9fa'">${event.name}</div>
174
+ </a>`;
175
+ } else {
176
+ // Non-clickable event
177
+ html += `<div style="padding: 6px 8px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 6px; line-height: 1.4; color: #6c757d;">${event.name}</div>`;
178
+ }
179
+ });
180
+ html += `</div>`;
181
+
182
+ html += `</div>`; // Close month container
183
+ });
184
+
185
+ // Add vertical connector if not the last row
186
+ if (!isLastRow) {
187
+ const connectorStyle = isReverse
188
+ ? 'position: absolute; width: 1px; height: calc(100% + 32px); background: #e0e0e0; top: 8px; left: 0; z-index: 1;'
189
+ : 'position: absolute; width: 1px; height: calc(100% + 32px); background: #e0e0e0; top: 8px; right: 0; z-index: 1;';
190
+
191
+ html += `<div style="${connectorStyle}"></div>`;
192
+ }
193
+
194
+ html += `</div>`; // Close row
195
+ });
196
+
197
+ html += '</div>';
198
+
199
+ // Insert the timeline
200
+ const container = document.getElementById('snake-timeline-container');
201
+ if (container) {
202
+ container.innerHTML = html;
203
+ }
204
  }
205
 
206
+ // Run with multiple fallbacks
207
+ setTimeout(createSnakeTimeline, 100);
208
+ setTimeout(createSnakeTimeline, 500);
209
+ if (document.readyState === 'loading') {
210
+ document.addEventListener('DOMContentLoaded', createSnakeTimeline);
211
+ } else {
212
+ createSnakeTimeline();
213
  }
214
+ </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
 
216
  ### 🛠️ Tooling & Infrastructure
217