Article 04 · Open source

Broccoli: Any Search, as a Map of Its Topics

Broccoli is GenesisL1's in-house, open-source search results clustering engine. It groups the records any search returns into topics named in their own words and draws them as maps you can zoom into, on the reader's own device — for researchers, institutions and the AI agents that increasingly read on their behalf.

11 min readOpen source · MITRuns in the browser
Broccoli turns the records a search returns into a map of named topics, on the reader's own device. The maps are its real output for the first 200 PubMed records on longevity and ageing.
Sources built in11from PubMed to Wikipedia
Records per search2,000at most; 1,000 by default
Algorithms3Lingo · STC · k-means
Zoom6levels of subtopics

A search ends in a list. A field has a shape.

Ask a serious question of a scientific database and the answer arrives as a ranked list: hundreds or thousands of records, one after another. The list tells you what matches. It does not tell you what the field is made of — which questions dominate, which sit at the edges, where two lines of work meet, and what your query reached that you never meant it to.

As scientific output grows, that gap becomes the bottleneck. Storing and retrieving information are largely solved problems. Reading is not, and reading is where people — and now AI systems — spend their time.

Broccoli is built to close that gap. It is GenesisL1's in-house search results clustering engine: it takes the records a search returns, groups them into topics named in the records' own words, and draws those topics as a map you can zoom into. Before you open a single record, you see the landscape.

The same 200 PubMed records as a ranked list and as a map of 28 named topics, clustered by Lingo in the browser. Every label on the map is Broccoli's own output.

Why GenesisL1 builds a clustering engine

GenesisL1 is a public Layer 1 designed around data: a Cosmos SDK chain with an integrated EVM, built so that scientific records, the models trained on them and the rights around them can live on a ledger anyone can read and verify. Its technical foundation is the subject of the first article in this series.

It already carries one of the largest molecular datasets committed to a public ledger. On 20 October 2026, GL1X, the network's explorer, indexed 1,035,581 molecular records anchored on GenesisL1 — experimental structures from the Protein Data Bank, AlphaFold models and HLA records — and 265,852 of them are stored entirely on chain, as bytes from which the structure can be rebuilt. Machine-learning models are stored and run as on-chain objects beside them.

A network built for data at that scale needs more than storage and verification. It needs instruments that make large collections legible: tools that turn volume into structure. Broccoli is one of those instruments. The first place GenesisL1 uses it is GL1X, where every molecular structure links to its scientific literature and the papers open as a map of topics; the explorer itself is the subject of the next article in this series.

Broccoli is the reading layer of a data-first chain: verifiable data on GenesisL1, its literature in the GL1X explorer, a map of topics for researchers and the same records for AI agents. GenesisL1 figures from gl1x.com on 20 October 2026.

What Broccoli does

  • Eleven sources, one map. PubMed, Europe PMC, ClinicalTrials.gov, preprints (bioRxiv, medRxiv and more), arXiv, OpenAlex, Crossref, DOAJ, DataCite, INSPIRE-HEP and Wikipedia are built in. None needs an account or an API key, and any other search API plugs in with a few lines of code.
  • 1,000 records by default, up to 2,000 per search, fetched straight from each source within its published rate limits.
  • Three published algorithms. Lingo (Osiński, Stefanowski and Weiss, 2004), Suffix Tree Clustering (Zamir and Etzioni, 1998) and bisecting k-means (Steinbach, Karypis and Kumar, 2000), each implemented from its paper and tuned for abstracts.
  • Four zoomable maps. An organic Voronoi treemap, bubbles, a radial sunburst and a florets map — a head of broccoli seen from above, with every record a bud on a sunflower spiral — all showing the same topics.
  • Zoom that re-clusters. Click a topic and Broccoli clusters its records again into subtopics, on the spot, as deep as the records allow, up to six levels.
  • Records you can use. Citations, abstracts and links to the source, PubMed, PMC, arXiv or the DOI, with exports to RIS for Zotero, EndNote or Mendeley, and to BibTeX, CSV and JSON.
One search, four maps: organic treemap, bubbles, radial and florets. Every shape carries its name and its size, so colour is never the only cue.

How it works

  1. Search. Pick a source and query it in its own syntax — PubMed's field tags, Europe PMC's fields, INSPIRE's author and title searches — or connect your own search.
  2. Fetch. Broccoli pages through the source's API from the reader's browser, within its rate limits, and turns every answer into the same record: title, abstract, authors, venue, identifiers and subject terms.
  3. Cluster. In a Web Worker on the reader's own device, the chosen algorithm finds the phrases and concepts the records share, and names each group with words taken from the records.
  4. Explore. The topics appear as a map, sized by their records. Clicking a topic zooms in while its records are clustered again, and a second worker prepares the topics a reader is likely to open next, so most zooms are instant.

In one example, the first 200 PubMed records for a search on longevity and ageing yield 28 named topics, from Healthy Aging and Longevity and Genetic Studies to Insulin Signaling, Telomere Length and Metformin. One click on the largest topic clusters its 61 records again into 11 subtopics, among them Lifestyle Interventions, Cardiovascular Disease, Gut Microbiome and Blue Zones.

The three algorithms read the same records in three different ways:

  • Lingo looks for the labels first. It finds the main concepts the records share by factorising their term–document matrix, picks for each concept the phrase that expresses it best, and only then gathers the records that contain it. Its labels are readable phrases, and a record can sit in more than one topic.
  • Suffix Tree Clustering builds topics out of the phrases records share. Every phrase repeated across enough records is a candidate group; groups that hold mostly the same records merge. Broccoli finds the phrases with a suffix array rather than a suffix tree; the groups are the same.
  • Bisecting k-means splits first and names afterwards. All records start in one group, and the largest group is split in two, again and again, until there are enough topics; each topic is then named with the terms that set it apart from the rest. No record sits in two topics.

Records that fit no topic are not forced into one: they stay together, labelled Not in any topic, where a reader can still find them.

Zoom in and cluster again: the 61 records on healthy ageing, clustered into 11 subtopics. A second worker clusters the topics a reader is likely to open next.

Built on principles institutions can rely on

  • It runs on the reader's device. There is no clustering server, no account, no API key and nothing to install. On Broccoli's search page, queries go from the browser straight to the source the reader picks, with no Broccoli server in between.
  • Same input, same map. Every random step draws from a seeded generator. The same records with the same settings always give the same topics and the same map, so results can be reproduced and audited. A link to a search carries the whole search — source, query, filters, algorithm, map and the topic in view.
  • Words you can trace. Broccoli is lexical: it uses no embeddings and no language model. Every label is made of words from the records and is highlighted wherever it occurs, so no topic is a black box.
  • Open source, published algorithms. Released under the MIT License by Decentralized Science Labs LLC. The three algorithms are implemented from their papers, Broccoli's own additions are documented as such, and every data source is credited.
  • Made for long reading. Light and dark themes, keyboard navigation, screen-reader labels, reduced-motion support, and colours checked for contrast and colour-blind separation.

Designed for the age of AI agents

AI agents are becoming readers in their own right: they search, screen and summarise on behalf of scientists, analysts and institutions. Large result sets strain them in the same ways they strain people. Context is finite, the long tail of a result set is easy to miss, and every conclusion needs to be traceable to its evidence.

Topic structure is how any reader, human or machine, gets from volume to understanding. Broccoli gives an agent a map before it reads: a thousand records yield a few dozen labelled topics, each with its size and its list of records. An agent can read the topics first, sample every one of them and go deep where it matters, instead of working through the first page of a ranked list.

Three properties matter most for agents:

  • Structure as data. The library returns topics as plain JSON — the label, the size and the records each topic holds — ready for any agent pipeline.
  • Reproducibility. Because the clustering is deterministic, an agent's map can be regenerated from the same records and settings and checked later, by people or by other agents.
  • Grounding. Labels made of the records' own words give agents, and the people who supervise them, evidence they can verify rather than an opaque embedding space.

On GenesisL1, AI agents connected to the GL1X server for the Model Context Protocol at https://gl1x.com/mcp — Claude, ChatGPT or any other MCP client — already search the same PubMed records through its pubmed_search tool, alongside the explorer's molecular and bioinformatics tools such as BLAST and structure search. On GL1X's PubMed page, Broccoli turns those records into a map for readers, and agents can run the same library on the records they fetch.

From query to topics, all on the reader's device, with outputs for people, reference managers and AI agents.

For builders and institutions

The library is a single script of about 420 KB with no dependencies, loaded from jsDelivr or from your own server. Searching a source and clustering what it returns takes three lines:

const res = await Broccoli.searchSource('europepmc', 'tau propagation', { limit: 300 });
const result = Broccoli.cluster(Broccoli.toDocuments(res.records), { algorithm: 'lingo' });
for (const topic of result.clusters) console.log(topic.label, topic.size);

A new source is an object with a name and a function that fetches one page of results; Broccoli handles paging, rate limits, retries and record normalisation. The same engine clusters any text records you give it: support tickets, survey answers, interview notes, patents or internal documents.

That makes it useful well beyond biomedicine:

  • Research and clinical teams: literature reviews and preprint monitoring — seeing what a field is made of before reading it.
  • R&D and life-science organisations: trial landscapes, showing what is being tested, in which phase and by whom.
  • Funders, analysts and science-policy teams: the shape of a portfolio or a field, at a glance.
  • Libraries, publishers and data teams: datasets, software deposits and open-access collections, explored by topic.
Eleven sources built in, from PubMed and ClinicalTrials.gov to DataCite, INSPIRE-HEP and Wikipedia; any other search plugs in.

Know the instrument

Broccoli is a reading aid, not a verdict. It is lexical rather than semantic: records that say the same thing in different words can fall into different topics, and a word with two meanings can join them. Each source decides which records it returns and in what order. And it is not a systematic review; nothing it shows is medical advice. Knowing those limits is part of using it well.

Try it

Broccoli is live, free and open source:

The search page at genesisl1.com/broccoli/search/: pick a source, search it the way you would there, and read the answer as a map.

GenesisL1 is building the infrastructure for verifiable data, models and scientific applications. Broccoli is part of how that data gets read.

Frequently asked questions

What is Broccoli?

Broccoli is GenesisL1's in-house, open-source search results clustering engine. It groups the records a search returns into topics named in the records' own words, draws them as zoomable maps — an organic treemap, bubbles, a radial map and florets — and clusters a topic again into subtopics when you zoom in, up to six levels deep.

Does Broccoli use AI or a language model?

No. Broccoli is lexical: it clusters with three published algorithms — Lingo, Suffix Tree Clustering and bisecting k-means — and uses no embeddings and no language model. Every label is made of words from the records and is highlighted where it occurs.

Which sources can Broccoli search?

Eleven are built in: PubMed, Europe PMC, ClinicalTrials.gov, preprints (bioRxiv, medRxiv and more), arXiv, OpenAlex, Crossref, DOAJ, DataCite, INSPIRE-HEP and Wikipedia. None needs an account or an API key, and any other search API can be plugged in with a few lines of code.

Where does the clustering run?

On the reader's own device, in a Web Worker. Queries go from the browser straight to the source the reader picks; there is no Broccoli server in between, no account and nothing to install.

Can AI agents use Broccoli?

Yes. The library returns topics as plain JSON — label, size and records — and its clustering is deterministic, so an agent's map can be regenerated and checked. On GenesisL1, agents connected to the GL1X MCP server at https://gl1x.com/mcp search the same PubMed records through its pubmed_search tool.

How does Broccoli relate to GenesisL1 and GL1X?

Broccoli is developed by Decentralized Science Labs for the GenesisL1 ecosystem. GL1X, the GenesisL1 explorer, uses it on its PubMed page, where every molecular structure on the chain links to its literature and the papers open as a map of topics.

Is Broccoli open source?

Yes. Broccoli is released under the MIT License by Decentralized Science Labs LLC, with the source and documentation at github.com/GenesisL1/Broccoli.

Is Broccoli a systematic review tool?

No. Broccoli is a reading aid that shows what a set of records is made of. It groups records by shared words and phrases, not by meaning, each source decides which records it returns, and nothing it shows is medical advice.


Sources

  1. Broccoli source code, documentation and licence. Open the repository ↗
  2. Broccoli on genesisl1.com. Open the page
  3. Broccoli search page. Open the search page
  4. How it works (Broccoli documentation: how it reads text, finds and names topics, and lays out its maps). Open the guide ↗
  5. Search sources (Broccoli documentation: every built-in source, and how to write your own). Open the documentation ↗
  6. Broccoli and GenesisL1 (Broccoli documentation). Open the documentation ↗
  7. Broccoli: topic maps in the browser (GL1X documentation). Open the documentation ↗
  8. GL1X: The Ledger Is Now a Laboratory (GenesisL1 Insights). Read the article
  9. GenesisL1: The DeSci Layer 1 Where Scientific Data, Verifiable AI and Digital Rights Become One System (GenesisL1 Insights). Read the article
  10. Osiński S, Stefanowski J, Weiss D. Lingo: search results clustering algorithm based on singular value decomposition. Intelligent Information Processing and Web Mining (IIS: IIPWM'04), Springer, 2004. Open the record ↗
  11. Zamir O, Etzioni O. Web document clustering: a feasibility demonstration. Proceedings of SIGIR '98, 46–54. Open the paper ↗
  12. Steinbach M, Karypis G, Kumar V. A comparison of document clustering techniques. KDD Workshop on Text Mining, 2000. Open the report ↗
  13. Model Context Protocol. Open the specification site ↗

This article describes public software and public data. Broccoli's topics are groupings of words found in the records, not findings, and nothing it shows is medical advice. The GenesisL1 figures were read from gl1x.com on 20 October 2026.