Live interactive demos
Six visualizations you can actually use.
All six run in your browser. No data leaves your device, no tracking, no sign-in. The data is sample data tuned to realistic patterns, and the techniques are the kind we deploy on real engagements, from a research dashboard to a journal figure.
Three are advanced techniques (Sankey, network, forest plot). Three are foundational interactives (filterable bar, configurable scatter, multi-line trend). Every one is hand-coded SVG and JavaScript, no third-party charting library, no tracking.
Section A · Advanced techniques
Sankey, network, forest plot.
The visualizations clients usually pay other studios to outsource. We build them in-house, tuned to your dataset and your audience.
A1 · Multi-level flow
Sankey
Flows across four stages of a screening study. Hover any node or band and the entire upstream + downstream path lights up while everything else fades. Useful for patient pathways, funnel analyses, budget allocations, and energy / material flow studies.
Try it: hover the “Enrolled” node to trace where those 550 patients came from and where they ended up.
Patient pathway, stage by stage
A multi-level Sankey of a 1,000-patient screening study, sample data calibrated to typical recruitment-and-retention rates. Hover any flow to highlight its full upstream and downstream path.
Hover a node or a link. Each band is patients moving from one stage to the next.
What this shows
Of 1,000 people screened, only 31% reach the desired outcome (improved). The largest single drop is at enrollment: 550 of 700 eligible patients enroll, a 21% loss right after screening. Among those who complete the protocol, 70% improve. If the goal is lifting the bottom-line outcome, the highest-leverage stage to target is enrollment, not completion or treatment response.
Sample data shaped on published screening-trial pipelines. Sankey laid out by stage; node ordering and gaps tuned for legibility.
A2 · Force-directed
Network graph
Live physics simulation. Nodes repel, edges pull, layout finds itself. Drag any node and the rest reflows around it. The same engine handles co-authorship networks, comorbidity networks, supply chains, and citation graphs.
Try it: grab “Hypertension” and pull it to a corner. Watch the cluster reorganize.
Comorbidity network
A force-directed graph of 14 conditions and the strength of their co-occurrence. Drag any node to reshape the layout. Hover to isolate its neighborhood.
Hover a node to highlight its neighbors. Drag to reposition.
What this shows
Hypertension is the central hub, directly linked to 7 of the 13 other conditions. The cardiometabolic cluster (HTN, hyperlipidemia, MI, atrial fib, heart failure, stroke) is densely connected. The mental-health cluster (depression, anxiety) sits more peripherally and connects to the rest primarily through obesity. A care program that touches hypertension reaches most of the network. Useful for prioritizing screening and intervention design.
Sample associations modeled on published comorbidity prevalence patterns. Layout is computed live with a small repulsion + spring + centering simulation.
A3 · Manuscript-grade
Forest plot
The figure that shows up in every clinical-trial paper, built to journal style. Subgroup-level effect estimates with 95% CIs, log-scaled axis, square area proportional to weight, pooled diamond at the bottom. Exports as vector-clean SVG and PDF for submission.
Try it: hover any subgroup row to surface the underlying numbers.
Subgroup forest plot
Manuscript-style figure: hazard ratios across pre-specified subgroups, log-scaled axis, pooled diamond. Hover a row for details.
Hover any row to see the underlying numbers.
What this shows
All seven subgroup confidence intervals sit entirely below the reference line at 1.0, meaning the treatment effect is consistent across age, sex, and diabetic status, with no clinically meaningful effect modification. The pooled HR of 0.73 (95% CI 0.66–0.81) is statistically significant and represents an estimated 27% reduction in hazard. A reviewer can read the entire finding from this single figure.
Sample estimates modeled on a typical clinical-trial subgroup analysis. Square area is proportional to the inverse-variance weight; the diamond at the bottom is the pooled effect.
Section B · Foundational interactives
The bread and butter, done well.
Bar charts, scatters, and trend lines stop being basic when the interactivity is right. These three are designed to teach you something the static version can't.
B1 · Reframe the same metric
Cohort explorer
Same population, four different cuts. The story changes depending on which subgroup you put on the x-axis. This is the kind of reframing we walk stakeholders through when one chart isn't telling the whole picture.
Try it: switch from Age band to Household income.
Cohort explorer
Hypertension prevalence across a 12,400-person sample cohort, with age and income gradients tuned to published US patterns. Switch the cut to see the same metric reframed.
Hover a bar for the value, or use Tab to step through.
What this shows
Prevalence climbs steeply with age, from 6.3% (18–29) to 51.2% (75+), an eight-fold gradient. The income cut reveals a 13.5-percentage-point gap between the lowest (<$25k: 31.8%) and highest ($125k+: 18.3%) brackets. The story shifts with the cut you lead with: age framing centers a clinical question, income framing centers a policy one.
Sample data calibrated to NHANES-style adult prevalence patterns. Click a cut to redraw the chart, or use Tab to step through bars.
B2 · Test a relationship
Variable relationships
Pick any two variables and the chart redraws with a Pearson correlation. Useful for finding signal in a wide dataset before you commit to a model or a figure for publication.
Try it: put Air quality index on X and Life expectancy on Y.
Variable relationships
A sample of 60 census-tract observations modeled on ACS-style variable distributions and correlations. Pick two variables and look at the relationship.
Hover a point to see the tract values, or use the dropdowns to change axes.
What this shows
Income, college attainment, healthcare access, and park access all load on a single latent socioeconomic factor. The income–life-expectancy relationship is strong and positive (r ≈ 0.74). Air quality runs the opposite direction: lower-income tracts carry both worse air and shorter life expectancy. The chart is a quick way to triage which variables deserve a model and which restate the same signal.
Sample data tuned to ACS distribution patterns. The Pearson correlation recomputes whenever you change either axis.
B3 · Compare trajectories
Trend, by cohort
Toggle cohorts on and off to compare growth curves. The y-axis rescales to fit what you have visible, so you can isolate two cohorts and read the difference cleanly.
Try it: turn off Cohorts A and C to compare just B and D.
Trend, by cohort
A sample enrollment metric across four study cohorts over 12 quarters. Toggle a series on or off to compare.
Hover any line to see quarterly values for that cohort.
What this shows
Cohort A roughly tripled over 12 quarters (42 → 118). Cohort C plateaued early at ~67, suggesting saturation. Cohort D climbed steeply mid-window then flattened, the signature of a one-time campaign. Toggling cohorts off rescales the axis so divergence between any two becomes immediately readable, which a single all-on chart hides.
Sample data shaped on real cohort-recruitment patterns. Toggling rescales the axis to the visible series.
None of these is a stock chart library.
Every visualization on this page is hand-built in plain SVG and JavaScript. That means each one is tuned to the question, accessible to keyboard and screen-reader users, embeddable anywhere, and free of third-party tracking. It also means we can extend any of them with the next thing you need: an annotation layer, an export button, a drilldown tooltip, a different scale.
If your project needs a chart type not on this page (a chord diagram, a ridgeline, a horizon chart, a hex-binned scatter, an animated playback) we have built it before and can build it again. Tell us what you need.