Title
#linking-together
Kartik Agaram

Kartik Agaram

03/12/2021, 5:49 AM
A slick talk by @Brian Hempel on his research (2019) It really takes me back, the amount of effort we spent in grad school rehearsing talks to make them this polished ❤️

https://www.youtube.com/watch?v=jC2_O5Jh_Rg

Chris Knott

Chris Knott

03/13/2021, 9:14 AM
Very slick yes. During the drawing of the rhombus, I was wondering how it was going to enforce that the sides were the same length. I was imagining some kind of slightly clumsy thing where they were tied together with shift+drag or something. The actual solution is that it infers it from the fact that they are equal length. I think this is actually a really keen insight into how normal people think vs programmers. Interesting that the same technique was not used for the colours. Wouldn't it also be a safe assumption that colours that are the same in your "example" drawing are meant to be the same in the definition? When you have an explicit, editable, textual definition right there I feel like the bar is raised right up for making these kind of assumptions. It also has this nice side effect, a little bit like unit testing, where it forces the user to draw the most generic version of the object, where nothing happens to be the same, only things are defined to be the same
Kartik Agaram

Kartik Agaram

03/13/2021, 4:08 PM
That bit wasn't clear to me either. How does it avoid fixating on small differences in length?
Brian Hempel

Brian Hempel

03/15/2021, 2:40 PM
When you drag to make the offset, portions of the drag will “snap” to existing offset lengths. You can sort of see (feel) it as you drag. It is actually possible to make them the same length without introducing a variable, but the drag region for doing so is only 1px big so you have to be precise 🙂. You can try it yourself to see what I mean: grab the offset tool and drag-draw two offsets: https://ravichugh.github.io/sketch-n-sketch/releases/uist-2019-acm-archive/
2:47 PM
Interesting that the same technique was not used for the colours. Wouldn’t it also be a safe assumption that colours that are the same in your “example” drawing are meant to be the same in the definition? When you have an explicit, editable, textual definition right there I feel like the bar is raised right up for making these kind of assumptions.
Hmm. Yeah. We could have a snapping interaction in the color sliders as well, with a simple way to override and say “no, I dont want to snap” (e.g. the command key). I prefer indicating to the user before an action that the action will produce a constrained relationship, rather than silently doing so post-hoc. Another excellent take on this problem is Object-Oriented Drawing:

https://www.youtube.com/watch?v=81RudeP3Tvg