You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Preview mode: right-click a node → Preview (per socket), or ⌘/Ctrl+click,
routes that socket to the Output's Color for the 3D view only. It is a
derived graph the preview pass alone sees — no history, no autosave, the
code panel and export untouched. Everything else dims and a straight line
runs to the Output. Node marks are data attributes, because React Flow's
wrapper className write erases hand-added classes. Meta/Control left
multiSelectionKeyCode, which is now Shift only.
- Eval texts (consent-7): participant-facing sentences tightened and the
Latvian corrected; node labels reviewed (LV) and two EN labels/descriptions
aligned with the vec3 sockets and the settings-menu source picker.
- Node Designer saves: redrawn SDF-family glyphs.
- glyphPath.test: the shipped-path insert sweep samples its REFERENCE
polyline at 150 chords. At 60, chord sag on sdfDeform's new S-curve read a
correct split as 0.011 (measured true deviation 0.003–0.004, the 2-decimal
quantization); explicit 30 s timeout for the sweep.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: EVAL_MODE_PLAN.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -327,3 +327,4 @@ say about itself.
327
327
30. **Four experience questions before the SUS.** Blender Shader Editor, Unreal Engine Material Editor, other node-based editors (with a free-text "which software, and your level"), and shader programming (GLSL/HLSL) — one shared 5-point scale, **none → expert**, stored 0–4 with its label beside it so a reader never has to guess what 2 meant. They come BEFORE the SUS so that thinking about one's own expertise does not colour the SUS answers, and they are the covariate the score is read against: "easy to learn" means one thing from a Blender veteran and another from someone who has never seen a node graph. The four scales are required (they are quick, and a missing covariate weakens every comparison); the free text is optional, since a participant with no such experience has nothing to name. They ride `sus.json`'s `background` block rather than a new zip entry — one questionnaire, one file — with the disclosure line for `sus.json` updated to say so and `CONSENT_TEXT_VERSION` bumped to consent-5. `summary.csv` gains `exp_*` columns and the analysis table prints them as `blender/unreal/other/code`.
328
328
31. **A third entry for professionals: `/evalpro`.** The ordinary study plus a block about the participant's working context, asked between the experience questions and the SUS. Opt-IN (`?pro=on`), unlike the two suppression flags — an absent parameter must never hand a student the professional block — and a separate entry for the same reason `/evalp` is one: which questionnaire someone gets must not depend on typing a query string correctly. It composes with the others, so `/evalpro/?task=T7-fire&costbar=off` is a professional in the no-cost-bar arm. The scales gate submit; the free-text questions never do. It rides `sus.json`'s `professional` block (one questionnaire, one file — no new zip entry), with the disclosure line and `CONSENT_TEXT_VERSION` (consent-6) moved together. **The questions themselves are a DRAFT** (`proQuestions.ts` — role, years in 3D/real-time, how often shaders are authored, how often GPU performance constrains the work, target platforms, whether the tool could be useful in their own work): the mechanism is finished, the content is one array for the researcher to review and replace. Two of them are chosen to speak to this study directly — the GPU-budget question is the cost-feedback arm's own covariate, and the last is the adoption signal a tool paper wants.
329
329
330
+
32. **consent-7 (2026-09-10): every participant-facing sentence tightened, Latvian corrected.** Owner review of the eval texts. The consent SUMMARY no longer says the study server is run "not by the university" and no longer carries the sentence about the optional email revealing the sender address — both by owner decision; the disclosure ("Where it goes") and the thank-you screen still state the email fact once each, beside the button it describes. The Latvian now uses the app's own term *ēnotājs* (with one "(shader)" gloss on first mention) instead of *šeiders*, which the rest of the UI never used; the disclosure's close button was keyed on `Back`, which lv.json renders as "Aizmugure" (the material side) — it is `Close` now; Brooke's "mark the centre point" instruction moved onto the SUS block it applies to (the experience strip above it runs none→expert, where a centre point means nothing); the finish dialog no longer claims the package is "sent by email" (it is uploaded; email is optional). `evalDisclosure.test.ts` now sweeps `EvalFinishModal`/`SusModal` and every questionnaire question/option label for a Latvian entry.
Copy file name to clipboardExpand all lines: src/components/Layout/Toolbar.tsx
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -550,7 +550,7 @@ export function Toolbar() {
550
550
}}
551
551
title={
552
552
isEvalMode()
553
-
? t('Finish the session — answer a short questionnaire, then submit your shader and session data to the researcher',language)
553
+
? t('Finish the session: a short questionnaire, then your shader and session data are submitted',language)
554
554
: `${t('Download the shader — .js with the FastShaders project embedded (drag it back in to continue); becomes a .zip with the image and 3D-model files alongside when the graph embeds images or a custom preview mesh is loaded',language)}. ${
555
555
previewMesh&&!exportIncludeMesh
556
556
? t('The 3D model is currently excluded from the export — right-click to change.',language)
@@ -1005,7 +1005,7 @@ export function Toolbar() {
1005
1005
{isEvalMode()&&(
1006
1006
<span
1007
1007
className="toolbar__eval-badge"
1008
-
title={t('Evaluation session — interactions are being recorded for the study',language)}
1008
+
title={t('Study session — your actions in the editor are being recorded',language)}
0 commit comments