docs: the offer is a fixed address space, not a context menu

Tommaso's requirement, and it changes what the offer IS: a tool must sit in the
same physical position whatever you selected. Click a face, an edge or a text
and fillet is in fillet's place every time. Position becomes an address the hand
learns, and the eye stops being needed.

That kills the ordering rule this section had two commits ago. "Most-used first
for that kind of selection" is adaptive ordering, and adaptive ordering destroys
the one property that makes a spatial menu fast — worse, it destroys it exactly
for the user who has just started to learn the layout. Office 2000 shipped that
idea and withdrew it. So: NO adaptive ordering, ever, in any form.

The invariant, written to survive every future feature: every tool has exactly
one address; that address is identical in every selection type where the tool
appears; slots for inapplicable tools are left EMPTY rather than compacted; and
adding a tool never re-addresses an existing one. Empty slots are the price of
constancy and they are cheap — a compacted offer is denser and unlearnable, a
sparse one is memorised in a week. An empty slot also answers a question ("this
cannot be done to this thing") that a silently-inert tool does not.

Radial rather than a strip, reversing what I proposed last time and for a reason
that only appears once constancy is the requirement: a direction from the click
point is an absolute address that survives the offer opening anywhere on screen
and survives being clamped at a screen edge, while "third item down" does not.
Centre is a hole so the picked geometry stays visible, and it names what is
selected, so a mis-pick is caught before a verb is chosen.

Every slot carries its keyboard shortcut beside the icon and the word. This is
the graduation path and it is why power users never see a conflict: you reach
for the place, the place says "F", and one day your hand types F before the ring
finishes drawing. The offer is the mechanism by which a beginner stops needing
the offer — one interface at two speeds, no advanced mode in between.

Also here: a proposed eight-position compass map across face/edge/body/text
(create, add, remove, dress-up, repeat, transform, reference, modify) offered as
the group's first ratification, with families opening a secondary ring under the
same rule; arrow/numpad direction addressing so the spatial map works from the
keyboard; a gate question 12 that treats re-addressing an existing tool as a
breaking change to every user's muscle memory.

snaporca-2is.
This commit is contained in:
Tommaso Bianchi
2026-07-31 11:10:46 +02:00
parent d7583f0a2d
commit c3d286070e
+93 -14
View File
@@ -226,22 +226,93 @@ own five verbs teaches the model of the product by using it. It also removes an
entire class of failure — a tool that silently does nothing because the
selection was wrong can no longer be reached.
### 4.1 The offer
### 4.1 The offer, and the one thing that makes it work
- **It appears at the selection**, in the viewport, as a compact ring or strip
of icons with names — not a list in a panel, not a dropdown, not a menu bar.
- **It is filtered, ordered and small.** Only what applies; most-used first for
that kind of selection; if it does not fit in one glance it is too long, and
the tail belongs behind one "more" affordance.
The flow, in full:
> **click a geometric object → an offer whose tools are always in the same
> place, each with its icon and its shortcut → click.**
- **It appears at the selection**, in the viewport, as a compact radial of icons
— not a list in a panel, not a dropdown, not a menu bar. Radial because a
*direction from where you clicked* is an absolute spatial address that
survives the offer appearing anywhere on screen, while "third item down"
does not.
- **Position is fixed and it is the whole point.** A tool occupies one permanent
address in the offer, and that address is the same in every selection where
the tool appears. Fillet is down-right on an edge, on a face, on a body, on
the day the product ships and two years later. The hand learns the place; the
eye stops being needed.
- **It is an accelerator, not a toll gate.** The toolbar and the single-letter
shortcuts keep working exactly as they do now, and pressing a tool directly
consumes the same selection (L3). An expert never has to look at the offer;
a beginner never has to know the toolbar exists. Both routes land in the same
place — this is the only way one interface serves §2's three audiences.
- **It is a teaching surface.** Icon *and* word, the drawing-office word (L10),
so the offer is where the vocabulary is learned.
- **It never blocks the view of what it acts on**, and it dismisses the moment
the selection changes.
- **Every slot shows its keyboard shortcut**, next to the icon and the
drawing-office word (L10). This is deliberate: the offer is the path by which
a user stops needing the offer. You reach for fillet in its place, the place
says "F", and one day your hand types F before the ring has finished drawing.
A menu that teaches its own shortcut is how a beginner becomes the power user
who never opens it — the same interface, at two speeds, with no "advanced
mode" between them (§7).
- **It is a teaching surface** in the other direction too: an empty slot says
*this cannot be done to this thing*, which is an answer, where a tool that
silently does nothing is not.
- **It never blocks the view of what it acts on** — the centre is a hole, the
picked geometry stays visible through it — and it dismisses the moment the
selection changes.
- **Click to open, click to choose.** A flick gesture may be added later as an
accelerator for people who want it, but nothing is ever *only* reachable by
drag or by timing (L9, §6.2).
#### The slot-constancy invariant
This is the rule that has to survive every future feature, so it is written as
an invariant rather than as advice:
> **Every tool has exactly one address in the offer. That address is identical
> for every selection type in which the tool appears. Slots for tools that do
> not apply to the current selection are left EMPTY — the offer is never
> compacted, re-sorted or re-ordered. Adding a tool never changes the address of
> an existing one.**
Two consequences the group must accept together with the invariant:
- **No adaptive ordering. Ever.** Not most-used-first, not recently-used-first,
not per-selection frequency. An offer that rearranges itself to be helpful
destroys the only thing that made it fast, and it does so precisely for the
user who has just started to learn it. (Office 2000's adaptive menus are the
textbook case; they were removed.)
- **Empty slots are the price, and they are worth it.** A compacted offer is
denser and unlearnable. A sparse one wastes a few hundred square pixels and
is memorised in a week.
#### Proposed slot map — for the group to ratify
The invariant is not negotiable. The specific assignment below is a first
proposal, and the group should argue about it *once*, then never again — every
later change re-addresses somebody's muscle memory.
Eight compass positions, grouped so the map itself has a logic (material grows,
then is refined, then is repeated, then is moved):
| Position | Family | On a face | On an edge | On a body | On text/art |
|---|---|---|---|---|---|
| **N** | Create | Sketch on it | — | — | Edit text |
| **NE** | Add material | Extrude, boss | — | Thicken | Extrude |
| **E** | Remove material | Hole, pocket | — | Shell, cut | — |
| **SE** | Dress-up | — | Fillet, chamfer | Draft | — |
| **S** | Repeat | Pattern | Pattern along it | Mirror, pattern | Pattern |
| **SW** | Transform | Align to | — | Move, rotate, scale | Move, size |
| **W** | Reference | Datum plane, measure | Datum axis, measure | Measure | — |
| **NW** | Modify | Delete face, replace | — | Edit feature, delete | Replace art |
Where a family holds more than one verb for a selection, the slot opens a
secondary ring **with its own fixed addresses** — the same rule, one level down.
A dash means the slot is drawn empty for that selection.
The centre of the ring names what is selected ("Top face · Body 1"), because a
user who mis-picked should find that out before choosing a verb, not after.
### 4.2 Confirm and cancel are objects, not gestures
@@ -353,9 +424,11 @@ cost of entry, it has broken the premise, however elegant it is.
### 6.2 Assistive floor
- **Keyboard**: every operation reachable and completable without a pointer.
Single-letter shortcuts for sketch tools, documented in the tool's own
tooltip. A visible focus state on every focusable element. No shortcut that
only works while the pointer happens to be over the canvas.
Single-letter shortcuts for sketch tools, shown in the offer itself (§4.1) as
well as in the tooltip. The offer's eight positions are also addressable by
arrow/numpad direction, so the spatial map works for a keyboard user too. A
visible focus state on every focusable element. No shortcut that only works
while the pointer happens to be over the canvas.
- **Colour**: never the sole carrier of meaning. Selection is colour *and*
outline; an error is colour *and* an icon *and* text. Verify in greyscale.
- **Contrast**: labels over the 3D viewport get a scrim or halo so 4.5:1 holds
@@ -439,6 +512,10 @@ A "no" that is not accompanied by an argument is a request for changes.
11. Reach (L11): screenshot at 1366×768 with the panel open — is the model still
on screen? Does it run on integrated graphics? Does it need the network, an
account, or a file the user cannot keep?
12. If the change adds or moves a tool in the offer: which slot, and is it that
tool's slot in **every** selection where it appears? Did any existing tool's
address change? (If yes, this is not a UI change, it is a breaking change to
every user's muscle memory, and it needs the group — see §4.1.)
## 10. Where we stand today — honest inventory
@@ -470,7 +547,9 @@ Violating them, with removal scheduled:
- **Selecting geometry offers nothing.** There is no contextual offer (§4.1):
the user faces the full toolbar whatever they have picked, and finds out that
a tool did not apply by it doing nothing. This is the largest single item of
new work the charter asks for.
new work the charter asks for, and it has a prerequisite the group owes
itself first — ratifying the slot map, since every tool built before it lands
will have to be addressed afterwards anyway.
- **Committing is an invisible click in empty space** rather than the
confirm/cancel puck of §4.2 — the exact gesture that rule withdraws.