mirror of
https://github.com/rndlabsoy/fly-brain-full.git
synced 2026-09-10 11:20:43 +02:00
c4117987e7
- Two-fly simultaneous brain simulation (two_flies.py): identical connectomes develop emergent individuality through independent sensory experience - Neural integration metrics (consciousness.py): IIT Phi, Global Workspace broadcast, Self-Model, Perturbation Complexity — computed every 500ms - Hebbian synaptic plasticity across all 15M synapses with weight tracking - Physics watchdog for automatic NaN/freeze recovery in long runs - Procedural arena with chunk-based world generation (procedural_arena.py) - Paper: "Emergent Individuality in Whole-Brain Connectome Simulations of Drosophila melanogaster" (English + Spanish, 14 pages, 10 figures) - 20 experimental sessions (8 paired two-fly + 4 single-fly baselines) - Plasticity weight snapshots for both flies after 24h of simulation - Analysis scripts for plasticity divergence, overnight evolution - Publication-quality figures at 300 DPI (paper_figures/) - Restructured README for bioRxiv reproducibility - Git LFS for large binary files (*.pt, *.mp4) - Removed old paper drafts superseded by programmatic generation
753 lines
28 KiB
HTML
753 lines
28 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Embodied Drosophila — Whole-Brain Connectome Simulation in a Biomechanical Body</title>
|
|
<meta name="description" content="138,639 spiking neurons from the FlyWire connectome driving a biomechanical fruit fly body with vision, olfaction, gustation, flight, and escape behaviors. Open-source GPU-accelerated simulation.">
|
|
<meta name="keywords" content="Drosophila, fruit fly, brain simulation, connectome, spiking neural network, NeuroMechFly, MuJoCo, embodied neuroscience, computational neuroscience, FlyWire, whole-brain model, virtual flight, escape behavior, Giant Fiber, GPU simulation, PyTorch, LIF neurons">
|
|
<meta name="author" content="E. Rojas — Enrique Manuel Rojas Aliaga">
|
|
<meta name="robots" content="index, follow">
|
|
<link rel="canonical" href="https://erojasoficial-byte.github.io/fly-brain/">
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:title" content="Embodied Drosophila — 138K-Neuron Brain in a Virtual Body">
|
|
<meta property="og:description" content="The first whole-brain connectome-driven embodied fruit fly simulation. 138,639 LIF neurons on GPU connected to a biomechanical body with compound-eye vision, olfaction, gustation, flight, and emergent behaviors.">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://erojasoficial-byte.github.io/fly-brain/">
|
|
|
|
<!-- Twitter -->
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Embodied Drosophila — 138K-Neuron Brain Simulation">
|
|
<meta name="twitter:description" content="Whole-brain connectome simulation in a physics-based biomechanical body. Open source.">
|
|
|
|
<!-- JSON-LD Structured Data -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "SoftwareApplication",
|
|
"name": "Embodied Drosophila",
|
|
"description": "138,639 spiking neuron whole-brain simulation of Drosophila melanogaster connected to a biomechanical body (NeuroMechFly v2) with compound-eye vision, olfaction, gustation, somatosensation, courtship song, and virtual flight.",
|
|
"applicationCategory": "Scientific Software",
|
|
"operatingSystem": "Windows, Linux",
|
|
"url": "https://github.com/erojasoficial-byte/fly-brain",
|
|
"author": {
|
|
"@type": "Person",
|
|
"name": "Enrique Manuel Rojas Aliaga"
|
|
},
|
|
"license": "https://opensource.org/licenses/MIT",
|
|
"programmingLanguage": ["Python", "CUDA"],
|
|
"keywords": "Drosophila, connectome, spiking neural network, embodied neuroscience, computational neuroscience, NeuroMechFly, MuJoCo"
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
:root {
|
|
--bg: #0a0e17;
|
|
--bg2: #111827;
|
|
--bg3: #1a2332;
|
|
--text: #e2e8f0;
|
|
--text2: #94a3b8;
|
|
--accent: #38bdf8;
|
|
--accent2: #818cf8;
|
|
--green: #4ade80;
|
|
--orange: #fb923c;
|
|
--pink: #f472b6;
|
|
--border: #1e293b;
|
|
}
|
|
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
|
|
body {
|
|
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
|
|
background: var(--bg);
|
|
color: var(--text);
|
|
line-height: 1.7;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
/* Hero */
|
|
.hero {
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
text-align: center;
|
|
padding: 2rem;
|
|
background: radial-gradient(ellipse at 50% 0%, rgba(56, 189, 248, 0.08) 0%, transparent 60%),
|
|
radial-gradient(ellipse at 80% 50%, rgba(129, 140, 248, 0.06) 0%, transparent 50%),
|
|
var(--bg);
|
|
position: relative;
|
|
}
|
|
|
|
.hero::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0; left: 0; right: 0; bottom: 0;
|
|
background-image: radial-gradient(rgba(56, 189, 248, 0.07) 1px, transparent 1px);
|
|
background-size: 40px 40px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.hero-badge {
|
|
display: inline-block;
|
|
padding: 0.4rem 1.2rem;
|
|
border: 1px solid var(--accent);
|
|
border-radius: 50px;
|
|
color: var(--accent);
|
|
font-size: 0.85rem;
|
|
letter-spacing: 0.05em;
|
|
margin-bottom: 1.5rem;
|
|
background: rgba(56, 189, 248, 0.05);
|
|
}
|
|
|
|
h1 {
|
|
font-size: clamp(2.2rem, 5vw, 4rem);
|
|
font-weight: 800;
|
|
line-height: 1.1;
|
|
margin-bottom: 1.5rem;
|
|
background: linear-gradient(135deg, #38bdf8, #818cf8, #f472b6);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.hero p {
|
|
font-size: 1.2rem;
|
|
color: var(--text2);
|
|
max-width: 700px;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.hero-stats {
|
|
display: flex;
|
|
gap: 2rem;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
margin-bottom: 2.5rem;
|
|
}
|
|
|
|
.stat {
|
|
text-align: center;
|
|
}
|
|
|
|
.stat-value {
|
|
font-size: 2rem;
|
|
font-weight: 800;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 0.8rem;
|
|
color: var(--text2);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
}
|
|
|
|
.cta-group {
|
|
display: flex;
|
|
gap: 1rem;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
|
|
.btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 0.8rem 1.8rem;
|
|
border-radius: 8px;
|
|
font-size: 1rem;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.btn-primary {
|
|
background: var(--accent);
|
|
color: var(--bg);
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background: #7dd3fc;
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 8px 30px rgba(56, 189, 248, 0.3);
|
|
}
|
|
|
|
.btn-secondary {
|
|
border: 1px solid var(--border);
|
|
color: var(--text);
|
|
background: var(--bg2);
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
border-color: var(--accent);
|
|
background: var(--bg3);
|
|
}
|
|
|
|
/* Sections */
|
|
section {
|
|
padding: 5rem 2rem;
|
|
max-width: 1100px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 2rem;
|
|
font-weight: 700;
|
|
margin-bottom: 1rem;
|
|
color: var(--text);
|
|
}
|
|
|
|
h2 span {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.section-sub {
|
|
color: var(--text2);
|
|
font-size: 1.1rem;
|
|
margin-bottom: 3rem;
|
|
max-width: 650px;
|
|
}
|
|
|
|
/* Architecture diagram */
|
|
.arch-box {
|
|
background: var(--bg2);
|
|
border: 1px solid var(--border);
|
|
border-radius: 12px;
|
|
padding: 2rem;
|
|
font-family: 'Cascadia Code', 'Fira Code', monospace;
|
|
font-size: 0.82rem;
|
|
line-height: 1.6;
|
|
overflow-x: auto;
|
|
white-space: pre;
|
|
color: var(--text2);
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.arch-box .hl { color: var(--accent); }
|
|
.arch-box .hl2 { color: var(--green); }
|
|
.arch-box .hl3 { color: var(--orange); }
|
|
.arch-box .hl4 { color: var(--pink); }
|
|
|
|
/* Feature grid */
|
|
.features {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.feature-card {
|
|
background: var(--bg2);
|
|
border: 1px solid var(--border);
|
|
border-radius: 12px;
|
|
padding: 1.8rem;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.feature-card:hover {
|
|
border-color: var(--accent);
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 8px 30px rgba(0,0,0,0.3);
|
|
}
|
|
|
|
.feature-icon {
|
|
font-size: 2rem;
|
|
margin-bottom: 0.8rem;
|
|
}
|
|
|
|
.feature-card h3 {
|
|
font-size: 1.15rem;
|
|
margin-bottom: 0.5rem;
|
|
color: var(--text);
|
|
}
|
|
|
|
.feature-card p {
|
|
color: var(--text2);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
/* Pipeline section */
|
|
.pipeline {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0;
|
|
align-items: stretch;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.pipe-step {
|
|
flex: 1;
|
|
min-width: 150px;
|
|
padding: 1.2rem;
|
|
background: var(--bg2);
|
|
border: 1px solid var(--border);
|
|
text-align: center;
|
|
position: relative;
|
|
}
|
|
|
|
.pipe-step:first-child { border-radius: 12px 0 0 12px; }
|
|
.pipe-step:last-child { border-radius: 0 12px 12px 0; }
|
|
|
|
.pipe-step h4 {
|
|
color: var(--accent);
|
|
font-size: 0.8rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
margin-bottom: 0.3rem;
|
|
}
|
|
|
|
.pipe-step p {
|
|
color: var(--text2);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.pipe-arrow {
|
|
display: flex;
|
|
align-items: center;
|
|
color: var(--accent);
|
|
font-size: 1.5rem;
|
|
padding: 0 0.3rem;
|
|
}
|
|
|
|
/* Behavior table */
|
|
.behavior-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.behavior-table th,
|
|
.behavior-table td {
|
|
padding: 0.8rem 1rem;
|
|
text-align: left;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.behavior-table th {
|
|
color: var(--accent);
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.behavior-table td {
|
|
color: var(--text2);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.behavior-table tr:hover td {
|
|
color: var(--text);
|
|
}
|
|
|
|
/* Code block */
|
|
.code-block {
|
|
background: var(--bg2);
|
|
border: 1px solid var(--border);
|
|
border-radius: 12px;
|
|
padding: 1.5rem 2rem;
|
|
font-family: 'Cascadia Code', 'Fira Code', monospace;
|
|
font-size: 0.85rem;
|
|
overflow-x: auto;
|
|
margin: 1.5rem 0;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
.code-block .comment { color: #6b7280; }
|
|
.code-block .cmd { color: var(--green); }
|
|
|
|
/* Contribute */
|
|
.contribute-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
gap: 1rem;
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.contrib-item {
|
|
background: var(--bg3);
|
|
border: 1px solid var(--border);
|
|
border-radius: 8px;
|
|
padding: 1.2rem;
|
|
}
|
|
|
|
.contrib-item h4 {
|
|
color: var(--accent);
|
|
margin-bottom: 0.3rem;
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.contrib-item p {
|
|
color: var(--text2);
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
/* Footer */
|
|
footer {
|
|
text-align: center;
|
|
padding: 3rem 2rem;
|
|
border-top: 1px solid var(--border);
|
|
color: var(--text2);
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
footer a {
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
}
|
|
|
|
footer a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.footer-links {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 2rem;
|
|
margin-bottom: 1rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
/* Responsive */
|
|
@media (max-width: 768px) {
|
|
.hero-stats { gap: 1.2rem; }
|
|
.stat-value { font-size: 1.5rem; }
|
|
.pipe-arrow { display: none; }
|
|
.pipe-step { border-radius: 8px !important; }
|
|
.pipeline { flex-direction: column; gap: 0.5rem; }
|
|
section { padding: 3rem 1.2rem; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<!-- ==================== HERO ==================== -->
|
|
<div class="hero">
|
|
<span class="hero-badge">Open Source Research Project</span>
|
|
<h1>Embodied Drosophila</h1>
|
|
<p>The first whole-brain connectome-driven simulation of a fruit fly in a physics-based biomechanical body. 138,639 spiking neurons. Compound-eye vision. Olfaction. Gustation. Flight. All from the real connectome.</p>
|
|
|
|
<div class="hero-stats">
|
|
<div class="stat">
|
|
<div class="stat-value">138,639</div>
|
|
<div class="stat-label">LIF Neurons</div>
|
|
</div>
|
|
<div class="stat">
|
|
<div class="stat-value">5M+</div>
|
|
<div class="stat-label">Synapses</div>
|
|
</div>
|
|
<div class="stat">
|
|
<div class="stat-value">6</div>
|
|
<div class="stat-label">Sensory Systems</div>
|
|
</div>
|
|
<div class="stat">
|
|
<div class="stat-value">0.1ms</div>
|
|
<div class="stat-label">Timestep</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="cta-group">
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain" class="btn btn-primary">
|
|
View on GitHub
|
|
</a>
|
|
<a href="#quickstart" class="btn btn-secondary">
|
|
Quick Start
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- ==================== WHAT ==================== -->
|
|
<section>
|
|
<h2>What is <span>Embodied Drosophila</span>?</h2>
|
|
<p class="section-sub">A complete virtual fruit fly where every behavior emerges from the connectome — no hardcoded rules, no if-else chains for actions.</p>
|
|
|
|
<div class="features">
|
|
<div class="feature-card">
|
|
<div class="feature-icon">🧠</div>
|
|
<h3>Whole-Brain Simulation</h3>
|
|
<p>138,639 Leaky Integrate-and-Fire neurons running on GPU (PyTorch) at 0.1ms resolution. Connectivity from FlyWire v783 — the most complete Drosophila connectome.</p>
|
|
</div>
|
|
<div class="feature-card">
|
|
<div class="feature-icon">🐞</div>
|
|
<h3>Biomechanical Body</h3>
|
|
<p>NeuroMechFly v2 with 6 articulated legs, contact sensors, adhesion pads, and compound eyes. Physics simulated by MuJoCo at 10kHz.</p>
|
|
</div>
|
|
<div class="feature-card">
|
|
<div class="feature-icon">👁</div>
|
|
<h3>Compound-Eye Vision</h3>
|
|
<p>750 ommatidia per eye with a full motion detection cascade (T1-T5 neurons). Looming detection via LC4 triggers escape through the Giant Fiber.</p>
|
|
</div>
|
|
<div class="feature-card">
|
|
<div class="feature-icon">👃</div>
|
|
<h3>Olfaction & Chemotaxis</h3>
|
|
<p>~2,600 olfactory receptor neurons with bilateral gradient sensing. The fly navigates toward food and away from danger using real antenna geometry.</p>
|
|
</div>
|
|
<div class="feature-card">
|
|
<div class="feature-icon">👅</div>
|
|
<h3>Gustation & Feeding</h3>
|
|
<p>Tarsal taste detection through leg contact. Sugar triggers proboscis extension; bitter compounds trigger avoidance. Proboscis extends via a dynamic hinge joint.</p>
|
|
</div>
|
|
<div class="feature-card">
|
|
<div class="feature-icon">✈️</div>
|
|
<h3>Virtual Flight</h3>
|
|
<p>Giant Fiber activation triggers takeoff. The fly lifts off, hovers, steers via descending neurons, and lands with a controlled descent. 3D forces applied to the thorax.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ==================== ARCHITECTURE ==================== -->
|
|
<section>
|
|
<h2>System <span>Architecture</span></h2>
|
|
<p class="section-sub">Brain and body run at different timescales and communicate through descending neurons, just like the real fly.</p>
|
|
|
|
<div class="arch-box"><span class="hl">BRAIN</span> (GPU / PyTorch) <span class="hl2">BODY</span> (MuJoCo / flygym)
|
|
┌─────────────────────────────────────┐ ┌───────────────────────────┐
|
|
│ 138,639 LIF neurons │ │ NeuroMechFly v2 │
|
|
│ 5M+ synapses (sparse GPU) │ │ 6 legs x 3 joints │
|
|
│ │ │ compound eyes (2 x 750) │
|
|
│ <span class="hl3">Visual</span>: T1─T2─T3─T4/T5─LC4─GF │ │ contact sensors │
|
|
│ <span class="hl3">Olfactory</span>: ORN─PN─KC─MBON │ DN │ adhesion pads │
|
|
│ <span class="hl3">Gustatory</span>: GRN─SEZ─MN │───►│ proboscis (hinge joint) │
|
|
│ <span class="hl3">Somatosensory</span>: mechano─IN─MN │ │ looming arena │
|
|
│ <span class="hl4">Flight</span>: GF ─► xfrc_applied │ │ taste/odor zones │
|
|
└─────────────────────────────────────┘ └───────────────────────────┘</div>
|
|
</section>
|
|
|
|
<!-- ==================== BEHAVIORS ==================== -->
|
|
<section>
|
|
<h2>Emergent <span>Behaviors</span></h2>
|
|
<p class="section-sub">All behaviors arise from connectome-driven neural activity. The brain-body bridge translates descending neuron firing rates into locomotion modes.</p>
|
|
|
|
<table class="behavior-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Behavior</th>
|
|
<th>Neural Pathway</th>
|
|
<th>Trigger</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><strong>Walking</strong></td>
|
|
<td>DN rates → CPG modulation</td>
|
|
<td>Default locomotion (tripod/tetrapod gait)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Escape Flight</strong></td>
|
|
<td>LC4 → Giant Fiber → DNs → xfrc_applied</td>
|
|
<td>Looming object (expanding retinal image)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Chemotaxis</strong></td>
|
|
<td>ORN → PN → KC → MBON → DN turn</td>
|
|
<td>Odor gradient (bilateral antenna comparison)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Feeding</strong></td>
|
|
<td>GRN → SEZ → MN9 → proboscis extension</td>
|
|
<td>Tarsal contact with sugar zone</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Aversion</strong></td>
|
|
<td>Bitter GRN → SEZ → avoidance motor</td>
|
|
<td>Tarsal contact with bitter zone</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Grooming</strong></td>
|
|
<td>AMMC → antennal MN → leg sweep</td>
|
|
<td>Antennal mechanosensory activation</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Courtship Song</strong></td>
|
|
<td>P1 → pIP10 → vPR → wing MN</td>
|
|
<td>P1 neuron activation (male → female signal)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Tactile Escape</strong></td>
|
|
<td>Mechanoreceptor → ascending IN → DN</td>
|
|
<td>Sudden high contact force (>35 N)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<!-- ==================== VISION PIPELINE ==================== -->
|
|
<section>
|
|
<h2>Visual <span>Processing Pipeline</span></h2>
|
|
<p class="section-sub">The compound eye vision system implements the biological motion detection cascade found in the Drosophila optic lobe.</p>
|
|
|
|
<div class="pipeline">
|
|
<div class="pipe-step">
|
|
<h4>Retina</h4>
|
|
<p>750 ommatidia<br>per eye</p>
|
|
</div>
|
|
<div class="pipe-arrow">→</div>
|
|
<div class="pipe-step">
|
|
<h4>T1 (Lamina)</h4>
|
|
<p>Luminance →<br>contrast</p>
|
|
</div>
|
|
<div class="pipe-arrow">→</div>
|
|
<div class="pipe-step">
|
|
<h4>T2 (Medulla)</h4>
|
|
<p>Temporal<br>derivative</p>
|
|
</div>
|
|
<div class="pipe-arrow">→</div>
|
|
<div class="pipe-step">
|
|
<h4>T4/T5</h4>
|
|
<p>Directional<br>motion energy</p>
|
|
</div>
|
|
<div class="pipe-arrow">→</div>
|
|
<div class="pipe-step">
|
|
<h4>LC4 → GF</h4>
|
|
<p>Looming →<br>escape</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ==================== QUICK START ==================== -->
|
|
<section id="quickstart">
|
|
<h2><span>Quick</span> Start</h2>
|
|
<p class="section-sub">Get the simulation running in under 5 minutes.</p>
|
|
|
|
<div class="code-block">
|
|
<span class="comment"># Clone the repository</span>
|
|
<span class="cmd">git clone https://github.com/erojasoficial-byte/fly-brain.git</span>
|
|
<span class="cmd">cd fly-brain</span>
|
|
|
|
<span class="comment"># Create conda environment</span>
|
|
<span class="cmd">conda env create -f environment.yml</span>
|
|
<span class="cmd">conda activate brain-fly</span>
|
|
<span class="cmd">pip install flygym mujoco</span>
|
|
|
|
<span class="comment"># Run the embodied simulation with visuals and brain monitor</span>
|
|
<span class="cmd">python fly_embodied.py --visual --monitor</span>
|
|
|
|
<span class="comment"># Enable virtual flight</span>
|
|
<span class="cmd">python fly_embodied.py --visual --monitor --flight</span>
|
|
|
|
<span class="comment"># Add olfactory and gustatory stimuli</span>
|
|
<span class="cmd">python fly_embodied.py --visual --monitor --flight --sugar 10,0 --odor attractive,15,5</span>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ==================== BENCHMARK ==================== -->
|
|
<section>
|
|
<h2>Neural Simulation <span>Benchmarks</span></h2>
|
|
<p class="section-sub">The project includes benchmarks comparing four GPU/CPU frameworks for simulating the same 138K-neuron network.</p>
|
|
|
|
<table class="behavior-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Framework</th>
|
|
<th>Backend</th>
|
|
<th>Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><strong>Brian2</strong></td>
|
|
<td>C++ standalone (multi-core CPU)</td>
|
|
<td>Ready</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Brian2CUDA</strong></td>
|
|
<td>CUDA standalone (GPU)</td>
|
|
<td>Ready</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>PyTorch</strong></td>
|
|
<td>Sparse CUDA (GPU)</td>
|
|
<td>Ready — used in embodied simulation</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>NEST GPU</strong></td>
|
|
<td>Custom CUDA kernel (user_m1)</td>
|
|
<td>Ready</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<!-- ==================== CONTRIBUTE ==================== -->
|
|
<section>
|
|
<h2>Contribute to <span>Embodied Drosophila</span></h2>
|
|
<p class="section-sub">This is an open research project. Whether you're a neuroscientist, roboticist, ML engineer, or student — you're welcome to contribute.</p>
|
|
|
|
<div class="contribute-grid">
|
|
<div class="contrib-item">
|
|
<h4>New Sensory Modalities</h4>
|
|
<p>Auditory (Johnston's organ), hygrosensation, thermosensation, gravity sensing</p>
|
|
</div>
|
|
<div class="contrib-item">
|
|
<h4>Circuit Analysis</h4>
|
|
<p>Identify and validate specific neural circuits in the FlyWire connectome</p>
|
|
</div>
|
|
<div class="contrib-item">
|
|
<h4>Behavioral Validation</h4>
|
|
<p>Compare simulated behaviors against real Drosophila experimental data</p>
|
|
</div>
|
|
<div class="contrib-item">
|
|
<h4>Performance & Scale</h4>
|
|
<p>GPU optimization, multi-GPU support, neuromorphic hardware ports (Loihi, SpiNNaker)</p>
|
|
</div>
|
|
<div class="contrib-item">
|
|
<h4>Learning & Memory</h4>
|
|
<p>Implement mushroom body plasticity, associative learning, habituation</p>
|
|
</div>
|
|
<div class="contrib-item">
|
|
<h4>Visualization</h4>
|
|
<p>Better real-time monitors, VR integration, data dashboards, 3D neural activity maps</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="text-align: center; margin-top: 2.5rem;">
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain/issues" class="btn btn-primary">
|
|
Open an Issue
|
|
</a>
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain/pulls" class="btn btn-secondary">
|
|
Submit a PR
|
|
</a>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ==================== PAPERS ==================== -->
|
|
<section>
|
|
<h2>Technical <span>Papers</span></h2>
|
|
<p class="section-sub">Detailed documentation of the complete system, from neural model to biomechanics.</p>
|
|
|
|
<div class="features" style="grid-template-columns: 1fr 1fr;">
|
|
<div class="feature-card">
|
|
<h3>English Paper</h3>
|
|
<p>Full technical paper covering architecture, sensory systems, virtual flight, and emergent behaviors.</p>
|
|
<br>
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain/blob/main/paper_embodied_drosophila.md" style="color: var(--accent);">Read on GitHub →</a>
|
|
</div>
|
|
<div class="feature-card">
|
|
<h3>Paper en Español</h3>
|
|
<p>Artículo técnico completo que cubre la arquitectura, sistemas sensoriales, vuelo virtual y comportamientos emergentes.</p>
|
|
<br>
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain/blob/main/paper_embodied_drosophila_es.md" style="color: var(--accent);">Leer en GitHub →</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ==================== FOOTER ==================== -->
|
|
<footer>
|
|
<div class="footer-links">
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain">GitHub</a>
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain/issues">Issues</a>
|
|
<a href="https://github.com/erojasoficial-byte/fly-brain/blob/main/LICENSE">MIT License</a>
|
|
<a href="https://flywire.ai/">FlyWire</a>
|
|
<a href="https://neuromechfly.org/">NeuroMechFly</a>
|
|
</div>
|
|
<p>Embodied Drosophila — Enrique Manuel Rojas Aliaga — 2026</p>
|
|
<p style="margin-top: 0.5rem; font-size: 0.75rem; color: #475569;">
|
|
Drosophila brain simulation • Connectome-driven embodied neuroscience • FlyWire v783 • NeuroMechFly v2 • MuJoCo
|
|
</p>
|
|
</footer>
|
|
|
|
</body>
|
|
</html>
|