mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-26 18:31:11 +00:00
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:
+93
-14
@@ -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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user