🤖 AI Summary
Existing text visualization techniques face a fundamental trade-off: linear decorations (e.g., highlighting, underlining) cannot represent nested syntactic structures, while nested rectangular blocks disrupt original typography and readability and offer limited stylistic expressiveness. To address this, we propose “rocks”—a syntax-tree-driven layout algorithm that renders nested structures as compact, right-angled polygons with configurable borders and padding, while strictly preserving the source text’s sequential flow and typographic integrity. Rocks enable arbitrarily deep, space-efficient structural decoration without altering line breaks, word spacing, or font metrics. This is the first approach to jointly optimize structural semantic fidelity and typographic preservation. Evaluation across multiple programming languages demonstrates significantly improved spatial compactness compared to conventional methods. The technique has been successfully integrated into GUI applications—including code editors and word processors—validating its effectiveness, robustness, and broad applicability.
📝 Abstract
Whether it be source code in a programming language, prose in natural language, or otherwise, text is highly structured. Currently, text visualizations are confined either to _flat, line-based_ decorations, which can convey only limited information about textual structure, or _nested boxes_, which convey structure but often destroy the typographic layout of the underlying text. We hypothesize that the lack of rich styling options limits the kinds of information that are displayed alongside text, wherever it may be displayed.
In this paper, we show that it is possible to achieve arbitrarily nested decorations while minimally disturbing the underlying typographic layout. Specifically, we present a layout algorithm that generates _ragged blocks_, or _rocks_, which are rectilinear polygons that allow nested text to be compactly rendered even when styled with borders and padding.
We evaluate our layout algorithm in two ways. First, on a benchmark suite comprising representative source code files in multiple programming languages, we show that the (ragged block) layouts produced by our algorithm are substantially more compact than the (rectangular block) layouts produced by conventional techniques, when uniformly styling every element in the syntax tree with borders and padding. Second, through a small gallery of usage scenarios, we demonstrate how future code editors, word processors, and other document-rendering GUIs might convey rich semantic information through domain-specific styling of ragged blocks.