{"doi": "10.21105/joss.10388", "chapters": [{"t": 0.0, "label": "Cold open"}, {"t": 28.15, "label": "Why this exists"}, {"t": 106.16, "label": "What they actually did"}, {"t": 239.87, "label": "What they found"}, {"t": 340.48, "label": "Caveats"}, {"t": 421.43, "label": "Who should care"}, {"t": 476.88, "label": "Outro"}], "turns": [{"beat": 1, "speaker": "A", "t": 0.0, "dur": 27.22, "text": "Brain-computer interfaces are finally becoming real. Researchers just released Eegle.jl, a new open-source toolkit built in the Julia programming language that makes it possible for scientists to analyze brain waves and train machine learning models on them together, all in one place. The catch? Until now, this kind of integrated toolkit didn't exist for Julia—only for older languages like Python and MATLAB."}, {"beat": 2, "speaker": "B", "t": 28.15, "dur": 10.88, "text": "So why Julia? I mean, Python already has MNE and scikit-learn. MATLAB has EEGLAB. Why build this from scratch in a language most neuroscientists have never heard of?"}, {"beat": 2, "speaker": "A", "t": 39.31, "dur": 50.17, "text": "Good question. Julia was specifically designed for scientific computing. It's compiled, so it's fast like C, but it reads like Python or MATLAB—your code runs efficiently without sacrificing readability. The field of EEG research is exploding: a PubMed search for 'EEG' or 'electroencephalography' returned 217,092 results as of January 2026, with momentum building since the year 2000. Brain-computer interface research especially has taken off. But Julia didn't have a unified toolkit for this work. You had NeuroAnalyzer.jl for general EEG processing and Unfold.jl for event-related potentials, but nothing that brought it all together with machine learning built in."}, {"beat": 2, "speaker": "B", "t": 89.76, "dur": 6.87, "text": "So Eegle.jl is the missing piece—a central hub for the Julia ecosystem to do EEG work?"}, {"beat": 2, "speaker": "A", "t": 96.91, "dur": 8.32, "text": "Exactly. It acts as what the authors call a foundational building block, integrating diverse packages under one roof."}, {"beat": 3, "speaker": "B", "t": 106.16, "dur": 4.16, "text": "Walk me through the architecture. What's actually inside Eegle.jl?"}, {"beat": 3, "speaker": "A", "t": 110.6, "dur": 39.59, "text": "The package is organized as a collection of independent modules. There are eight internal modules: BCI.jl for brain-computer interface machine learning based on Riemannian geometry; Database.jl for handling and selecting databases; ERPs.jl for event-related potentials and BCI trials; FileSystem.jl for file manipulation; InOut.jl for reading and writing data; Miscellaneous.jl for utility functions; Preprocessing.jl for EEG preprocessing; and Processing.jl for EEG processing."}, {"beat": 3, "speaker": "B", "t": 150.47, "dur": 2.26, "text": "And then it re-exports external packages?"}, {"beat": 3, "speaker": "A", "t": 153.01, "dur": 50.68, "text": "Right. It re-exports twelve external Julia packages: CovarianceEstimation.jl, Diagonalizations.jl, Distributions.jl, DSP.jl for digital signal processing, FourierAnalysis.jl for frequency and time-frequency analysis, LinearAlgebra.jl, NPZ.jl for NumPy data format support, PermutationTests.jl for fast permutation statistics, PosDefManifold.jl and PosDefManifoldML.jl for operations on positive-definite matrices and machine learning on them, StatsBase.jl, and Statistics.jl. The design keeps each package independent so they can be maintained and developed separately, but users get them all through one import."}, {"beat": 3, "speaker": "B", "t": 203.97, "dur": 4.95, "text": "So you're not reinventing the wheel—you're curating and connecting existing Julia tools?"}, {"beat": 3, "speaker": "A", "t": 209.2, "dur": 29.74, "text": "Precisely. Eegle.jl is small and agile by design, but mighty because it leverages the whole ecosystem. They also released pyLittleEegle, a Python clone of the BCI capabilities, so Python users can access the same workflows. And both packages work seamlessly with the FII BCI Corpus—the first large, curated, annotated corpus of databases for motor imagery and P300 BCI paradigms."}, {"beat": 4, "speaker": "B", "t": 239.87, "dur": 3.65, "text": "What's the impact so far? Has this toolkit actually been used?"}, {"beat": 4, "speaker": "A", "t": 243.8, "dur": 28.67, "text": "Yes. The toolkit has already stimulated several developments. First, it was instrumental in creating the FII BCI Corpus, which contains annotated and curated BCI databases for both motor imagery and P300 paradigms. That corpus includes EEG data, class labels, and comprehensive metadata that makes it easy to select data and extract relevant information for machine learning research."}, {"beat": 4, "speaker": "B", "t": 272.75, "dur": 7.51, "text": "That's a research output, not a result from the software itself. What about performance? Does Eegle.jl actually work well?"}, {"beat": 4, "speaker": "A", "t": 280.54, "dur": 28.14, "text": "The synergy between Eegle.jl and the corpus has resulted in a comprehensive benchmark of accuracy on BCI data using state-of-the-art Riemannian geometry classifiers. The paper doesn't report specific accuracy numbers—it's a software paper, not a machine learning benchmark paper—but the fact that they've already published benchmarks using the toolkit suggests it's functional and producing results researchers can trust."}, {"beat": 4, "speaker": "B", "t": 308.96, "dur": 2.24, "text": "And the Python interoperability piece?"}, {"beat": 4, "speaker": "A", "t": 311.48, "dur": 28.07, "text": "pyLittleEegle replicates all the core functionalities: database selection, EEG data reading and processing, data structuring for analysis, and data preparation for scikit-learn classifiers. This promotes interoperability between Julia and Python for BCI research, which the authors note is new in the community. So a Python researcher can now access the FII BCI Corpus and run the same analyses."}, {"beat": 5, "speaker": "B", "t": 340.48, "dur": 2.58, "text": "What are the limitations here? The paper itself?"}, {"beat": 5, "speaker": "A", "t": 343.34, "dur": 27.41, "text": "The paper is a software announcement, not a validation study. It doesn't include head-to-head performance comparisons with MNE or EEGLAB. It doesn't report timing benchmarks or scalability tests. The authors acknowledge that Eegle.jl is still in its infancy. And while they mention that generative AI tools were used for writing non-computing routines and for grammar checking, the core algorithms are their own work."}, {"beat": 5, "speaker": "B", "t": 371.04, "dur": 3.37, "text": "What about adoption? Julia is still niche compared to Python."}, {"beat": 5, "speaker": "A", "t": 374.69, "dur": 26.99, "text": "That's a real barrier. Most neuroscience labs use Python or MATLAB. Julia has momentum in scientific computing, but it's not yet standard in neuroscience. The authors tried to lower the barrier by making Julia's syntax flexible—you can write it like Python or C—and by releasing pyLittleEegle for Python users. But adoption will depend on the Julia community growing in neuroscience, which hasn't happened yet."}, {"beat": 5, "speaker": "B", "t": 401.95, "dur": 2.54, "text": "And the toolkit itself—is it feature-complete?"}, {"beat": 5, "speaker": "A", "t": 404.77, "dur": 15.72, "text": "The paper doesn't claim completeness. It presents the architecture and the modules available now. As with any open-source project, it will evolve. The modular design means new capabilities can be added without breaking existing code."}, {"beat": 6, "speaker": "B", "t": 421.43, "dur": 1.49, "text": "Who's the audience for this?"}, {"beat": 6, "speaker": "A", "t": 423.2, "dur": 52.75, "text": "Three groups. First, Julia developers working in neuroscience or brain-computer interfaces. If you're already using Julia and you need to analyze EEG data, this is now your toolkit. You don't have to switch languages or cobble together disparate packages. Second, BCI researchers more broadly—especially those running benchmarking studies or working with large annotated datasets. The FII BCI Corpus integration means you can now do reproducible, principled machine learning research on standardized data in either Julia or Python. Third, neuroscience software developers. If you're building tools for EEG analysis, Eegle.jl shows how to integrate a fragmented ecosystem into a coherent framework. The modular design is a template."}, {"beat": 7, "speaker": "A", "t": 476.88, "dur": 34.94, "text": "The full citation: Congedo and Doumi, 2026. Eegle: An open-source Julia integrative package for EEG data analysis and machine learning. Journal of Open Source Software, volume 11, issue 124, article 10388. The DOI is 10.21105, slash, joss.10388. You can find the code on GitHub and the paper linked in our notes. The thread is open on Colloquy."}]}