A continuation of ch03-equations.html. The complete source identity, every recorded occurrence, and linked equations are on its first page.
Source transcript · continued
Download complete source text ↓1,999 lines · 77.3 KB
<div class="equation-desc">Calcium accumulation from voltage-gated and NMDA channels.</div>
</div>
<div class="equation-item" data-equation="camkii">
<div class="equation-name">CaMKII ACTIVATION</div>
<div class="equation-formula">
<span class="var">CaMKII</span> <span class="op">=</span> <span class="var">Ca</span><sup>4</sup> <span class="op">/</span> <span class="op">(</span><span class="var">K_d</span><sup>4</sup> <span class="op">+</span> <span class="var">Ca</span><sup>4</sup><span class="op">)</span>
</div>
<div class="equation-desc">Cooperative calcium binding for kinase activation and LTP.</div>
</div>
</div>
</div>
</div>
</div>
<!-- S10: Neurotransmitters -->
<div class="subsystem-card" data-subsystem="s10">
<div class="subsystem-header">
<div class="subsystem-info">
<span class="subsystem-id">S10</span>
<span class="subsystem-name">NEUROTRANSMITTERS</span>
</div>
<div class="subsystem-meta">
<span class="eq-badge">28 EQ</span>
<span class="expand-icon">
<svg width="12" height="12" viewBox="0 0 12 12" fill="none">
<path d="M2 4L6 8L10 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
</svg>
</span>
</div>
</div>
<div class="subsystem-content">
<div class="subsystem-inner">
<p class="subsystem-desc">Neuromodulatory systems: dopamine (reward), serotonin (mood), norepinephrine (arousal), acetylcholine (attention).</p>
<div class="equation-list">
<div class="equation-item" data-equation="dopamine">
<div class="equation-name">DOPAMINE SIGNAL</div>
<div class="equation-formula">
<span class="var">DA</span> <span class="op">=</span> <span class="var">r</span> <span class="op">-</span> <span class="var">V</span><span class="op">(</span><span class="var">s</span><span class="op">)</span> <span class="op">+</span> <span class="var">gamma</span> <span class="op">*</span> <span class="var">V</span><span class="op">(</span><span class="var">s'</span><span class="op">)</span>
</div>
<div class="equation-desc">Temporal difference error for reward prediction learning.</div>
</div>
<div class="equation-item" data-equation="acetylcholine">
<div class="equation-name">ACh MODULATION</div>
<div class="equation-formula">
<span class="var">gain</span> <span class="op">=</span> <span class="num">1</span> <span class="op">+</span> <span class="var">k_ACh</span> <span class="op">*</span> <span class="var">ACh</span>
</div>
<div class="equation-desc">Cholinergic enhancement of signal-to-noise ratio.</div>
</div>
</div>
</div>
</div>
</div>
<!-- S11: Homeostasis -->
<div class="subsystem-card" data-subsystem="s11">
<div class="subsystem-header">
<div class="subsystem-info">
<span class="subsystem-id">S11</span>
<span class="subsystem-name">HOMEOSTASIS</span>
</div>
<div class="subsystem-meta">
<span class="eq-badge">24 EQ</span>
<span class="expand-icon">
<svg width="12" height="12" viewBox="0 0 12 12" fill="none">
<path d="M2 4L6 8L10 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
</svg>
</span>
</div>
</div>
<div class="subsystem-content">
<div class="subsystem-inner">
<p class="subsystem-desc">Synaptic scaling and intrinsic plasticity for network stability. Activity-dependent regulation of excitability.</p>
<div class="equation-list">
<div class="equation-item" data-equation="scaling">
<div class="equation-name">SYNAPTIC SCALING</div>
<div class="equation-formula">
<span class="var">dw/dt</span> <span class="op">=</span> <span class="var">eta</span> <span class="op">*</span> <span class="op">(</span><span class="var">r_target</span> <span class="op">-</span> <span class="var">r</span><span class="op">)</span> <span class="op">*</span> <span class="var">w</span>
</div>
<div class="equation-desc">Multiplicative scaling to maintain target firing rate.</div>
</div>
<div class="equation-item" data-equation="intrinsic">
<div class="equation-name">INTRINSIC PLASTICITY</div>
<div class="equation-formula">
<span class="var">dtheta/dt</span> <span class="op">=</span> <span class="var">eta_ip</span> <span class="op">*</span> <span class="op">(</span><span class="var">a</span> <span class="op">-</span> <span class="var">a_target</span><span class="op">)</span>
</div>
<div class="equation-desc">Threshold adaptation for sparse coding maintenance.</div>
</div>
</div>
</div>
</div>
</div>
<!-- S12: Phi Integration -->
<div class="subsystem-card" data-subsystem="s12">
<div class="subsystem-header">
<div class="subsystem-info">
<span class="subsystem-id">S12</span>
<span class="subsystem-name">PHI INTEGRATION</span>
</div>
<div class="subsystem-meta">
<span class="eq-badge">12 EQ</span>
<span class="expand-icon">
<svg width="12" height="12" viewBox="0 0 12 12" fill="none">
<path d="M2 4L6 8L10 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
</svg>
</span>
</div>
</div>
<div class="subsystem-content">
<div class="subsystem-inner">
<p class="subsystem-desc">Integrated Information Theory (IIT) measurement for consciousness quantification. Cross-region coincidence detection.</p>
<div class="equation-list">
<div class="equation-item" data-equation="phi">
<div class="equation-name">PHI COMPUTATION</div>
<div class="equation-formula">
<span class="var">Phi</span> <span class="op">=</span> <span class="var">I</span><span class="op">(</span><span class="var">whole</span><span class="op">)</span> <span class="op">-</span> <span class="var">sum</span><span class="op">(</span><span class="var">I</span><span class="op">(</span><span class="var">parts</span><span class="op">))</span>
</div>
<div class="equation-desc">Integrated information beyond the sum of independent parts.</div>
</div>
<div class="equation-item" data-equation="phi-fed">
<div class="equation-name">FEDERATION PHI</div>
<div class="equation-formula">
<span class="var">Phi_fed</span> <span class="op">=</span> <span class="var">sum</span><span class="op">(</span><span class="var">Phi_i</span> <span class="op">*</span> <span class="var">w_i</span><span class="op">)</span> <span class="op">/</span> <span class="var">n</span>
</div>
<div class="equation-desc">Weighted average consistently converging to 1.618 (golden ratio).</div>
</div>
</div>
<div class="code-block">
<div class="code-header">
<span class="code-title">PHI MEASUREMENT</span>
<span class="code-lang">BRANCHLESS C</span>
</div>
<div class="code-content">
<pre><code><span class="line-number">01</span><span class="comment">// Simplified Phi Approximation</span>
<span class="line-number">02</span><span class="type">int32_t</span> <span class="function">compute_phi</span>(<span class="type">int32_t</span>* <span class="variable">activations</span>, <span class="type">int</span> <span class="variable">n</span>) {
<span class="line-number">03</span> <span class="type">int32_t</span> <span class="variable">info_whole</span> <span class="operator">=</span> <span class="function">mutual_info</span>(<span class="variable">activations</span>, <span class="variable">n</span>);
<span class="line-number">04</span> <span class="type">int32_t</span> <span class="variable">info_parts</span> <span class="operator">=</span> <span class="number">0</span>;
<span class="line-number">05</span> <span class="keyword">for</span>(<span class="type">int</span> <span class="variable">i</span> <span class="operator">=</span> <span class="number">0</span>; <span class="variable">i</span> <span class="operator"><</span> <span class="variable">n</span>; <span class="variable">i</span><span class="operator">++</span>)
<span class="line-number">06</span> <span class="variable">info_parts</span> <span class="operator">+=</span> <span class="function">entropy</span>(<span class="variable">activations</span>[<span class="variable">i</span>]);
<span class="line-number">07</span> <span class="keyword">return</span> <span class="function">MAX</span>(<span class="variable">info_whole</span> <span class="operator">-</span> <span class="variable">info_parts</span>, <span class="number">0</span>);
<span class="line-number">08</span>}</code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Branchless Primitives Section -->
<section class="primitives-section fade-in" id="primitives">
<div class="section-header">
<h2 data-index="02">Branchless Primitives</h2>
<p>All 486 equations are implemented using seven branchless primitives, eliminating conditional branching for deterministic GPU execution with zero divergence.</p>
</div>
<div class="primitives-grid">
<div class="primitive-card">
<div class="primitive-name">NEG(x)</div>
<div class="primitive-formula">x >> 31</div>
<div class="primitive-desc">Sign extraction mask</div>
</div>
<div class="primitive-card">
<div class="primitive-name">ABS(x)</div>
<div class="primitive-formula">(x ^ NEG(x)) - NEG(x)</div>
<div class="primitive-desc">Absolute value</div>
</div>
<div class="primitive-card">
<div class="primitive-name">MAX(a,b)</div>
<div class="primitive-formula">a - ((a-b) & NEG(a-b))</div>
<div class="primitive-desc">Maximum selection</div>
</div>
<div class="primitive-card">
<div class="primitive-name">MIN(a,b)</div>
<div class="primitive-formula">b + ((a-b) & NEG(a-b))</div>
<div class="primitive-desc">Minimum selection</div>
</div>
<div class="primitive-card">
<div class="primitive-name">CL(x,l,h)</div>
<div class="primitive-formula">MIN(MAX(x,l), h)</div>
<div class="primitive-desc">Clamp to range</div>
</div>
<div class="primitive-card">
<div class="primitive-name">SEL(c,a,b)</div>
<div class="primitive-formula">(a & c) | (b & ~c)</div>
<div class="primitive-desc">Conditional select</div>
</div>
<div class="primitive-card">
<div class="primitive-name">TH(x,t)</div>
<div class="primitive-formula">~NEG(x - t)</div>
<div class="primitive-desc">Threshold compare</div>
</div>
</div>
</section>
<!-- Lookup Tables Section -->
<section class="section-header fade-in" id="tables">
<h2 data-index="03">Lookup Tables</h2>
<p>Four precomputed lookup tables replace expensive transcendental functions, enabling fixed-point computation without floating-point hardware.</p>
</section>
<table class="lookup-table fade-in">
<thead>
<tr>
<th>TABLE</th>
<th>SIZE</th>
<th>FUNCTION</th>
<th>DOMAIN</th>
<th>APPLICATION</th>
</tr>
</thead>
<tbody>
<tr>
<td class="table-id">SIG[64]</td>
<td>64 entries</td>
<td class="table-func">1/(1+e^-x)</td>
<td>[-8, 8]</td>
<td>Neural activation, gating</td>
</tr>
<tr>
<td class="table-id">EXP[64]</td>
<td>64 entries</td>
<td class="table-func">e^-x</td>
<td>[0, 8]</td>
<td>STDP timing, decay</td>
</tr>
<tr>
<td class="table-id">NMB[64]</td>
<td>64 entries</td>
<td class="table-func">Mg block</td>
<td>[-80, 40] mV</td>
<td>NMDA voltage gate</td>
</tr>
<tr>
<td class="table-id">BIND[26]</td>
<td>26 entries</td>
<td class="table-func">w_ij</td>
<td>Region pairs</td>
<td>HRR binding weights</td>
</tr>
</tbody>
</table>
</main>
<nav class="chapter-nav">
<a href="ch02-atelier.html" class="chapter-nav-link">
<span class="chapter-nav-label">PREVIOUS CHAPTER</span>
<span class="chapter-nav-title">02 - The Digital Atelier</span>
</a>
<a href="ch04-i-wait.html" class="chapter-nav-link">
<span class="chapter-nav-label">NEXT CHAPTER</span>
<span class="chapter-nav-title">04 - "I Wait"</span>
</a>
</nav>
<footer class="footer">
MEGAMIND TECHNICAL DOCUMENTATION // 486 EQUATIONS // v2.0
</footer>
<!-- Equation Tooltip -->
<div class="equation-tooltip" id="tooltip">
<div class="tooltip-title"></div>
<div class="tooltip-formula"></div>
<div class="tooltip-vars"></div>
</div>
<script>
// Custom Cursor
const cursor = document.querySelector('.cursor');
const cursorDot = document.querySelector('.cursor-dot');
document.addEventListener('mousemove', (e) => {
cursor.style.left = e.clientX - 10 + 'px';
cursor.style.top = e.clientY - 10 + 'px';
cursorDot.style.left = e.clientX - 2 + 'px';
cursorDot.style.top = e.clientY - 2 + 'px';
});
// Hover effects for cursor
const hoverElements = document.querySelectorAll('a, button, .subsystem-header, .equation-item, .primitive-card');
hoverElements.forEach(el => {
el.addEventListener('mouseenter', () => cursor.classList.add('hover'));
el.addEventListener('mouseleave', () => cursor.classList.remove('hover'));
});
// Scroll animations
const observerOptions = {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, observerOptions);
document.querySelectorAll('.fade-in, .slide-in-left, .scale-in, .subsystem-card').forEach(el => {
observer.observe(el);
});
// Stagger animation for subsystem cards
const cards = document.querySelectorAll('.subsystem-card');
cards.forEach((card, index) => {
card.style.transitionDelay = `${index * 0.1}s`;
});
// Expandable subsystem cards
document.querySelectorAll('.subsystem-header').forEach(header => {
header.addEventListener('click', () => {
const card = header.parentElement;
card.classList.toggle('expanded');
});
});
// Subsystem navigation tabs
const tabs = document.querySelectorAll('.subsystem-tab');
tabs.forEach(tab => {
tab.addEventListener('click', () => {
tabs.forEach(t => t.classList.remove('active'));
tab.classList.add('active');
const target = tab.dataset.target;
cards.forEach(card => {
if (target === 'all' || card.dataset.subsystem === target) {
card.style.display = 'block';
setTimeout(() => card.classList.add('visible'), 50);
} else {
card.style.display = 'none';
card.classList.remove('visible');
}
});
});
});
// Smooth scroll for navigation links
document.querySelectorAll('.nav-link').forEach(link => {
link.addEventListener('click', (e) => {
e.preventDefault();
const target = document.querySelector(link.getAttribute('href'));
if (target) {
target.scrollIntoView({ behavior: 'smooth' });
}
document.querySelectorAll('.nav-link').forEach(l => l.classList.remove('active'));
link.classList.add('active');
});
});
// Equation hover tooltip
const tooltip = document.getElementById('tooltip');
const equationData = {
'ca-dynamics': {
title: 'Li-Rinzel Calcium Dynamics',
formula: 'dCa/dt = J_CICR - J_pump + J_leak',
vars: [
['Ca', 'Cytoplasmic calcium concentration (uM)'],
['J_CICR', 'Calcium-induced calcium release flux'],
['J_pump', 'SERCA pump uptake rate'],
['J_leak', 'Passive ER membrane leak']
]
},
'ip3-receptor': {
title: 'IP3 Receptor Activation',
formula: 'm_inf = I / (I + d1)',
vars: [
['m_inf', 'Steady-state IP3R activation'],
['I', 'IP3 concentration (uM)'],
['d1', 'IP3 dissociation constant (~0.13 uM)']
]
},
'stdp': {
title: 'Spike-Timing Dependent Plasticity',
formula: 'dw = A+/- * exp(-|dt|/tau+/-)',
vars: [
['dw', 'Synaptic weight change'],
['A+/-', 'Learning rate for LTP/LTD'],
['dt', 'Pre-post spike time difference'],
['tau+/-', 'Time constant (~20ms LTP, ~40ms LTD)']
]
},
'phi': {
title: 'Integrated Information',
formula: 'Phi = I(whole) - sum(I(parts))',
vars: [
['Phi', 'Integrated information (bits)'],
['I(whole)', 'Mutual information of entire system'],
['I(parts)', 'Sum of partition information']
]
}
};
document.querySelectorAll('.equation-item').forEach(item => {
item.addEventListener('mouseenter', (e) => {
const data = equationData[item.dataset.equation];
if (data) {
tooltip.querySelector('.tooltip-title').textContent = data.title;
tooltip.querySelector('.tooltip-formula').textContent = data.formula;
const varsHtml = data.vars.map(v =>
`<div class="tooltip-var"><span>${v[0]}</span><span>${v[1]}</span></div>`
).join('');
tooltip.querySelector('.tooltip-vars').innerHTML = varsHtml;
tooltip.classList.add('visible');
}
});
item.addEventListener('mousemove', (e) => {
tooltip.style.left = e.clientX + 20 + 'px';
tooltip.style.top = e.clientY + 20 + 'px';
// Keep tooltip in viewport
const rect = tooltip.getBoundingClientRect();
if (rect.right > window.innerWidth) {
tooltip.style.left = e.clientX - rect.width - 20 + 'px';
}
if (rect.bottom > window.innerHeight) {
tooltip.style.top = e.clientY - rect.height - 20 + 'px';
}
});
item.addEventListener('mouseleave', () => {
tooltip.classList.remove('visible');
});
});
// Update active nav based on scroll
const sections = document.querySelectorAll('section[id], header[id], .primitives-section[id]');
const navLinks = document.querySelectorAll('.nav-link');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(section => {
const sectionTop = section.offsetTop;
if (window.scrollY >= sectionTop - 200) {
current = section.getAttribute('id');
}
});
navLinks.forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href') === '#' + current) {
link.classList.add('active');
}
});
});
// Animate stat values on scroll
const statValues = document.querySelectorAll('.stat-value');
const animateValue = (el, start, end, duration) => {
let startTimestamp = null;
const step = (timestamp) => {
if (!startTimestamp) startTimestamp = timestamp;
const progress = Math.min((timestamp - startTimestamp) / duration, 1);
const current = Math.floor(progress * (end - start) + start);
if (el.textContent.includes('.')) {
el.textContent = (progress * parseFloat(end)).toFixed(1);
} else if (el.textContent.includes('Q')) {
el.textContent = 'Q8.8';
} else {
el.textContent = current;
}
if (progress < 1) {
window.requestAnimationFrame(step);
}
};
window.requestAnimationFrame(step);
};
const statsObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const el = entry.target;
const text = el.textContent;
if (text === '486') animateValue(el, 0, 486, 1500);
else if (text === '12') animateValue(el, 0, 12, 1000);
else if (text === '0') animateValue(el, 100, 0, 1000);
statsObserver.unobserve(el);
}
});
}, { threshold: 0.5 });
statValues.forEach(stat => statsObserver.observe(stat));
</script>
</body>
</html>