- title
- As concrete as possible programming
- dated
- Fall 2023
During phase 1 we explored “as concrete as possible” pen-driven programming. How far can we push programming away from symbol manipulation and into the act of drawing? Can we make a system where the act of drawing is the programming, without the need for additional symbolic indirection?
Here we focused on the direct expression of constraints (programming) by adding smart snapping, ratio and angle hints, or assisted input of straight versus arcing lines. This was an attempt to take some of the primitives that usually require a lot of chrome and toolbars and try to express them using simple gestures.
Let’s look at how you could draw a parametric Pythagorean triangle using “as concrete as possible” programming. The elements of the drawing are expressed purely in terms of relative proportions & angles. Writing the symbolic program to do this would take a significant amount of work. In this demo, it takes the same amount of time to draw the interactive parametric model as it would take to draw a static sketch on paper.
Another experiment looked at a tangible approach to repeaters so that creating more of something could be an embedded part of the act of drawing.
These demos show that a concrete approach could be significantly expressive for making parametric drawings that would traditionally require a lot of symbol manipulation, using just the act of drawing. The ceiling on this is already relatively high, indicating that you only occasionally would need formulas to lift the ceiling.
Therefore we explored including very simple symbolic expressions within the context of the drawing. This allows you to express basic proportions as inline formulas:
Of course, there is a tradeoff here. This kind of drawing is rather geometric and formal. It works well if you know up front what constraints you want to enforce. In that sense, you could think of this approach more as a low-friction input of formal constraints. This approach is less appropriate if you’re in an exploratory mode where gradual enhancement of sketchy drawings probably makes more sense.