Brian Hempel's MS Presentation

Return to Full Calendar
December 5, 2018 at 1:00pm - 2:30pm
Event Audience:
Output-Directed SVG Programming We propose output-directed programming, a paradigm whereby users directly manipulate the output they wish to create while the system automatically builds a text-based program that produces the output. Specifically, we present output-directed programming techniques for programs that generate Scalable Vector Graphics (SVG) designs. Like a traditional graphics editor, the system presents a direct manipulation interface for drawing and manipulating shapes on a canvas. Unlike a traditional editor, the drawing is represented as a text-based program in an ordinary functional programming language. Direct manipulation actions to draw, relate, group, and repeat shapes are affected by transforming the program. Although the program remains text-editable at any time, we show how the output-directed tools enable a variety of complex, readable programs to be constructed without any text-based program editing. We evaluate the techniques by implementing over a dozen parametric designs. While some of the output-directed programming interactions are by necessity domain-specific, we describe how others are implemented in a generalized way, to support their application to other output-directed programming domains.