One view per persona: 3D layered graph prototypes

These prototypes became the product page /overview (issue #271): one route per persona, computed from the graph. They stay here as the design reference.

The current knowledge graph page shows the same hairball to everyone. These four prototypes turn the graph on its side: one question per role, the answer as a short stack of labelled layers, alerts pulsing, data flows animated. Built on 3d-force-graph (three.js) from the same mock fixtures the live pages use. Discussion: GitHub Discussions.

Patient

Which parameters put me at risk, what should I do next, and who uses my data under which consent?

Art. 3, 8, 14, 71, 73

Researcher

What am I allowed to use today, what is stuck, and which datasets and studies near mine am I missing?

Art. 53, 61, 67, 68, 69, 73, 75

Health data access body

Which chains are broken, which accesses were refused or should not have happened, which of my decisions are overdue?

Art. 55, 57, 61, 63, 67, 68, 69, 73, 78

Hospital / data holder

Which consumers are untrusted or out of permit, which contracts are missing, are our labels and descriptions in order?

Art. 60, 61, 63, 67, 68, 73, 77, 78

How to read a view

ElementMeaning
Layer discOne question-sized slice of the 5-layer graph, in the persona's words, not the Neo4j label's.
Node colour and haloRed pulsing: act now or a violation. Amber: pending or expiring. Green: in order. Blue: information.
Moving particles on a linkData actually flowing (a completed transfer, a consented study).
"In one view" listThe same signals as text, sorted by severity, each citing the article of Regulation (EU) 2025/327 it rests on (adopted numbering).
Selected panelFacts of the clicked node and deep links to the live page that owns the record.

Fixtures are dated 2026-09-23. Article numbers follow docs/ehds-article-numbering.md; where a fixture field still carries a proposal number (Art. 46, 50, 51) the panel says so.