Date: Sat, 27 Jan 2024 14:12:22 -0800
From: Bret Victor
Subject: Re: Recognition Kit 2
Cliffhanger!  It all looks great, and looking forward to the big reveal.

The "red rectangle" and "to the right of" rules remind me of the "interpreting statements" / shrdlite games from a few years ago -- they clearly want to be written as
/x/ is to the right of /y/
rather than
/x/ is "to the right of" /y/
and rules that interpret statements in more flexible ways than mad-libs matching is something we should discuss for the next Realtalk.

The next Realtalk will also be a good opportunity to sweep through our lexicon and reconsider what we call things.  e.g. a thresholding operation probably shouldn't be called a "recognizer".  :)  But I think it makes sense that we have to invent the things first and then retroactively figure out the right names after they've settled down.

Another retroactive pass would be revisiting how we do spatial relations etc for objects, in light of what you've been doing with marks.  That is, marks and objects can probably be largely unified -- objects should also have contours etc, as I'm sure you've thought about.  (One change I'm looking forward to is considering the contour of an object to be the bounds of the physical card itself, rather than the dot frame -- treating dot frames as just one kind of mark for inferring the presence of an real object, as suggested in email [composable recognizers][2023-09-10].)

One more thing that your video made me think of was sort some of generic "stabilizing" facility or abstraction.  There are a number of instances where we there's a jittery source that we filter.  For example, we have both

When /p/ contains dots /dots/:
When /p/ contains stable dots /dots/:

and each "stable" variant like this is a one-off.  I'm imagining a way of stabilizing anything:

When /p/ contains dots /dots/, /stable_dots/ are stabilized /dots/:

That might won't work as is because different kinds of values have to be stabilized in different ways... but maybe there are pluggable stabilizers that recognize those different kinds and offer to stabilize them?

(A theme:  "composable interpreters" for statements, "composable recognizers" for objects, "composable stabilizers" for values.....)


On Jan 26, 2024, at 11:55 AM, Luke Iannini <****************> wrote:

Here's an early look at Recognition Kit 2 — this isn't the "big new thing" yet!! This is just set of also-cool things inspired by & setting up for the big thing : ).
[video.mp4]