mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 02:00:06 +02:00
Calibration all in the headset panel; the gaze probe is a development tool
Check headset fit now runs in the headset panel too ("fitcheck"): a card per
eye (tracked or lost, the tracker's signal, how much of the last 10 s it was
seen) and the hints, from the probe's fitcheck.py, updated at most twice a
second; left click or Meta+J runs its guided check, right click or Meta+K closes
it. So Quick check, Calibrate, and Check headset fit all happen in one place.
The gaze probe moves to the Gaze page's overflow menu as "Gaze probe
(development)", and its app menu entry says it's a development tool. Texts that
sent users to it ("use Calibrate… with Own tracker") point at Calibrate.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
964c250858
commit
45b1b06cdb
10 files changed
+210
-49
No files matched your search
+17
-14
@@ -825,20 +825,15 @@ Kirigami.ApplicationWindow {
|
||||
text: "Calibrate"
|
||||
icon.name: "crosshairs"
|
||||
enabled: backend.gazeServiceRunning
|
||||
tooltip: "The full calibration in the headset: 21 dots in three rounds, dark to bright"
|
||||
tooltip: "The full calibration in the headset: dots in three rounds, dark to bright"
|
||||
onTriggered: backend.gazeCalibrate()
|
||||
},
|
||||
Kirigami.Action {
|
||||
text: "Gaze probe…"
|
||||
icon.name: "crosshairs"
|
||||
tooltip: "The lab tool: calibrate, test, and practise on a Frametop screen"
|
||||
onTriggered: backend.openGazeProbe()
|
||||
},
|
||||
Kirigami.Action {
|
||||
text: "Check headset fit…"
|
||||
text: "Check headset fit"
|
||||
icon.name: "view-visible"
|
||||
tooltip: "How well the eye tracker sees each eye, and where it loses one, while you adjust the headset"
|
||||
onTriggered: backend.openHeadsetFit()
|
||||
enabled: backend.gazeServiceRunning
|
||||
tooltip: "In the headset: how well the eye tracker sees each eye, live, while you adjust it"
|
||||
onTriggered: backend.gazeFitCheck()
|
||||
},
|
||||
Kirigami.Action {
|
||||
text: "Reload calibration"
|
||||
@@ -852,6 +847,14 @@ Kirigami.ApplicationWindow {
|
||||
enabled: backend.gazeServiceRunning
|
||||
tooltip: "Drop what your mouse nudges taught; the calibration stays"
|
||||
onTriggered: backend.forgetGazeLessons()
|
||||
},
|
||||
Kirigami.Action {
|
||||
// A development tool: the checks and the calibration run in the headset panel.
|
||||
text: "Gaze probe (development)…"
|
||||
icon.name: "tools"
|
||||
displayHint: Kirigami.DisplayHint.AlwaysHide
|
||||
tooltip: "The gaze tracking's lab tool, for developing it: experiments, accuracy tests, practice"
|
||||
onTriggered: backend.openGazeProbe()
|
||||
}
|
||||
]
|
||||
|
||||
@@ -943,7 +946,7 @@ Kirigami.ApplicationWindow {
|
||||
&& (!gpage.status.own_running || gpage.status.own_reseat || !gpage.status.calibration_samples)
|
||||
text: !gpage.status.eyegrab ? "Needs its frame grabber: run gaze/tracker/install.sh (asks for sudo)"
|
||||
: !gpage.status.own_running ? "Starting…"
|
||||
: !gpage.status.calibration_samples ? "Not calibrated: use Calibrate… with Own tracker"
|
||||
: !gpage.status.calibration_samples ? "Not calibrated: use Calibrate"
|
||||
: "The headset was off: your first nudge and click resets where it sits"
|
||||
color: gpage.status.own_running ? Kirigami.Theme.neutralTextColor : Kirigami.Theme.negativeTextColor
|
||||
font: Kirigami.Theme.smallFont
|
||||
@@ -1031,7 +1034,7 @@ Kirigami.ApplicationWindow {
|
||||
+ (gpage.status.one_eye_share > 0.5 ? " · only one eye tracked" : "")
|
||||
color: gpage.status.one_eye_share > 0.5 ? Kirigami.Theme.neutralTextColor : Kirigami.Theme.textColor
|
||||
Controls.ToolTip.text: "Only one eye tracked: the gaze comes from the other eye, a little less "
|
||||
+ "precisely. Check headset fit… shows where the tracker loses it."
|
||||
+ "precisely. Check headset fit shows where the tracker loses it."
|
||||
Controls.ToolTip.visible: gpage.status.one_eye_share > 0.5 && ghover.hovered
|
||||
HoverHandler { id: ghover }
|
||||
}
|
||||
@@ -1055,7 +1058,7 @@ Kirigami.ApplicationWindow {
|
||||
? gpage.status.calibration_samples + " points ("
|
||||
+ (gpage.status.tracker === "own" ? "Own tracker, " + gpage.status.calibration_made
|
||||
: gpage.status.kind === "eyes" ? gpage.status.model + ", each eye" : gpage.status.model) + ")"
|
||||
: "none yet: use Calibrate…"
|
||||
: "none yet: use Calibrate"
|
||||
}
|
||||
Controls.Label {
|
||||
visible: backend.gazeServiceRunning
|
||||
@@ -1075,7 +1078,7 @@ Kirigami.ApplicationWindow {
|
||||
+ "to drag something instead. Look away to hand back: how far from the pointer you look before the "
|
||||
+ "gaze takes it back from the mouse. Largest correction to learn: a click corrected further than "
|
||||
+ "this isn't learned; the tracker is that far off, so the quick check runs instead. Eye tracker: SteamVR's, or our own "
|
||||
+ "(gaze/tracker), which keeps its own calibration (Calibrate… with Own tracker). Eye bias: the gaze "
|
||||
+ "(gaze/tracker), which keeps its own calibration. Eye bias: the gaze "
|
||||
+ "combines both eyes, since their errors partly cancel; Left or Right counts that eye twice as "
|
||||
+ "much, and Auto weights each by how far off it was at your recent nudges."
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user