Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ unlisted: true

<p>Advances in neuroscience, brain-computer interfaces (BCIs), biologically inspired AI, and whole-brain emulation are accelerating rapidly. Together, they unlock a future where we can better understand intelligence, restore and expand human capabilities, and build entirely new forms of human-machine interaction. However, the field today remains fragmented: key technical, regulatory, infrastructure, and capital bottlenecks continue to slow progress. We aim to change that.</p>

<p>PL Neuro exists to break bottlenecks: to define the milestones neurotech and NeuroAI need, drive the research that shifts what&#x27;s believed possible, and route talent and capital to some of humanity&#x27;s hardest and most important problems.</p>
<p><a href="https://www.plneuro.xyz/">PL Neuro</a> exists to break bottlenecks: to define the milestones neurotech and NeuroAI need, drive the research that shifts what&#x27;s believed possible, and route talent and capital to some of humanity&#x27;s hardest and most important problems.</p>

<p>We focus on three opportunity spaces that could reshape both neuroscience and computing over the coming decade:</p>

Expand Down Expand Up @@ -96,6 +96,12 @@ unlisted: true

</ul>

<h3>Inflection Points</h3>

<p>An inflection point is a specific moment when field momentum can shift dramatically to accelerate progress.</p>

<p>Looking forward, clinical capabilities that create demand beyond medical use and an open BCI app ecosystem could greatly accelerate adoption.</p>

<div class="inflection">
<div class="inflection-head"><span class="inflection-eyebrow">Inflection point #1:</span></div>
<p class="inflection-title">Clinical BCI Superpower</p>
Expand Down Expand Up @@ -152,6 +158,10 @@ unlisted: true

</ul>

<h3>Inflection Points</h3>

<p>For NeuroAI, learning directly from neural data and achieving major energy savings through brain-inspired computing could mark the next inflection points.</p>

<div class="inflection">
<div class="inflection-head"><span class="inflection-eyebrow">Inflection point #1:</span></div>
<p class="inflection-title">Neural Distillation</p>
Expand Down Expand Up @@ -210,6 +220,10 @@ unlisted: true

</ul>

<h3>Inflection Points</h3>

<p>In whole organism emulation, demonstrating memory retrieval in simulation and completing a whole mouse-brain connectome could substantially accelerate progress.</p>

<div class="inflection">
<div class="inflection-head"><span class="inflection-eyebrow">Inflection point #1:</span></div>
<p class="inflection-title">Memory Retrieval in Simulation</p>
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 52 additions & 0 deletions scripts/neuro-content.test.mjs
Original file line number Diff line number Diff line change
@@ -1,12 +1,64 @@
import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
import { test } from 'node:test'
import postcss from 'postcss'
import { JSDOM } from 'jsdom'
const read = (file) => readFileSync(new URL('../' + file, import.meta.url), 'utf8')
const article = JSON.parse(read('src/data/generated/blog.json')).find(post => post.title === 'Neurotech as a Frontier for Human Flourishing')
test('Neuro opportunity spaces render as bullets', () => {
assert.ok(/<ul>\s*<li>Neural Augmentation \(Brain-Computer Interfaces\)<\/li>\s*<li>Biologically Inspired Intelligence \(NeuroAI\)<\/li>\s*<li>Whole Organism Emulation \(WOE\)<\/li>\s*<\/ul>/.test(article.html), 'Introductory opportunity spaces must be an unordered list')
})

test('Looking Ahead keeps its exact milestones in a visibly numbered prose list', () => {
const { document } = new JSDOM(`<article class="page-content">${article.html}</article>`).window
const heading = [...document.querySelectorAll('h2')].find(h => h.textContent === 'Looking Ahead')
const list = heading.nextElementSibling.nextElementSibling
assert.equal(list.tagName, 'OL')
assert.deepEqual([...list.children].map(li => li.textContent), [
'10,000 invasive high-bandwidth neural implants in humans',
'100,000,000 hours of human neural data',
'A whole brain mouse connectome completed',
])
// Tailwind Preflight removes native markers; prose must explicitly restore them.
const styles = {}
postcss.parse(read('src/app/globals.css')).walkRules(rule => {
if (rule.selector === '.page-content ol:not([class])') {
rule.walkDecls(decl => { styles[decl.prop] = decl.value })
}
})
assert.equal(styles['list-style-type'], 'decimal', 'Ordinary prose ordered lists need visible decimal markers')
assert.ok(parseFloat(styles['padding-left']) > 0, 'Outside markers need an inset')
})

test('Each opportunity space introduces its inflection cards, with the definition only in the first', () => {
const { document } = new JSDOM(article.html).window
const intros = [...document.querySelectorAll('h3')].filter(h => h.textContent === 'Inflection Points')
assert.equal(intros.length, 3, 'Each of the three opportunity spaces needs a section heading')
const approvedIntros = [
"Looking forward, clinical capabilities that create demand beyond medical use and an open BCI app ecosystem could greatly accelerate adoption.",
"For NeuroAI, learning directly from neural data and achieving major energy savings through brain-inspired computing could mark the next inflection points.",
"In whole organism emulation, demonstrating memory retrieval in simulation and completing a whole mouse-brain connectome could substantially accelerate progress."
]
for (const [index, heading] of intros.entries()) {
let intro = heading.nextElementSibling
if (index === 0) {
assert.equal(intro.textContent, 'An inflection point is a specific moment when field momentum can shift dramatically to accelerate progress.')
intro = intro.nextElementSibling
}
assert.equal(intro.textContent, approvedIntros[index])
assert.ok(intro.nextElementSibling.classList.contains('inflection'))
}
assert.equal((article.html.match(/An inflection point is/g) || []).length, 1)
assert.equal(document.querySelectorAll('.inflection').length, 6)
})

test('PL Neuro in the mission paragraph links to its official site', () => {
const { document } = new JSDOM(article.html).window
const mission = [...document.querySelectorAll('p')].find(p => p.textContent.startsWith('PL Neuro exists to break bottlenecks:'))
assert.equal(mission.querySelector('a')?.textContent, 'PL Neuro')
assert.equal(mission.querySelector('a')?.getAttribute('href'), 'https://www.plneuro.xyz/')
})

test('Neuro interface wording uses directly', () => {
assert.ok(article.html.includes('how directly they interact with neural tissue'))
assert.ok(!article.html.includes('how invasively they interact'))
Expand Down
11 changes: 11 additions & 0 deletions src/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,17 @@ ul:not([class]) {
list-style-type: disc;
}

/* Tailwind Preflight resets ordered lists; restore ordinary article numbering
without changing custom classed lists such as .os-list. */
.page-content ol:not([class]) {
list-style-type: decimal;
padding-left: 1rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
margin-left: 1.5rem;
margin-bottom: 1em;
}

ul:not([class]) li li {
list-style: circle;
}
Expand Down
2 changes: 1 addition & 1 deletion src/data/generated/blog.json

Large diffs are not rendered by default.