-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
529 lines (514 loc) · 27.8 KB
/
index.html
File metadata and controls
529 lines (514 loc) · 27.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Biodyn — Mechanistic Interpretability for Biological Foundation Models</title>
<meta name="description" content="Biodyn is a research project applying mechanistic interpretability to biological foundation models, enabling causal understanding of gene regulatory networks and perturbation responses.">
<link rel="canonical" href="https://biodynai.com/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Biodyn">
<meta property="og:url" content="https://biodynai.com/">
<meta property="og:title" content="Biodyn — Mechanistic Interpretability for Biological Foundation Models">
<meta property="og:description" content="Research outputs, atlases, and active projects on mechanistic interpretability for biological foundation models.">
<meta property="og:image" content="https://biodynai.com/content/social-preview.png">
<meta property="og:image:type" content="image/png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Biodyn social preview">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Biodyn — Mechanistic Interpretability for Biological Foundation Models">
<meta name="twitter:description" content="Research outputs, atlases, and active projects on mechanistic interpretability for biological foundation models.">
<meta name="twitter:image" content="https://biodynai.com/content/social-preview.png">
<meta name="twitter:image:alt" content="Biodyn social preview">
<script>
(() => {
const storedTheme = localStorage.getItem('biodyn-theme');
const systemPrefersLight = window.matchMedia('(prefers-color-scheme: light)').matches;
const theme = storedTheme === 'light' || storedTheme === 'dark'
? storedTheme
: (systemPrefersLight ? 'light' : 'dark');
document.documentElement.dataset.theme = theme;
})();
</script>
<link rel="stylesheet" href="style.css">
<link rel="icon" href="favicon.svg" type="image/svg+xml">
</head>
<body>
<!-- Navigation -->
<nav class="nav" id="nav">
<div class="container">
<a href="#" class="nav-logo">Biodyn</a>
<ul class="nav-links" id="navLinks">
<li><a href="#vision">Vision</a></li>
<li><a href="#research">Research</a></li>
<li><a href="#methodology">Methodology</a></li>
<li><a href="#impact">Impact</a></li>
<li><a href="#atlases">Atlases</a></li>
<li><a href="#publications">Research Outputs</a></li>
<li><a href="#team">Team</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="portfolio.html">Portfolio</a></li>
<li>
<button type="button" class="theme-toggle" id="themeToggle" aria-label="Toggle color theme">
Theme
</button>
</li>
<li><a href="https://github.com/orgs/Biodyn-AI/repositories" target="_blank" rel="noopener" class="nav-cta">GitHub →</a></li>
</ul>
<div class="hamburger" id="hamburger">
<span></span>
<span></span>
<span></span>
</div>
</div>
</nav>
<!-- Hero -->
<section class="hero section" id="hero">
<div class="mesh-bg"></div>
<div class="container">
<div class="hero-content">
<h1>
Understanding biology's<br>
<span class="gradient-text">foundation models</span>
</h1>
<p class="hero-description">
We apply mechanistic interpretability to single-cell foundation models — turning black-box AI into causal, verifiable insights about gene regulation, cell programs, and perturbation responses.
</p>
<div class="hero-actions">
<a href="#research" class="btn-primary">Explore Our Research ↓</a>
<a href="https://github.com/orgs/Biodyn-AI/repositories" target="_blank" rel="noopener" class="btn-secondary">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>
View on GitHub
</a>
</div>
<div class="hero-stats">
<div class="hero-stat">
<h3 data-stat="tracks">4</h3>
<p>Research Tracks</p>
</div>
<div class="hero-stat">
<h3 data-stat="projects">38</h3>
<p>Active Projects</p>
</div>
<div class="hero-stat">
<h3 data-stat="articles">10</h3>
<p>Research Outputs</p>
</div>
<div class="hero-stat">
<h3 data-stat="atlases">3</h3>
<p>Atlas Modules</p>
</div>
</div>
</div>
</div>
</section>
<!-- Vision -->
<section class="vision section" id="vision">
<div class="container">
<div class="vision-grid">
<div class="vision-text reveal">
<span class="section-label">Our Vision</span>
<h2>Biology demands more than predictions — it demands understanding</h2>
<p>
Foundation models like scGPT learn powerful representations from millions of cells. But in biology, <span class="vision-highlight">a prediction without a mechanism is just a correlation</span>. If we can't explain why a model predicts a gene interaction, we can't trust it to guide experiments, discover drug targets, or advance scientific knowledge.
</p>
<p>
Biodyn bridges this gap. We apply mechanistic interpretability — the science of understanding what neural networks learn internally — to biological foundation models. Our goal: <span class="vision-highlight">reduce the time from biological question to reproducible, mechanistic result by 10–100×</span> using rigorous, causally-grounded methods.
</p>
</div>
<div class="vision-visual reveal reveal-delay-2">
<div class="vision-card-stack">
<div class="vision-stat-card">
<div class="icon">Principle 01</div>
<h4>Beyond Black Boxes</h4>
<p>We open the hood of foundation models to find biologically meaningful circuits — gene programs, pathways, and cell-state representations.</p>
</div>
<div class="vision-stat-card">
<div class="icon">Principle 02</div>
<h4>Causal, Not Correlational</h4>
<p>Every interpretability claim must survive causal intervention tests. We ablate, patch, and perturb to verify mechanistic hypotheses.</p>
</div>
<div class="vision-stat-card">
<div class="icon">Principle 03</div>
<h4>Automation as Advantage</h4>
<p>Every solved research step becomes reusable infrastructure, compounding our R&D velocity across projects.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Research Areas -->
<section class="research-areas section" id="research">
<div class="container">
<div class="section-header reveal">
<span class="section-label">Research Areas</span>
<h2 class="section-title">Four interconnected tracks</h2>
<p class="section-subtitle">
Our research spans mechanistic interpretability, network inference, perturbation modeling, and automated R&D — each feeding into the others.
</p>
</div>
<div class="research-grid">
<div class="research-card reveal reveal-delay-1" style="--card-accent: linear-gradient(135deg, #00d4ff, #00a0e0)">
<div class="card-icon">Track 01</div>
<h3>Mechanistic Interpretability</h3>
<p>
Convert black-box single-cell foundation models into mechanistically understood systems. We use representation probes, sparse autoencoders, activation patching, and targeted ablations to identify gene programs, pathways, and cell-state circuits within transformer models — with causal verification at every step.
</p>
<div class="card-tags">
<span class="tag">Activation Patching</span>
<span class="tag">Sparse Features</span>
<span class="tag">Concept Probes</span>
<span class="tag">Causal Tracing</span>
</div>
</div>
<div class="research-card reveal reveal-delay-2" style="--card-accent: linear-gradient(135deg, #7c5cfc, #a78bfa)">
<div class="card-icon">Track 02</div>
<h3>Biological Network Inference</h3>
<p>
Build and benchmark gene regulatory network (GRN) and signaling inference pipelines from single-cell data. We extract attention-based interaction scores, calibrate against ground-truth databases (TRRUST, DoRothEA), and produce versioned, queryable network objects for downstream analysis.
</p>
<div class="card-tags">
<span class="tag">GRN Recovery</span>
<span class="tag">Signaling Chains</span>
<span class="tag">Confidence Calibration</span>
</div>
</div>
<div class="research-card reveal reveal-delay-3" style="--card-accent: linear-gradient(135deg, #00c9a7, #00e0b8)">
<div class="card-icon">Track 03</div>
<h3>Perturbation Modeling</h3>
<p>
Predict cellular responses to CRISPR knockouts, drug treatments, and genetic perturbations across cell types and doses. We use perturbation-derived edges from Perturb-seq experiments as ground truth to validate model predictions and build perturbation-to-network benchmarks.
</p>
<div class="card-tags">
<span class="tag">Perturb-seq</span>
<span class="tag">CRISPR Screens</span>
<span class="tag">Active Learning</span>
</div>
</div>
<div class="research-card reveal reveal-delay-4" style="--card-accent: linear-gradient(135deg, #f472b6, #fb7185)">
<div class="card-icon">Track 04</div>
<h3>Agentic R&D Automation</h3>
<p>
Automate the entire research loop — from data ingestion and quality control to experiment design, execution, evaluation, and reporting. Coordinated AI agents handle the repetitive work while humans provide scientific steering and strategic direction.
</p>
<div class="card-tags">
<span class="tag">Dataset Factory</span>
<span class="tag">Experiment Factory</span>
<span class="tag">Auto-Reporting</span>
</div>
</div>
</div>
</div>
</section>
<!-- How It Works -->
<section class="flywheel section" id="methodology">
<div class="container">
<div class="section-header reveal">
<span class="section-label">Methodology</span>
<h2 class="section-title">The R&D Flywheel</h2>
<p class="section-subtitle">
Our operating loop compounds progress. Every cycle produces reusable infrastructure, rigorous evaluation, and mechanistic insight.
</p>
</div>
<div class="flywheel-steps">
<div class="flywheel-step reveal reveal-delay-1">
<div class="step-number">01</div>
<h3>Discover</h3>
<p>Continuous scanning of research opportunities, market signals, and emerging datasets. AI agents produce scored Opportunity Briefs.</p>
</div>
<div class="flywheel-step reveal reveal-delay-2">
<div class="step-number">02</div>
<h3>Design</h3>
<p>Experiments are designed with falsifiable hypotheses, explicit controls, and pre-registered evaluation criteria. No fishing expeditions.</p>
</div>
<div class="flywheel-step reveal reveal-delay-3">
<div class="step-number">03</div>
<h3>Implement</h3>
<p>Reproducible pipelines with pinned data versions, tracked configurations, and deterministic seeds. Every run is auditable.</p>
</div>
<div class="flywheel-step reveal reveal-delay-1">
<div class="step-number">04</div>
<h3>Evaluate</h3>
<p>Standardized benchmarks with ablations, baselines, robustness checks, and bias-aware evaluation protocols to prevent misleading claims.</p>
</div>
<div class="flywheel-step reveal reveal-delay-2">
<div class="step-number">05</div>
<h3>Interpret</h3>
<p>Mechanistic reports with causal intervention evidence, boundary conditions, and explicit separation between biological insights and suggestive observations.</p>
</div>
<div class="flywheel-step reveal reveal-delay-3">
<div class="step-number">06</div>
<h3>Automate</h3>
<p>Every repeated step becomes a reusable command, template, or agent skill — compounding speed and consistency across future projects.</p>
</div>
</div>
</div>
</section>
<!-- Why It Matters -->
<section class="why-matters section" id="impact">
<div class="container">
<div class="section-header reveal">
<span class="section-label">Why It Matters</span>
<h2 class="section-title">Opening biology's black boxes</h2>
<p class="section-subtitle">
Mechanistic interpretability of biological foundation models isn't just an academic exercise — it's a prerequisite for trustworthy, actionable AI in the life sciences.
</p>
</div>
<div class="why-grid">
<div class="why-card reveal reveal-delay-1">
<div class="why-icon">Priority 01</div>
<h3>Drug Target Discovery</h3>
<p>Understanding which internal model features correspond to real gene regulatory mechanisms enables principled identification of drug targets — grounded in causal evidence rather than statistical correlation.</p>
</div>
<div class="why-card reveal reveal-delay-2">
<div class="why-icon">Priority 02</div>
<h3>Scientific Rigor</h3>
<p>Biology demands explanations that survive falsification. Our causal intervention framework — ablation, patching, perturbation validation — ensures mechanistic claims are testable and reproducible, not just pattern-matching.</p>
</div>
<div class="why-card reveal reveal-delay-3">
<div class="why-icon">Priority 03</div>
<h3>Evaluation Integrity</h3>
<p>Current benchmarks are brittle: mapping and candidate-set choices dominate metrics, causing misleading ranking reversals. Our evaluation bias protocols expose and correct these hidden confounds.</p>
</div>
</div>
<!-- Extended paragraph -->
<div class="why-extended reveal" style="margin-top: 64px; max-width: 800px;">
<p style="color: var(--text-secondary); line-height: 1.9; font-size: 1.05rem;">
Foundation models are transforming biology — learning rich, compressed representations from millions of single cells across tissues, conditions, and perturbations. But <strong style="color: var(--text-primary);">predictive power without interpretability is a liability</strong>. In domains like drug discovery and precision medicine, deploying a model that "just works" without understanding <em>why</em> it works can lead to false confidence, wasted experiments, and missed therapeutic opportunities.
</p>
<p style="color: var(--text-secondary); line-height: 1.9; font-size: 1.05rem; margin-top: 20px;">
Mechanistic interpretability changes this equation. By mapping a model's internal representations to known biology — gene programs, signaling pathways, cell-state transitions — we can <strong style="color: var(--text-primary);">verify that models learn real mechanisms rather than dataset artifacts</strong>. And by testing these circuits with causal interventions, we produce insights that are not just plausible but <em>falsifiable</em> — meeting the standard that biology demands.
</p>
</div>
</div>
</section>
<!-- Portfolio Preview -->
<section class="portfolio-preview section" id="portfolioPreview">
<div class="container">
<div class="section-header reveal">
<span class="section-label">Research Portfolio</span>
<h2 class="section-title">Explore the full project portfolio</h2>
<p class="section-subtitle">
The complete catalog of active projects now lives on a dedicated portfolio page with per-project annotations.
</p>
</div>
<div class="portfolio-cta-card reveal reveal-delay-1">
<p>
Browse all active Biodyn projects in one place, including concise project descriptions and current status labels.
</p>
<a href="portfolio.html" class="btn-primary">Open Portfolio Page →</a>
</div>
</div>
</section>
<!-- Foundation Model Atlases -->
<section class="atlases section" id="atlases">
<div class="container">
<div class="section-header reveal">
<span class="section-label">Foundation Model Atlases</span>
<h2 class="section-title">Mechanistic interpretability explorations</h2>
<p class="section-subtitle">
Interactive atlas modules for sparse autoencoder (SAE) feature analysis across Geneformer, scGPT, and Novae.
</p>
</div>
<div class="pub-grid" aria-live="polite">
<article class="pub-card reveal reveal-delay-1">
<div class="pub-type">Atlas Module</div>
<h3>
<a class="pub-title-link" href="https://biodyn-ai.github.io/geneformer-atlas/" target="_blank" rel="noopener">
Geneformer Atlas
</a>
</h3>
<p>
Interactive SAE mechanistic interpretability exploration for Geneformer, focused on feature-level biological semantics and circuit inspection.
</p>
<div class="pub-meta">
<span>SAE Mechanistic Interpretability</span>
<span>Model: Geneformer</span>
</div>
<a class="pub-link" href="https://biodyn-ai.github.io/geneformer-atlas/" target="_blank" rel="noopener">Open atlas</a>
</article>
<article class="pub-card reveal reveal-delay-2">
<div class="pub-type">Atlas Module</div>
<h3>
<a class="pub-title-link" href="https://biodyn-ai.github.io/scgpt-atlas/" target="_blank" rel="noopener">
scGPT Atlas
</a>
</h3>
<p>
Interactive SAE mechanistic interpretability exploration for scGPT, including atlas views for feature behavior across biological contexts.
</p>
<div class="pub-meta">
<span>SAE Mechanistic Interpretability</span>
<span>Model: scGPT</span>
</div>
<a class="pub-link" href="https://biodyn-ai.github.io/scgpt-atlas/" target="_blank" rel="noopener">Open atlas</a>
</article>
<article class="pub-card reveal reveal-delay-3">
<div class="pub-type">Atlas Module</div>
<h3>
<a class="pub-title-link" href="https://biodyn-ai.github.io/novae-atlas/" target="_blank" rel="noopener">
Novae Atlas
</a>
</h3>
<p>
Interactive SAE mechanistic interpretability exploration for Novae, with atlas views for feature structure and biological program organization.
</p>
<div class="pub-meta">
<span>SAE Mechanistic Interpretability</span>
<span>Model: Novae</span>
</div>
<a class="pub-link" href="https://biodyn-ai.github.io/novae-atlas/" target="_blank" rel="noopener">Open atlas</a>
</article>
</div>
</div>
</section>
<!-- Publications & Reports -->
<section class="publications section" id="publications">
<div class="container">
<div class="section-header reveal">
<span class="section-label">Publications & Reports</span>
<h2 class="section-title">Research outputs</h2>
<p class="section-subtitle">
Preprints, papers, and public research outputs from the Biodyn pipeline.
</p>
</div>
<div class="pub-grid" id="articlesList" aria-live="polite"></div>
<div class="section-actions reveal reveal-delay-1">
<a href="blog.html" class="btn-secondary">Open Blog Page →</a>
</div>
</div>
</section>
<!-- Collaborations -->
<section class="collaborations section" id="collaborations">
<div class="container">
<div class="section-header reveal">
<span class="section-label">Collaborations</span>
<h2 class="section-title">Academic collaborations and research engagements</h2>
<p class="section-subtitle">
We collaborate with academic labs and also maintain technical exchanges around models developed externally. Where noted as a research engagement, this reflects discussion and input rather than formal co-development.
</p>
</div>
<div class="collab-grid">
<div class="collab-group reveal reveal-delay-1">
<div class="collab-group-header">
<h3>Research labs</h3>
<p>Academic groups with whom we collaborate directly on biological foundation models and adjacent interpretability questions.</p>
</div>
<div class="collab-list">
<article class="collab-card">
<div class="pub-type">Research Collaboration</div>
<h3>
<a class="pub-title-link" href="https://www.theodorislab.gladstone.org" target="_blank" rel="noopener">
Theodoris Lab
</a>
</h3>
<p>
Collaborative research around biological foundation models, network biology, and mechanistic interpretability in the Geneformer ecosystem.
</p>
<div class="pub-meta">
<span>Gladstone Institutes</span>
<span>Geneformer</span>
</div>
<div class="collab-links">
<a class="pub-link" href="https://www.theodorislab.gladstone.org" target="_blank" rel="noopener">Lab website</a>
<a class="pub-link" href="https://www.nature.com/articles/s41586-023-06139-9" target="_blank" rel="noopener">Related paper</a>
</div>
</article>
<article class="collab-card">
<div class="pub-type">Research Collaboration</div>
<h3>Université Paris-Saclay, Laboratory of Mathematics and Computer Science</h3>
<p>
Collaborative research around spatial foundation models and interpretable analysis for spatial transcriptomics and tissue organization.
</p>
<div class="pub-meta">
<span>Spatial Transcriptomics</span>
<span>Novae</span>
</div>
<div class="collab-links">
<a class="pub-link" href="https://www.nature.com/articles/s41592-025-02899-6" target="_blank" rel="noopener">Related paper</a>
</div>
</article>
</div>
</div>
<div class="collab-group reveal reveal-delay-2">
<div class="collab-group-header">
<h3>Research engagements with model developers</h3>
<p>Independent mechanistic interpretability work informed by direct discussion and feedback from the teams behind the models.</p>
</div>
<div class="collab-list">
<article class="collab-card">
<div class="pub-type">Research Engagement</div>
<h3>GenBio AI</h3>
<p>
We are applying our mechanistic interpretability toolkit to GenBio-PathFM, a histopathology foundation model by GenBio AI. The work benefits from discussion and input from the team while remaining an independent interpretability effort.
</p>
<div class="pub-meta">
<span>GenBio-PathFM</span>
<span>Histopathology</span>
</div>
</article>
<article class="collab-card">
<div class="pub-type">Research Engagement</div>
<h3>InstaDeep</h3>
<p>
We are applying our mechanistic interpretability toolkit to Nucleotide Transformer. This work has been informed by direct exchange with the team while remaining separate from model development.
</p>
<div class="pub-meta">
<span>Nucleotide Transformer</span>
<span>Genomics</span>
</div>
</article>
</div>
</div>
</div>
</div>
</section>
<!-- Team -->
<section class="team section" id="team">
<div class="container">
<div class="section-header reveal" style="text-align: center;">
<span class="section-label">Team</span>
<h2 class="section-title">Led by</h2>
</div>
<div class="team-card reveal">
<div class="team-avatar">IK</div>
<h3>Ihor Kendiukhov</h3>
<div class="team-role">Founder & Principal Researcher</div>
<div class="team-affiliation">University of Tübingen, Computer Science Department</div>
<p class="team-bio">
Building at the intersection of AI interpretability and systems biology. Research focus on mechanistic understanding of biological foundation models, gene regulatory network inference, and agentic R&D automation.
</p>
<div class="team-links">
<a href="https://github.com/Kendiukhov" target="_blank" rel="noopener" class="team-link">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>
GitHub
</a>
<a href="mailto:kenduhov.ig@gmail.com" class="team-link">
Email
</a>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="container">
<div class="footer-content">
<span class="footer-logo">Biodyn</span>
<span class="footer-text">© 2026 Biodyn Research Project. All rights reserved.</span>
<div class="footer-links">
<a href="blog.html">Blog</a>
<a href="portfolio.html">Portfolio</a>
<a href="https://github.com/orgs/Biodyn-AI/repositories" target="_blank" rel="noopener">GitHub</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSdfnxPmdCtrHqDenf0VECp3H0sphOy1uEfQ1UYsbO3NwCVlkQ/viewform?usp=dialog" target="_blank" rel="noopener">Contact Form</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSedo8RPXfIl5ISE2ar7TDx9Me0vlVwfCHOzZ8NI7BDNiueTsw/viewform?usp=sharing&ouid=108024776730411231677" target="_blank" rel="noopener">Subscribe</a>
<a href="mailto:kenduhov.ig@gmail.com">Contact</a>
</div>
</div>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>