aboutsummaryrefslogtreecommitdiff
path: root/docs/design/2026-07-12-control-grammars-reference.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-12 19:06:39 -0500
committerCraig Jennings <c@cjennings.net>2026-07-12 19:06:39 -0500
commitbc93388ddd5309476eac0a4547d6b66ab9fbb172 (patch)
tree786398c936d2cfad6d0108bc7f597d1736ef373c /docs/design/2026-07-12-control-grammars-reference.org
parent4fd6e5a2da8b119189cac3b45c71f5da8507c6c5 (diff)
downloadarchsetup-bc93388ddd5309476eac0a4547d6b66ab9fbb172.tar.gz
archsetup-bc93388ddd5309476eac0a4547d6b66ab9fbb172.zip
feat(gallery): gallery upgrades — size/palette/screen-chips/spec-sheets, 25 new cards, grammar note
Squash of the gallery-upgrades branch (25 commits). Usability: widget stages scale S/M/L (2.4x default), reading text at 12-13pt, a live palette section parsed from the generated :root block, screen-color families with per-card chips on the five screen widgets, and a collapsible spec sheet on every card (input model, solves, use, limits, origin, difficulty, prefer-when, period on the non-timeless). Collection grew 84 → 109 cards, all CDP-verified: reference cards R32-R36 (mechanical timer, four-way rocker, four-way toggle, day-date discs, LED dot matrix), the takuzu-survey build R37-R47 plus the N23 alarm lifecycle (pin matrix, dead-man, rotary dial, breaker panel, DSKY, cam timer, attitude indicator, heading bug, flip-disc, dekatron, landing gear), the promoted banked six R48-R53 (knife switch, decade box, two-hand control, voice-loop keyset, blinkenlights, circular chart), and the Ki-57/comfort-meter trio R54-R56 (vertical tape, twin-needle, comfort-zone crossed needles). Also: docs/design control-grammars reference note (taxonomy sources and proposed axes for the classification work), nine reference photos filed, and a component cleanup pass (dial digits above the finger wheel, legible demo defaults, unified captions).
Diffstat (limited to 'docs/design/2026-07-12-control-grammars-reference.org')
-rw-r--r--docs/design/2026-07-12-control-grammars-reference.org48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/design/2026-07-12-control-grammars-reference.org b/docs/design/2026-07-12-control-grammars-reference.org
new file mode 100644
index 0000000..4d5e028
--- /dev/null
+++ b/docs/design/2026-07-12-control-grammars-reference.org
@@ -0,0 +1,48 @@
+#+TITLE: Control Grammars and Interaction Taxonomies — Reference Note
+#+AUTHOR: Craig Jennings
+#+DATE: 2026-07-12
+
+Source material for the widget-gallery classification brainstorm (todo.org "Widget gallery upgrades" → "Component classification taxonomy"). The gallery is at 100 cards; every card's spec sheet already records its input model. This note collects the vocabulary and the literature the taxonomy should build on, so the brainstorm starts from named prior art instead of re-deriving it.
+
+* The named control grammars
+
+A control grammar is the sentence structure of an interaction — what order the operator supplies action, operand, and commitment. The kit already holds an exemplar of each:
+
+- Verb-noun :: action first, then operand. DSKY (R41): VERB 35 ENTR. Command lines and vi's =d2w= are the software descendants.
+- Noun-verb (object-action) :: select the thing, then act on it. Every modern GUI; in the kit, the waveform region editor (R19) — pick a flag, then move it.
+- Modal :: the same inputs mean different things depending on a mode set elsewhere. The keyed mode switch (N06) is the hardware form; vi is the canonical software one.
+- Quasimode (held state) :: the state exists only while physically maintained; release returns to baseline. Dead-man button (R38), push-to-talk, the shift key. Term coined by Raskin.
+- Chorded :: simultaneous inputs form one command. Key chords; the two-hand anti-tie-down control is the safety-hardware form.
+- Arm-then-commit :: a two-step grammar where the first action only enables the second. Arm-to-fire (08), guarded toggle (R29).
+- Direct manipulation :: no grammar — the operand is dragged itself. Faders, the response graph (R26), the attitude indicator (R43). Shneiderman's term.
+
+* The literature
+
+No single canonical registry of control grammars exists. The concept is split across these traditions, listed by usefulness to this project:
+
+- Moran, "The Command Language Grammar" (1981, Int. J. Man-Machine Studies) :: origin of the phrase; models a whole interface as a layered grammar (task, semantic, syntactic, interaction levels).
+- Foley, Wallace & Chan, "The Human Factors of Computer Graphics Interaction Techniques" (1984, IEEE CG&A) :: the classic six elemental interaction tasks — select, position, orient, path, quantify, text. The strongest single candidate for the taxonomy's use-axis; most of the 100 cards drop cleanly into one of the six.
+- Buxton, "Lexical and Pragmatic Considerations of Input Structures" (1983) and the three-state model of graphical input (1990) :: formal state machines for hover/drag/click; the right lens for the drag-vs-click portability question (Emacs has states 0 and 2 but not smooth state-1 motion).
+- Card, Mackinlay & Robertson, "A Morphological Analysis of the Design Space of Input Devices" (1991) :: a design-space grid (linear/rotary × position/force × dimensions) that classifies the physical inputs themselves.
+- Raskin, *The Humane Interface* (2000) :: modes vs quasimodes, and why held state beats latched state for safety-relevant functions.
+- Shneiderman, "Direct Manipulation: A Step Beyond Programming Languages" (1983, IEEE Computer) :: the case for grammar-free interaction.
+- MIL-STD-1472 (Human Engineering) and NASA's Human Integration Design Handbook (HIDH, NASA/SP-2010-3407) :: the closest thing to "the definition of them all" for physical controls — catalogs of control types (toggle, rotary selector, thumbwheel, legend switch, handwheel...) with selection criteria, spacing, resistance, and coding rules. FAA HF-STD-001 is the aviation equivalent.
+
+* Proposed axes for the classification brainstorm
+
+Starting point, to be argued in the brainstorm, not settled here:
+
+1. Elemental task (Foley) :: select / position / orient / path / quantify / text — plus the display-side tasks the gallery adds (indicate state, indicate quantity, indicate history, indicate spatial status).
+2. Input model :: none (display) / click / click-step / drag-1D / drag-2D / held / composed. Already on every spec sheet; drives Emacs portability directly.
+3. Grammar :: the seven above. Orthogonal to input model — a click can belong to any grammar.
+4. Cardinality of the value :: binary / one-of-N / many-of-N / many-to-many / continuous scalar / 2-axis / bitmap / compound.
+5. State authority :: operator-set / system-set (breaker trip, servo needle) / co-set (heading bug vs actual).
+6. Persistence :: latched / held / transient / mechanical-persistent (flip-disc).
+7. Era :: the period field, where not timeless.
+
+The gap-finding move the brainstorm exists for: cross axes 1×4 and look for empty cells — a use-case with no component is a cell the catalogue cannot fill.
+
+* Related
+
+- Gallery: [[file:../prototypes/panel-widget-gallery.html][docs/prototypes/panel-widget-gallery.html]] (100 cards, spec sheets carry input model + period).
+- Source survey: takuzu =working/research/ui-components/historical-panel-components.org= (processed 2026-07-12; build + banked + stale verdicts recorded in todo.org).