The suggestion post-processing pipeline (#547) gives the suggest tool a fragments parameter.
Set to keep every connected blob above a minimum area, one click on a mask holding several
islands proposes several shapes at once — a row of parked cars, a scatter of road markings, a
plant whose leaves the segmenter separates.
Acceptance of a plural proposal is all-or-nothing there, and that is a deliberate limit rather
than an oversight: it is one write, one entry in the undo history, and one press of undo takes
back exactly what one press of accept created. Refusing half of what is on screen means keeping
the rest, which needs a selection model the preview does not have.
What is missing is the ordinary case where the proposal is mostly right. Three of five blobs are
the object and two are a reflection of it in a window, and today the only moves are to accept all
five and delete two, or to discard everything and click again with a negative point. The first
writes annotations somebody immediately removes; the second throws away an answer that was
almost entirely correct.
What this needs
- A way to say which of the proposed shapes are wanted, on the canvas or on the panel or both,
before anything is written.
- A rule for what the undo entry then covers. The all-or-nothing case gets one entry because one
gesture produced it; a partial acceptance is still one gesture and should still be one entry,
which means the write has to carry the chosen subset rather than being repeated per shape.
- A resting state for the shapes that were not chosen. Whether declining two of five leaves the
other three on screen for a second pass, or ends the proposal entirely, is the question that
decides whether this is a selection or a filter.
None of this touches the pipeline or the parameters, which is why it was separated from them.
The preview already renders plural and the parameters already produce plural; what is absent is
a way to point at one of them.
The suggestion post-processing pipeline (#547) gives the suggest tool a
fragmentsparameter.Set to keep every connected blob above a minimum area, one click on a mask holding several
islands proposes several shapes at once — a row of parked cars, a scatter of road markings, a
plant whose leaves the segmenter separates.
Acceptance of a plural proposal is all-or-nothing there, and that is a deliberate limit rather
than an oversight: it is one write, one entry in the undo history, and one press of undo takes
back exactly what one press of accept created. Refusing half of what is on screen means keeping
the rest, which needs a selection model the preview does not have.
What is missing is the ordinary case where the proposal is mostly right. Three of five blobs are
the object and two are a reflection of it in a window, and today the only moves are to accept all
five and delete two, or to discard everything and click again with a negative point. The first
writes annotations somebody immediately removes; the second throws away an answer that was
almost entirely correct.
What this needs
before anything is written.
gesture produced it; a partial acceptance is still one gesture and should still be one entry,
which means the write has to carry the chosen subset rather than being repeated per shape.
other three on screen for a second pass, or ends the proposal entirely, is the question that
decides whether this is a selection or a filter.
None of this touches the pipeline or the parameters, which is why it was separated from them.
The preview already renders plural and the parameters already produce plural; what is absent is
a way to point at one of them.