Day 23: COVID Full Network – Community Transmission

Day 23: Full COVID network for Romania. Every case, every link. Transmission beyond county borders. #100DayMapChallenge.
Day 23: Full COVID-19 transmission network for Romania - #100DayMapChallenge

Day 23. How does a virus move through a community? 🦠

This is the full network view. Every case. Every connection. No geographic grouping. Each circle represents a person. Size shows how many others they infected. Curved lines represent transmission chains.

I built this in March 2020 after seeing a similar visualization by Kontinentalist for Singapore. At the same time, the geo-spatial.org team was collecting Romanian data daily. I offered to build a network view, created a GitHub repository, and published it through GitHub Pages.

Why a network diagram? Force-directed graphs position nodes so connections have similar length and minimal crossings. They are one of the clearest ways to show who infected whom, how clusters form, and where outbreaks may emerge.

Three patterns become visible:

  • Superspreader events, visible as dense star-shaped clusters
  • Community transmission, with looser, chain-like connections
  • Travel introductions, isolated nodes without local links

Interaction mattered. Hover reveals contact counts and source links. Colors switch between county, gender, age, and status. Zoom reveals labels. Pan navigates. A play button steps through cases chronologically.

The technical struggle was performance. Thousands of nodes overwhelmed the DOM. I tried a Svelte wrapper, Canvas links, web workers, and backend SVG generation with Node.js. What I should have done was WebGL rendering, or a proper streaming setup.

But even with limitations, this view revealed something the county-based version could not. Transmission does not respect boundaries. A wedding can create cases across five counties. The network shows them connected. The map shows them apart. This mattered. If cases cluster by event, the response needs to target that social network, not five separate county-level actions.

Tomorrow: the same cases, arranged by time. How fast did transmission accelerate?

Data sources: geo-spatial org API Inspiration: Kontinentalist Singapore COVID visualization

Live demo: COVID case relations (EN)

The project

PieceRole
ViewFull network, no county grouping
PatternsSuperspreader stars, community chains, travel isolates
InspirationKontinentalist Singapore COVID viz
Perf noteDOM limits; WebGL would have been better

Note

Live date 3 March 2026 (draft header Mar 4).

How to follow


#100DayMapChallenge · Day 23/100 · LinkedIn

Previous: Day 22: COVID Network by County

Next: Day 24: COVID Timeline Arcs

Leave a Reply

Your email address will not be published. Required fields are marked *