Using d3-drag + d3-force to render text. Words are totally unconnected here. Gray links shown just for demonstration purposes. Inspired by BW’s 2013 How To Issue.
Uses two little custom forces with d3-force:
forceLtr
(as in "left to right") forces letters toward the right of the previous letter and toward the left of the next letter.
forceBaseline
forces letters toward the y-coordinate of their neighbors, thereby establishing rough word-by-word baselines.
https://d3js.org/d3.v4.0.0-alpha.40.min.js