- title
- Habitat/Atelier
- dated
- 2023
As a part of Habitat, based on learnings from previous work, we implemented a new dynamic inking engine. The idea was to create a hybrid approach that combines the benefits of both hand-drawn ink and vector graphics.
This makes it possible to maintain the directness and fluidity of hand-drawn input, while still having the flexibility to manipulate your strokes and enhance your designs with computational behaviour.
The basic input method is to simply draw freehand strokes like you would on a piece of paper. The system then analyses and attempts to build a simplified representation of your drawing. Rather than then simplifying and smoothing your stroke (like in many vector graphics applications), Habitat maintains a simplified “shadow structure”, keeping your original input as is.
You can access the simplified representation by placing a single finger on the screen. This activates a pseudo-mode: Handles appear that can be moved around with the stylus, allowing you to manipulate your drawing as-if it were a much simpler vector drawing. This deformation keeps the sketchy feel of the original stroke in tact.
Habitat distinguishes between roughly straight lines and curves. Drawing a corner in one stroke will split it into two straight lines, but drawing a corner with two straight lines will merge the handles together. This means that you can draw a shape like a box in any way you like, the handles will be the same.
Connected line segments that are connected by a handle can be broken apart by “pulling” on the line near a handle. Line segments can also be joined back together again by snapping the handles together.
Intersections between lines also create a handle that you can use to snap a line segment to.
I also explored using “guides”. See the Atelier labnotes
Conclusions
After using this model quite extensively during the habitat project, I came to the following conclusion:
The stroke simplification in Habitat allows the user to draw freely, but it doesn’t allow true sketchyness.
When sketching with pen and paper often involves making tentative marks on paper to see what shape emerges. 5 strokes might imply a single line, or overdrawing a single line might be a way of emphesizing the weight of the line.
Habitat does not really take this into account. On top of that, even though the simplification algorithm is quite robust, it can still happen that a corner isn’t recognized if you draw very quickly. In practice, we ended up being very careful when drawing something we might want to deform late, which is really just premature formality in disguise.
I still think the idea of attaching a shadow structure to ink-strokes makes sense, and it feels quite good. But we should have much better support for sketchyness. It also seems important that the user be able attach the shadow structure post-hoc, or at least tweak/fix it if the recognition algorithm fails.