kylebrodeur commited on
Commit
2542aa9
·
verified ·
1 Parent(s): 1130366

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -34,3 +34,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  assets/benchy.glb filter=lfs diff=lfs merge=lfs -text
 
 
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  assets/benchy.glb filter=lfs diff=lfs merge=lfs -text
37
+ a5c557efbc56.cap/content/segments/segment-0/display.mp4 filter=lfs diff=lfs merge=lfs -text
.gitignore CHANGED
@@ -9,6 +9,9 @@ data/_generated.glb
9
  data/_vprint.gif
10
  # data/_modal_candidate_lessons.jsonl — TRACKED (Modal Lane-B review file)
11
  dist/
 
 
 
12
 
13
  # Sample meshes ARE committed — the HF Space doesn't run make_assets, and
14
  # benchy.glb can't be regenerated there (needs the STL + a decimation tool).
 
9
  data/_vprint.gif
10
  # data/_modal_candidate_lessons.jsonl — TRACKED (Modal Lane-B review file)
11
  dist/
12
+ field_logs/
13
+ .pi/
14
+ *.cap/
15
 
16
  # Sample meshes ARE committed — the HF Space doesn't run make_assets, and
17
  # benchy.glb can't be regenerated there (needs the STL + a decimation tool).
.pi/tasks-config.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "autoCascade": true,
3
+ "showAll": true,
4
+ "taskScope": "project"
5
+ }
.pi/tasks/tasks-019ebf40-6559-7f96-b1ee-853132ac70cf.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "nextId": 16,
3
+ "tasks": []
4
+ }
README.md CHANGED
@@ -15,6 +15,8 @@ tags:
15
  - backyard-ai
16
  - off-the-grid
17
  - llama-champion
 
 
18
  - off-brand
19
  ---
20
 
@@ -112,7 +114,7 @@ own homework.
112
  ## Badges
113
 
114
  Off the Grid (local Ollama/Gemma) · Llama Champion (Ollama runs on llama.cpp) ·
115
- Sharing is Caring (ledger/trace to the Hub) · Field Notes (build writeup). Off-Brand if the
116
  Astrometrics UI lands (see `../DESIGN.md`). **Not** Well-Tuned — fine-tuning is named as frontier.
117
 
118
  ## What's real vs frontier (honest claims)
@@ -126,6 +128,14 @@ Astrometrics UI lands (see `../DESIGN.md`). **Not** Well-Tuned — fine-tuning i
126
  - **Frontier (not built):** weight-level fine-tuning on the accumulated ledger, real distributed
127
  multi-node execution, the physical interfaces (g-code streaming, env sensors, camera defect CV).
128
 
 
 
 
 
 
 
 
 
129
  ## License
130
 
131
  MIT. **No OrcaSlicer/PrusaSlicer code** (AGPL-3.0) — trimesh/PySLM/manifold3d/pyclipr only.
 
15
  - backyard-ai
16
  - off-the-grid
17
  - llama-champion
18
+ - sharing-is-caring
19
+ - field-notes
20
  - off-brand
21
  ---
22
 
 
114
  ## Badges
115
 
116
  Off the Grid (local Ollama/Gemma) · Llama Champion (Ollama runs on llama.cpp) ·
117
+ Sharing is Caring ([ledger trace →](https://huggingface.co/datasets/kylebrodeur/chief-engineer-ledger)) · Field Notes (build writeup). Off-Brand if the
118
  Astrometrics UI lands (see `../DESIGN.md`). **Not** Well-Tuned — fine-tuning is named as frontier.
119
 
120
  ## What's real vs frontier (honest claims)
 
128
  - **Frontier (not built):** weight-level fine-tuning on the accumulated ledger, real distributed
129
  multi-node execution, the physical interfaces (g-code streaming, env sensors, camera defect CV).
130
 
131
+ ## Links
132
+
133
+ - **Space:** [build-small-hackathon/chief-engineer](https://huggingface.co/spaces/build-small-hackathon/chief-engineer)
134
+ - **Ledger dataset:** [kylebrodeur/chief-engineer-ledger](https://huggingface.co/datasets/kylebrodeur/chief-engineer-ledger)
135
+ - **Demo video:** [<!-- TODO: add video URL after recording -->]()
136
+ - **Social post:** [<!-- TODO: add social post URL after publishing -->]()
137
+ - **Source:** [kylebrodeur/microfactory-lab](https://github.com/kylebrodeur/microfactory-lab)
138
+
139
  ## License
140
 
141
  MIT. **No OrcaSlicer/PrusaSlicer code** (AGPL-3.0) — trimesh/PySLM/manifold3d/pyclipr only.
a5c557efbc56.cap/content/cursors/cursor_0.png ADDED
a5c557efbc56.cap/content/cursors/cursor_1.png ADDED
a5c557efbc56.cap/content/cursors/cursor_2.png ADDED
a5c557efbc56.cap/content/cursors/cursor_3.png ADDED
a5c557efbc56.cap/content/cursors/cursor_4.png ADDED
a5c557efbc56.cap/content/cursors/cursor_5.png ADDED
a5c557efbc56.cap/content/cursors/cursor_6.png ADDED
a5c557efbc56.cap/content/segments/segment-0/cursor.json ADDED
@@ -0,0 +1,2589 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "clicks": [
3
+ {
4
+ "active_modifiers": [],
5
+ "cursor_num": 1,
6
+ "cursor_id": "1",
7
+ "time_ms": 5601.616800000001,
8
+ "down": true
9
+ },
10
+ {
11
+ "active_modifiers": [],
12
+ "cursor_num": 1,
13
+ "cursor_id": "2",
14
+ "time_ms": 6526.2591,
15
+ "down": false
16
+ },
17
+ {
18
+ "active_modifiers": [],
19
+ "cursor_num": 1,
20
+ "cursor_id": "2",
21
+ "time_ms": 9116.150599999999,
22
+ "down": true
23
+ },
24
+ {
25
+ "active_modifiers": [],
26
+ "cursor_num": 1,
27
+ "cursor_id": "2",
28
+ "time_ms": 9191.9099,
29
+ "down": false
30
+ },
31
+ {
32
+ "active_modifiers": [],
33
+ "cursor_num": 1,
34
+ "cursor_id": "4",
35
+ "time_ms": 10185.808400000002,
36
+ "down": true
37
+ },
38
+ {
39
+ "active_modifiers": [],
40
+ "cursor_num": 1,
41
+ "cursor_id": "4",
42
+ "time_ms": 10286.982699999999,
43
+ "down": false
44
+ },
45
+ {
46
+ "active_modifiers": [],
47
+ "cursor_num": 1,
48
+ "cursor_id": "2",
49
+ "time_ms": 13251.8268,
50
+ "down": true
51
+ },
52
+ {
53
+ "active_modifiers": [],
54
+ "cursor_num": 1,
55
+ "cursor_id": "2",
56
+ "time_ms": 14133.3454,
57
+ "down": false
58
+ },
59
+ {
60
+ "active_modifiers": [],
61
+ "cursor_num": 1,
62
+ "cursor_id": "4",
63
+ "time_ms": 32150.270999999997,
64
+ "down": true
65
+ },
66
+ {
67
+ "active_modifiers": [],
68
+ "cursor_num": 1,
69
+ "cursor_id": "4",
70
+ "time_ms": 32214.937599999997,
71
+ "down": false
72
+ }
73
+ ],
74
+ "moves": [
75
+ {
76
+ "active_modifiers": [],
77
+ "cursor_id": "0",
78
+ "time_ms": 3506.0362,
79
+ "x": 0.7264206209724663,
80
+ "y": 0.014058106841611996
81
+ },
82
+ {
83
+ "active_modifiers": [],
84
+ "cursor_id": "1",
85
+ "time_ms": 3537.0466,
86
+ "x": 0.6971294669009959,
87
+ "y": 0.08434864104967198
88
+ },
89
+ {
90
+ "active_modifiers": [],
91
+ "cursor_id": "1",
92
+ "time_ms": 3568.0479,
93
+ "x": 0.6748681898066784,
94
+ "y": 0.13402061855670103
95
+ },
96
+ {
97
+ "active_modifiers": [],
98
+ "cursor_id": "1",
99
+ "time_ms": 3600.0595999999996,
100
+ "x": 0.6543643819566491,
101
+ "y": 0.1790065604498594
102
+ },
103
+ {
104
+ "active_modifiers": [],
105
+ "cursor_id": "1",
106
+ "time_ms": 3616.563,
107
+ "x": 0.6385471587580551,
108
+ "y": 0.21274601686972822
109
+ },
110
+ {
111
+ "active_modifiers": [],
112
+ "cursor_id": "1",
113
+ "time_ms": 3641.381,
114
+ "x": 0.6244874048037493,
115
+ "y": 0.24835988753514526
116
+ },
117
+ {
118
+ "active_modifiers": [],
119
+ "cursor_id": "1",
120
+ "time_ms": 3662.1366000000003,
121
+ "x": 0.6157000585823081,
122
+ "y": 0.26804123711340205
123
+ },
124
+ {
125
+ "active_modifiers": [],
126
+ "cursor_id": "1",
127
+ "time_ms": 3689.5522,
128
+ "x": 0.6092560046865847,
129
+ "y": 0.27928772258669166
130
+ },
131
+ {
132
+ "active_modifiers": [],
133
+ "cursor_id": "1",
134
+ "time_ms": 3708.1271,
135
+ "x": 0.606912712360867,
136
+ "y": 0.2830365510777882
137
+ },
138
+ {
139
+ "active_modifiers": [],
140
+ "cursor_id": "1",
141
+ "time_ms": 3980.5446,
142
+ "x": 0.5758640890451083,
143
+ "y": 0.3908153701968135
144
+ },
145
+ {
146
+ "active_modifiers": [],
147
+ "cursor_id": "1",
148
+ "time_ms": 4003.8948000000005,
149
+ "x": 0.5559461042765085,
150
+ "y": 0.4873477038425492
151
+ },
152
+ {
153
+ "active_modifiers": [],
154
+ "cursor_id": "1",
155
+ "time_ms": 4030.4602000000004,
156
+ "x": 0.5500878734622144,
157
+ "y": 0.5238987816307404
158
+ },
159
+ {
160
+ "active_modifiers": [],
161
+ "cursor_id": "1",
162
+ "time_ms": 4050.6594,
163
+ "x": 0.5442296426479203,
164
+ "y": 0.5567010309278351
165
+ },
166
+ {
167
+ "active_modifiers": [],
168
+ "cursor_id": "1",
169
+ "time_ms": 4079.0941,
170
+ "x": 0.5383714118336262,
171
+ "y": 0.5820056232427366
172
+ },
173
+ {
174
+ "active_modifiers": [],
175
+ "cursor_id": "1",
176
+ "time_ms": 4097.674300000001,
177
+ "x": 0.5383714118336262,
178
+ "y": 0.5857544517338332
179
+ },
180
+ {
181
+ "active_modifiers": [],
182
+ "cursor_id": "1",
183
+ "time_ms": 4126.9856,
184
+ "x": 0.5389572349150556,
185
+ "y": 0.5857544517338332
186
+ },
187
+ {
188
+ "active_modifiers": [],
189
+ "cursor_id": "1",
190
+ "time_ms": 4690.2919,
191
+ "x": 0.5231400117164616,
192
+ "y": 0.5951265229615745
193
+ },
194
+ {
195
+ "active_modifiers": [],
196
+ "cursor_id": "1",
197
+ "time_ms": 4715.9012999999995,
198
+ "x": 0.5143526654950205,
199
+ "y": 0.598875351452671
200
+ },
201
+ {
202
+ "active_modifiers": [],
203
+ "cursor_id": "1",
204
+ "time_ms": 4737.273,
205
+ "x": 0.5120093731693028,
206
+ "y": 0.598875351452671
207
+ },
208
+ {
209
+ "active_modifiers": [],
210
+ "cursor_id": "1",
211
+ "time_ms": 4766.4264,
212
+ "x": 0.5114235500878734,
213
+ "y": 0.598875351452671
214
+ },
215
+ {
216
+ "active_modifiers": [],
217
+ "cursor_id": "1",
218
+ "time_ms": 4798.858499999999,
219
+ "x": 0.510837727006444,
220
+ "y": 0.598875351452671
221
+ },
222
+ {
223
+ "active_modifiers": [],
224
+ "cursor_id": "1",
225
+ "time_ms": 4816.6247,
226
+ "x": 0.5102519039250146,
227
+ "y": 0.598875351452671
228
+ },
229
+ {
230
+ "active_modifiers": [],
231
+ "cursor_id": "1",
232
+ "time_ms": 4841.708299999999,
233
+ "x": 0.5096660808435852,
234
+ "y": 0.598875351452671
235
+ },
236
+ {
237
+ "active_modifiers": [],
238
+ "cursor_id": "1",
239
+ "time_ms": 4862.7769,
240
+ "x": 0.507908611599297,
241
+ "y": 0.6007497656982193
242
+ },
243
+ {
244
+ "active_modifiers": [],
245
+ "cursor_id": "1",
246
+ "time_ms": 4891.4381,
247
+ "x": 0.5043936731107206,
248
+ "y": 0.6026241799437676
249
+ },
250
+ {
251
+ "active_modifiers": [],
252
+ "cursor_id": "1",
253
+ "time_ms": 4916.6296,
254
+ "x": 0.5014645577035736,
255
+ "y": 0.6035613870665417
256
+ },
257
+ {
258
+ "active_modifiers": [],
259
+ "cursor_id": "1",
260
+ "time_ms": 4937.6913,
261
+ "x": 0.5002929115407148,
262
+ "y": 0.6044985941893158
263
+ },
264
+ {
265
+ "active_modifiers": [],
266
+ "cursor_id": "1",
267
+ "time_ms": 4967.116599999999,
268
+ "x": 0.4973637961335677,
269
+ "y": 0.6063730084348641
270
+ },
271
+ {
272
+ "active_modifiers": [],
273
+ "cursor_id": "1",
274
+ "time_ms": 4999.2321999999995,
275
+ "x": 0.4938488576449912,
276
+ "y": 0.6138706654170571
277
+ },
278
+ {
279
+ "active_modifiers": [],
280
+ "cursor_id": "2",
281
+ "time_ms": 5016.725799999999,
282
+ "x": 0.4926772114821324,
283
+ "y": 0.6166822867853796
284
+ },
285
+ {
286
+ "active_modifiers": [],
287
+ "cursor_id": "2",
288
+ "time_ms": 5046.2164999999995,
289
+ "x": 0.4903339191564148,
290
+ "y": 0.6213683223992502
291
+ },
292
+ {
293
+ "active_modifiers": [],
294
+ "cursor_id": "2",
295
+ "time_ms": 5069.3697999999995,
296
+ "x": 0.4897480960749854,
297
+ "y": 0.6232427366447985
298
+ },
299
+ {
300
+ "active_modifiers": [],
301
+ "cursor_id": "2",
302
+ "time_ms": 5092.2715,
303
+ "x": 0.4897480960749854,
304
+ "y": 0.6251171508903468
305
+ },
306
+ {
307
+ "active_modifiers": [],
308
+ "cursor_id": "2",
309
+ "time_ms": 5119.3264,
310
+ "x": 0.4897480960749854,
311
+ "y": 0.6260543580131209
312
+ },
313
+ {
314
+ "active_modifiers": [],
315
+ "cursor_id": "2",
316
+ "time_ms": 5139.2062000000005,
317
+ "x": 0.4897480960749854,
318
+ "y": 0.626991565135895
319
+ },
320
+ {
321
+ "active_modifiers": [],
322
+ "cursor_id": "2",
323
+ "time_ms": 5168.7877,
324
+ "x": 0.4897480960749854,
325
+ "y": 0.6307403936269915
326
+ },
327
+ {
328
+ "active_modifiers": [],
329
+ "cursor_id": "2",
330
+ "time_ms": 5201.4718,
331
+ "x": 0.4903339191564148,
332
+ "y": 0.6326148078725399
333
+ },
334
+ {
335
+ "active_modifiers": [],
336
+ "cursor_id": "2",
337
+ "time_ms": 5231.5373,
338
+ "x": 0.4903339191564148,
339
+ "y": 0.6344892221180881
340
+ },
341
+ {
342
+ "active_modifiers": [],
343
+ "cursor_id": "2",
344
+ "time_ms": 5263.484100000001,
345
+ "x": 0.4909197422378442,
346
+ "y": 0.6344892221180881
347
+ },
348
+ {
349
+ "active_modifiers": [],
350
+ "cursor_id": "2",
351
+ "time_ms": 5292.4696,
352
+ "x": 0.4909197422378442,
353
+ "y": 0.6354264292408622
354
+ },
355
+ {
356
+ "active_modifiers": [],
357
+ "cursor_id": "2",
358
+ "time_ms": 5403.3313,
359
+ "x": 0.4915055653192736,
360
+ "y": 0.6354264292408622
361
+ },
362
+ {
363
+ "active_modifiers": [],
364
+ "cursor_id": "2",
365
+ "time_ms": 5449.5382,
366
+ "x": 0.492091388400703,
367
+ "y": 0.6363636363636364
368
+ },
369
+ {
370
+ "active_modifiers": [],
371
+ "cursor_id": "2",
372
+ "time_ms": 5497.5205000000005,
373
+ "x": 0.4926772114821324,
374
+ "y": 0.6373008434864105
375
+ },
376
+ {
377
+ "active_modifiers": [],
378
+ "cursor_id": "2",
379
+ "time_ms": 5526.6282,
380
+ "x": 0.4926772114821324,
381
+ "y": 0.6382380506091846
382
+ },
383
+ {
384
+ "active_modifiers": [],
385
+ "cursor_id": "1",
386
+ "time_ms": 5601.616800000001,
387
+ "x": 0.4926772114821324,
388
+ "y": 0.6391752577319587
389
+ },
390
+ {
391
+ "active_modifiers": [],
392
+ "cursor_id": "1",
393
+ "time_ms": 5730.8583,
394
+ "x": 0.5043936731107206,
395
+ "y": 0.6522961574507966
396
+ },
397
+ {
398
+ "active_modifiers": [],
399
+ "cursor_id": "1",
400
+ "time_ms": 5762.3986,
401
+ "x": 0.5143526654950205,
402
+ "y": 0.6644798500468604
403
+ },
404
+ {
405
+ "active_modifiers": [],
406
+ "cursor_id": "1",
407
+ "time_ms": 5792.4255,
408
+ "x": 0.5325131810193322,
409
+ "y": 0.6860356138706654
410
+ },
411
+ {
412
+ "active_modifiers": [],
413
+ "cursor_id": "1",
414
+ "time_ms": 5809.9693,
415
+ "x": 0.546572934973638,
416
+ "y": 0.7047797563261481
417
+ },
418
+ {
419
+ "active_modifiers": [],
420
+ "cursor_id": "1",
421
+ "time_ms": 5840.1435,
422
+ "x": 0.562390158172232,
423
+ "y": 0.7338331771321462
424
+ },
425
+ {
426
+ "active_modifiers": [],
427
+ "cursor_id": "1",
428
+ "time_ms": 5871.1491000000005,
429
+ "x": 0.5758640890451083,
430
+ "y": 0.7572633552014996
431
+ },
432
+ {
433
+ "active_modifiers": [],
434
+ "cursor_id": "1",
435
+ "time_ms": 5896.639300000001,
436
+ "x": 0.5823081429408319,
437
+ "y": 0.7731958762886598
438
+ },
439
+ {
440
+ "active_modifiers": [],
441
+ "cursor_id": "1",
442
+ "time_ms": 5918.4043,
443
+ "x": 0.5893380199179847,
444
+ "y": 0.7919400187441424
445
+ },
446
+ {
447
+ "active_modifiers": [],
448
+ "cursor_id": "1",
449
+ "time_ms": 5947.9501,
450
+ "x": 0.5951962507322789,
451
+ "y": 0.8125585754451734
452
+ },
453
+ {
454
+ "active_modifiers": [],
455
+ "cursor_id": "1",
456
+ "time_ms": 5980.4166,
457
+ "x": 0.5987111892208553,
458
+ "y": 0.8284910965323337
459
+ },
460
+ {
461
+ "active_modifiers": [],
462
+ "cursor_id": "1",
463
+ "time_ms": 5999.494900000001,
464
+ "x": 0.6010544815465729,
465
+ "y": 0.8406747891283973
466
+ },
467
+ {
468
+ "active_modifiers": [],
469
+ "cursor_id": "1",
470
+ "time_ms": 6024.6267,
471
+ "x": 0.6028119507908611,
472
+ "y": 0.8500468603561387
473
+ },
474
+ {
475
+ "active_modifiers": [],
476
+ "cursor_id": "1",
477
+ "time_ms": 6044.4012999999995,
478
+ "x": 0.6028119507908611,
479
+ "y": 0.8566073102155577
480
+ },
481
+ {
482
+ "active_modifiers": [],
483
+ "cursor_id": "1",
484
+ "time_ms": 6074.7935,
485
+ "x": 0.60398359695372,
486
+ "y": 0.85941893158388
487
+ },
488
+ {
489
+ "active_modifiers": [],
490
+ "cursor_id": "1",
491
+ "time_ms": 6100.0235,
492
+ "x": 0.60398359695372,
493
+ "y": 0.8612933458294283
494
+ },
495
+ {
496
+ "active_modifiers": [],
497
+ "cursor_id": "1",
498
+ "time_ms": 6121.9173,
499
+ "x": 0.60398359695372,
500
+ "y": 0.8650421743205249
501
+ },
502
+ {
503
+ "active_modifiers": [],
504
+ "cursor_id": "1",
505
+ "time_ms": 6150.6805,
506
+ "x": 0.6051552431165788,
507
+ "y": 0.8706654170571696
508
+ },
509
+ {
510
+ "active_modifiers": [],
511
+ "cursor_id": "1",
512
+ "time_ms": 6168.4169,
513
+ "x": 0.6057410661980082,
514
+ "y": 0.8781630740393627
515
+ },
516
+ {
517
+ "active_modifiers": [],
518
+ "cursor_id": "1",
519
+ "time_ms": 6198.417799999999,
520
+ "x": 0.606912712360867,
521
+ "y": 0.887535145267104
522
+ },
523
+ {
524
+ "active_modifiers": [],
525
+ "cursor_id": "1",
526
+ "time_ms": 6226.8394,
527
+ "x": 0.6080843585237259,
528
+ "y": 0.9006560449859419
529
+ },
530
+ {
531
+ "active_modifiers": [],
532
+ "cursor_id": "1",
533
+ "time_ms": 6246.4902,
534
+ "x": 0.6086701816051553,
535
+ "y": 0.9044048734770385
536
+ },
537
+ {
538
+ "active_modifiers": [],
539
+ "cursor_id": "1",
540
+ "time_ms": 6277.1241,
541
+ "x": 0.6086701816051553,
542
+ "y": 0.9081537019681349
543
+ },
544
+ {
545
+ "active_modifiers": [],
546
+ "cursor_id": "1",
547
+ "time_ms": 6308.4635,
548
+ "x": 0.6086701816051553,
549
+ "y": 0.9147141518275539
550
+ },
551
+ {
552
+ "active_modifiers": [],
553
+ "cursor_id": "1",
554
+ "time_ms": 6326.8701,
555
+ "x": 0.6080843585237259,
556
+ "y": 0.9250234301780693
557
+ },
558
+ {
559
+ "active_modifiers": [],
560
+ "cursor_id": "2",
561
+ "time_ms": 6356.4058,
562
+ "x": 0.6074985354422964,
563
+ "y": 0.9325210871602624
564
+ },
565
+ {
566
+ "active_modifiers": [],
567
+ "cursor_id": "2",
568
+ "time_ms": 6377.1349,
569
+ "x": 0.606912712360867,
570
+ "y": 0.9343955014058107
571
+ },
572
+ {
573
+ "active_modifiers": [],
574
+ "cursor_id": "2",
575
+ "time_ms": 6402.444,
576
+ "x": 0.606912712360867,
577
+ "y": 0.936269915651359
578
+ },
579
+ {
580
+ "active_modifiers": [],
581
+ "cursor_id": "2",
582
+ "time_ms": 6426.6039,
583
+ "x": 0.606912712360867,
584
+ "y": 0.9400187441424555
585
+ },
586
+ {
587
+ "active_modifiers": [],
588
+ "cursor_id": "2",
589
+ "time_ms": 6449.0806999999995,
590
+ "x": 0.606912712360867,
591
+ "y": 0.9409559512652296
592
+ },
593
+ {
594
+ "active_modifiers": [],
595
+ "cursor_id": "2",
596
+ "time_ms": 6476.7684,
597
+ "x": 0.606912712360867,
598
+ "y": 0.9418931583880038
599
+ },
600
+ {
601
+ "active_modifiers": [],
602
+ "cursor_id": "2",
603
+ "time_ms": 7600.2594,
604
+ "x": 0.5987111892208553,
605
+ "y": 0.9465791940018744
606
+ },
607
+ {
608
+ "active_modifiers": [],
609
+ "cursor_id": "2",
610
+ "time_ms": 8211.927599999999,
611
+ "x": 0.5764499121265377,
612
+ "y": 0.8556701030927835
613
+ },
614
+ {
615
+ "active_modifiers": [],
616
+ "cursor_id": "2",
617
+ "time_ms": 8240.0335,
618
+ "x": 0.526654950205038,
619
+ "y": 0.6785379568884724
620
+ },
621
+ {
622
+ "active_modifiers": [],
623
+ "cursor_id": "2",
624
+ "time_ms": 8257.950900000002,
625
+ "x": 0.4850615114235501,
626
+ "y": 0.49109653233364575
627
+ },
628
+ {
629
+ "active_modifiers": [],
630
+ "cursor_id": "2",
631
+ "time_ms": 8288.885,
632
+ "x": 0.45166959578207383,
633
+ "y": 0.3045923149015933
634
+ },
635
+ {
636
+ "active_modifiers": [],
637
+ "cursor_id": "2",
638
+ "time_ms": 8318.8668,
639
+ "x": 0.43409490333919154,
640
+ "y": 0.22211808809746955
641
+ },
642
+ {
643
+ "active_modifiers": [],
644
+ "cursor_id": "2",
645
+ "time_ms": 8339.8688,
646
+ "x": 0.4294083186877563,
647
+ "y": 0.20524835988753515
648
+ },
649
+ {
650
+ "active_modifiers": [],
651
+ "cursor_id": "2",
652
+ "time_ms": 8646.3695,
653
+ "x": 0.28763913298183946,
654
+ "y": 0.13214620431115276
655
+ },
656
+ {
657
+ "active_modifiers": [],
658
+ "cursor_id": "2",
659
+ "time_ms": 8675.3742,
660
+ "x": 0.13942589338019917,
661
+ "y": 0.06279287722586692
662
+ },
663
+ {
664
+ "active_modifiers": [],
665
+ "cursor_id": "2",
666
+ "time_ms": 8694.0737,
667
+ "x": 0.07498535442296426,
668
+ "y": 0.03467666354264293
669
+ },
670
+ {
671
+ "active_modifiers": [],
672
+ "cursor_id": "2",
673
+ "time_ms": 8724.6466,
674
+ "x": 0.04569420035149385,
675
+ "y": 0.02436738519212746
676
+ },
677
+ {
678
+ "active_modifiers": [],
679
+ "cursor_id": "2",
680
+ "time_ms": 8751.285,
681
+ "x": 0.042765084944346804,
682
+ "y": 0.02155576382380506
683
+ },
684
+ {
685
+ "active_modifiers": [],
686
+ "cursor_id": "2",
687
+ "time_ms": 8799.2481,
688
+ "x": 0.043936731107205626,
689
+ "y": 0.02155576382380506
690
+ },
691
+ {
692
+ "active_modifiers": [],
693
+ "cursor_id": "2",
694
+ "time_ms": 8816.634900000001,
695
+ "x": 0.04569420035149385,
696
+ "y": 0.022492970946579195
697
+ },
698
+ {
699
+ "active_modifiers": [],
700
+ "cursor_id": "2",
701
+ "time_ms": 8847.293300000001,
702
+ "x": 0.051552431165787935,
703
+ "y": 0.02436738519212746
704
+ },
705
+ {
706
+ "active_modifiers": [],
707
+ "cursor_id": "2",
708
+ "time_ms": 8878.7263,
709
+ "x": 0.06092560046865846,
710
+ "y": 0.03467666354264293
711
+ },
712
+ {
713
+ "active_modifiers": [],
714
+ "cursor_id": "2",
715
+ "time_ms": 8899.261299999998,
716
+ "x": 0.06736965436438196,
717
+ "y": 0.04311152764761012
718
+ },
719
+ {
720
+ "active_modifiers": [],
721
+ "cursor_id": "2",
722
+ "time_ms": 8926.2729,
723
+ "x": 0.08670181605155243,
724
+ "y": 0.07029053420805999
725
+ },
726
+ {
727
+ "active_modifiers": [],
728
+ "cursor_id": "2",
729
+ "time_ms": 8949.6003,
730
+ "x": 0.10251903925014645,
731
+ "y": 0.09840674789128398
732
+ },
733
+ {
734
+ "active_modifiers": [],
735
+ "cursor_id": "2",
736
+ "time_ms": 8972.75,
737
+ "x": 0.11892208553016989,
738
+ "y": 0.13120899718837864
739
+ },
740
+ {
741
+ "active_modifiers": [],
742
+ "cursor_id": "2",
743
+ "time_ms": 8998.169600000001,
744
+ "x": 0.1335676625659051,
745
+ "y": 0.16776007497656983
746
+ },
747
+ {
748
+ "active_modifiers": [],
749
+ "cursor_id": "2",
750
+ "time_ms": 9020.0865,
751
+ "x": 0.13825424721734036,
752
+ "y": 0.17994376757263356
753
+ },
754
+ {
755
+ "active_modifiers": [],
756
+ "cursor_id": "2",
757
+ "time_ms": 9045.588600000001,
758
+ "x": 0.14001171646162858,
759
+ "y": 0.1846298031865042
760
+ },
761
+ {
762
+ "active_modifiers": [],
763
+ "cursor_id": "2",
764
+ "time_ms": 9068.129799999999,
765
+ "x": 0.140597539543058,
766
+ "y": 0.1846298031865042
767
+ },
768
+ {
769
+ "active_modifiers": [],
770
+ "cursor_id": "2",
771
+ "time_ms": 9424.5961,
772
+ "x": 0.28295254833040423,
773
+ "y": 0.09465791940018745
774
+ },
775
+ {
776
+ "active_modifiers": [],
777
+ "cursor_id": "2",
778
+ "time_ms": 9455.7202,
779
+ "x": 0.48271821909783247,
780
+ "y": 0.0
781
+ },
782
+ {
783
+ "active_modifiers": [],
784
+ "cursor_id": "2",
785
+ "time_ms": 9484.5712,
786
+ "x": 0.6016403046280023,
787
+ "y": 0.0
788
+ },
789
+ {
790
+ "active_modifiers": [],
791
+ "cursor_id": "2",
792
+ "time_ms": 9502.7445,
793
+ "x": 0.6192149970708846,
794
+ "y": 0.0
795
+ },
796
+ {
797
+ "active_modifiers": [],
798
+ "cursor_id": "2",
799
+ "time_ms": 9533.5924,
800
+ "x": 0.6250732278851787,
801
+ "y": 0.00937207122774133
802
+ },
803
+ {
804
+ "active_modifiers": [],
805
+ "cursor_id": "2",
806
+ "time_ms": 9550.7812,
807
+ "x": 0.6115992970123023,
808
+ "y": 0.02717900656044986
809
+ },
810
+ {
811
+ "active_modifiers": [],
812
+ "cursor_id": "2",
813
+ "time_ms": 9581.5736,
814
+ "x": 0.5846514352665495,
815
+ "y": 0.05435801312089972
816
+ },
817
+ {
818
+ "active_modifiers": [],
819
+ "cursor_id": "1",
820
+ "time_ms": 9612.7219,
821
+ "x": 0.5694200351493849,
822
+ "y": 0.05716963448922212
823
+ },
824
+ {
825
+ "active_modifiers": [],
826
+ "cursor_id": "1",
827
+ "time_ms": 9629.5662,
828
+ "x": 0.5676625659050967,
829
+ "y": 0.05529522024367385
830
+ },
831
+ {
832
+ "active_modifiers": [],
833
+ "cursor_id": "1",
834
+ "time_ms": 9652.0378,
835
+ "x": 0.5641476274165202,
836
+ "y": 0.05154639175257732
837
+ },
838
+ {
839
+ "active_modifiers": [],
840
+ "cursor_id": "1",
841
+ "time_ms": 9674.2152,
842
+ "x": 0.5635618043350908,
843
+ "y": 0.05060918462980318
844
+ },
845
+ {
846
+ "active_modifiers": [],
847
+ "cursor_id": "1",
848
+ "time_ms": 9692.9032,
849
+ "x": 0.5629759812536614,
850
+ "y": 0.04967197750702906
851
+ },
852
+ {
853
+ "active_modifiers": [],
854
+ "cursor_id": "1",
855
+ "time_ms": 9718.7155,
856
+ "x": 0.5618043350908026,
857
+ "y": 0.04967197750702906
858
+ },
859
+ {
860
+ "active_modifiers": [],
861
+ "cursor_id": "1",
862
+ "time_ms": 9739.767199999998,
863
+ "x": 0.5582893966022261,
864
+ "y": 0.05529522024367385
865
+ },
866
+ {
867
+ "active_modifiers": [],
868
+ "cursor_id": "1",
869
+ "time_ms": 9763.1819,
870
+ "x": 0.5565319273579379,
871
+ "y": 0.05716963448922212
872
+ },
873
+ {
874
+ "active_modifiers": [],
875
+ "cursor_id": "1",
876
+ "time_ms": 9785.7244,
877
+ "x": 0.5547744581136497,
878
+ "y": 0.059044048734770385
879
+ },
880
+ {
881
+ "active_modifiers": [],
882
+ "cursor_id": "1",
883
+ "time_ms": 9816.7364,
884
+ "x": 0.5536028119507909,
885
+ "y": 0.059044048734770385
886
+ },
887
+ {
888
+ "active_modifiers": [],
889
+ "cursor_id": "1",
890
+ "time_ms": 9847.2816,
891
+ "x": 0.546572934973638,
892
+ "y": 0.05529522024367385
893
+ },
894
+ {
895
+ "active_modifiers": [],
896
+ "cursor_id": "1",
897
+ "time_ms": 9875.7968,
898
+ "x": 0.5377855887521968,
899
+ "y": 0.04873477038425492
900
+ },
901
+ {
902
+ "active_modifiers": [],
903
+ "cursor_id": "2",
904
+ "time_ms": 9894.1986,
905
+ "x": 0.533684827182191,
906
+ "y": 0.044048734770384255
907
+ },
908
+ {
909
+ "active_modifiers": [],
910
+ "cursor_id": "2",
911
+ "time_ms": 9921.9042,
912
+ "x": 0.5301698886936145,
913
+ "y": 0.03936269915651359
914
+ },
915
+ {
916
+ "active_modifiers": [],
917
+ "cursor_id": "2",
918
+ "time_ms": 9941.208400000001,
919
+ "x": 0.5284124194493263,
920
+ "y": 0.03748828491096532
921
+ },
922
+ {
923
+ "active_modifiers": [],
924
+ "cursor_id": "2",
925
+ "time_ms": 9966.8284,
926
+ "x": 0.5278265963678969,
927
+ "y": 0.03655107778819119
928
+ },
929
+ {
930
+ "active_modifiers": [],
931
+ "cursor_id": "2",
932
+ "time_ms": 9987.891,
933
+ "x": 0.526654950205038,
934
+ "y": 0.03561387066541706
935
+ },
936
+ {
937
+ "active_modifiers": [],
938
+ "cursor_id": "3",
939
+ "time_ms": 10012.6212,
940
+ "x": 0.5254833040421792,
941
+ "y": 0.033739456419868794
942
+ },
943
+ {
944
+ "active_modifiers": [],
945
+ "cursor_id": "3",
946
+ "time_ms": 10035.0341,
947
+ "x": 0.5254833040421792,
948
+ "y": 0.03280224929709466
949
+ },
950
+ {
951
+ "active_modifiers": [],
952
+ "cursor_id": "3",
953
+ "time_ms": 10059.6459,
954
+ "x": 0.5248974809607498,
955
+ "y": 0.03280224929709466
956
+ },
957
+ {
958
+ "active_modifiers": [],
959
+ "cursor_id": "3",
960
+ "time_ms": 10081.9956,
961
+ "x": 0.5243116578793204,
962
+ "y": 0.031865042174320526
963
+ },
964
+ {
965
+ "active_modifiers": [],
966
+ "cursor_id": "4",
967
+ "time_ms": 10128.999099999999,
968
+ "x": 0.523725834797891,
969
+ "y": 0.030927835051546393
970
+ },
971
+ {
972
+ "active_modifiers": [],
973
+ "cursor_id": "4",
974
+ "time_ms": 10185.808400000002,
975
+ "x": 0.5231400117164616,
976
+ "y": 0.02999062792877226
977
+ },
978
+ {
979
+ "active_modifiers": [],
980
+ "cursor_id": "1",
981
+ "time_ms": 10639.051500000001,
982
+ "x": 0.5606326889279437,
983
+ "y": 0.17525773195876287
984
+ },
985
+ {
986
+ "active_modifiers": [],
987
+ "cursor_id": "1",
988
+ "time_ms": 10670.180999999999,
989
+ "x": 0.6180433509080258,
990
+ "y": 0.3233364573570759
991
+ },
992
+ {
993
+ "active_modifiers": [],
994
+ "cursor_id": "1",
995
+ "time_ms": 10702.235999999999,
996
+ "x": 0.6760398359695372,
997
+ "y": 0.45829428303655106
998
+ },
999
+ {
1000
+ "active_modifiers": [],
1001
+ "cursor_id": "1",
1002
+ "time_ms": 10725.7294,
1003
+ "x": 0.6953719976567077,
1004
+ "y": 0.5107778819119025
1005
+ },
1006
+ {
1007
+ "active_modifiers": [],
1008
+ "cursor_id": "1",
1009
+ "time_ms": 10749.2627,
1010
+ "x": 0.7035735207967194,
1011
+ "y": 0.5435801312089972
1012
+ },
1013
+ {
1014
+ "active_modifiers": [],
1015
+ "cursor_id": "1",
1016
+ "time_ms": 10770.5169,
1017
+ "x": 0.7088459285295841,
1018
+ "y": 0.563261480787254
1019
+ },
1020
+ {
1021
+ "active_modifiers": [],
1022
+ "cursor_id": "1",
1023
+ "time_ms": 10793.382899999999,
1024
+ "x": 0.7094317516110135,
1025
+ "y": 0.5726335520149953
1026
+ },
1027
+ {
1028
+ "active_modifiers": [],
1029
+ "cursor_id": "1",
1030
+ "time_ms": 10813.222,
1031
+ "x": 0.7106033977738723,
1032
+ "y": 0.5763823805060918
1033
+ },
1034
+ {
1035
+ "active_modifiers": [],
1036
+ "cursor_id": "1",
1037
+ "time_ms": 11124.2199,
1038
+ "x": 0.7076742823667252,
1039
+ "y": 0.5623242736644799
1040
+ },
1041
+ {
1042
+ "active_modifiers": [],
1043
+ "cursor_id": "1",
1044
+ "time_ms": 11150.7287,
1045
+ "x": 0.6865846514352666,
1046
+ "y": 0.44329896907216493
1047
+ },
1048
+ {
1049
+ "active_modifiers": [],
1050
+ "cursor_id": "1",
1051
+ "time_ms": 11171.7787,
1052
+ "x": 0.6789689513766842,
1053
+ "y": 0.3851921274601687
1054
+ },
1055
+ {
1056
+ "active_modifiers": [],
1057
+ "cursor_id": "1",
1058
+ "time_ms": 11196.2489,
1059
+ "x": 0.6789689513766842,
1060
+ "y": 0.37582005623242737
1061
+ },
1062
+ {
1063
+ "active_modifiers": [],
1064
+ "cursor_id": "1",
1065
+ "time_ms": 12271.9355,
1066
+ "x": 0.7937902753368483,
1067
+ "y": 0.32146204311152765
1068
+ },
1069
+ {
1070
+ "active_modifiers": [],
1071
+ "cursor_id": "1",
1072
+ "time_ms": 12291.6021,
1073
+ "x": 0.9027533684827183,
1074
+ "y": 0.26991565135895035
1075
+ },
1076
+ {
1077
+ "active_modifiers": [],
1078
+ "cursor_id": "2",
1079
+ "time_ms": 12316.504,
1080
+ "x": 0.9865260691271236,
1081
+ "y": 0.24554826616682288
1082
+ },
1083
+ {
1084
+ "active_modifiers": [],
1085
+ "cursor_id": "5",
1086
+ "time_ms": 12338.171900000001,
1087
+ "x": 0.9994141769185706,
1088
+ "y": 0.23898781630740393
1089
+ },
1090
+ {
1091
+ "active_modifiers": [],
1092
+ "cursor_id": "5",
1093
+ "time_ms": 12368.7032,
1094
+ "x": 0.9994141769185706,
1095
+ "y": 0.2380506091846298
1096
+ },
1097
+ {
1098
+ "active_modifiers": [],
1099
+ "cursor_id": "5",
1100
+ "time_ms": 12385.7628,
1101
+ "x": 0.9994141769185706,
1102
+ "y": 0.23711340206185566
1103
+ },
1104
+ {
1105
+ "active_modifiers": [],
1106
+ "cursor_id": "2",
1107
+ "time_ms": 12408.852700000001,
1108
+ "x": 0.9935559461042766,
1109
+ "y": 0.2352389878163074
1110
+ },
1111
+ {
1112
+ "active_modifiers": [],
1113
+ "cursor_id": "1",
1114
+ "time_ms": 12431.585200000001,
1115
+ "x": 0.9789103690685413,
1116
+ "y": 0.23898781630740393
1117
+ },
1118
+ {
1119
+ "active_modifiers": [],
1120
+ "cursor_id": "1",
1121
+ "time_ms": 12462.8266,
1122
+ "x": 0.9695371997656708,
1123
+ "y": 0.24179943767572634
1124
+ },
1125
+ {
1126
+ "active_modifiers": [],
1127
+ "cursor_id": "1",
1128
+ "time_ms": 12494.725,
1129
+ "x": 0.9660222612770943,
1130
+ "y": 0.24273664479850046
1131
+ },
1132
+ {
1133
+ "active_modifiers": [],
1134
+ "cursor_id": "1",
1135
+ "time_ms": 12521.92,
1136
+ "x": 0.9648506151142355,
1137
+ "y": 0.24273664479850046
1138
+ },
1139
+ {
1140
+ "active_modifiers": [],
1141
+ "cursor_id": "1",
1142
+ "time_ms": 12541.7456,
1143
+ "x": 0.9601640304628002,
1144
+ "y": 0.23711340206185566
1145
+ },
1146
+ {
1147
+ "active_modifiers": [],
1148
+ "cursor_id": "1",
1149
+ "time_ms": 12567.2225,
1150
+ "x": 0.955477445811365,
1151
+ "y": 0.2296157450796626
1152
+ },
1153
+ {
1154
+ "active_modifiers": [],
1155
+ "cursor_id": "1",
1156
+ "time_ms": 12589.784399999999,
1157
+ "x": 0.9543057996485061,
1158
+ "y": 0.22586691658856609
1159
+ },
1160
+ {
1161
+ "active_modifiers": [],
1162
+ "cursor_id": "1",
1163
+ "time_ms": 12620.7312,
1164
+ "x": 0.9543057996485061,
1165
+ "y": 0.22399250234301782
1166
+ },
1167
+ {
1168
+ "active_modifiers": [],
1169
+ "cursor_id": "1",
1170
+ "time_ms": 12652.1933,
1171
+ "x": 0.9566490919742238,
1172
+ "y": 0.21930646672914714
1173
+ },
1174
+ {
1175
+ "active_modifiers": [],
1176
+ "cursor_id": "1",
1177
+ "time_ms": 12680.970500000001,
1178
+ "x": 0.9636789689513767,
1179
+ "y": 0.21368322399250234
1180
+ },
1181
+ {
1182
+ "active_modifiers": [],
1183
+ "cursor_id": "1",
1184
+ "time_ms": 12698.703800000001,
1185
+ "x": 0.9689513766842414,
1186
+ "y": 0.2099343955014058
1187
+ },
1188
+ {
1189
+ "active_modifiers": [],
1190
+ "cursor_id": "1",
1191
+ "time_ms": 12726.2808,
1192
+ "x": 0.9748096074985354,
1193
+ "y": 0.20899718837863168
1194
+ },
1195
+ {
1196
+ "active_modifiers": [],
1197
+ "cursor_id": "1",
1198
+ "time_ms": 12745.2214,
1199
+ "x": 0.9765670767428236,
1200
+ "y": 0.20899718837863168
1201
+ },
1202
+ {
1203
+ "active_modifiers": [],
1204
+ "cursor_id": "1",
1205
+ "time_ms": 12772.1059,
1206
+ "x": 0.9789103690685413,
1207
+ "y": 0.20899718837863168
1208
+ },
1209
+ {
1210
+ "active_modifiers": [],
1211
+ "cursor_id": "1",
1212
+ "time_ms": 12792.2183,
1213
+ "x": 0.9800820152314001,
1214
+ "y": 0.20899718837863168
1215
+ },
1216
+ {
1217
+ "active_modifiers": [],
1218
+ "cursor_id": "1",
1219
+ "time_ms": 12817.021999999999,
1220
+ "x": 0.981253661394259,
1221
+ "y": 0.21087160262417995
1222
+ },
1223
+ {
1224
+ "active_modifiers": [],
1225
+ "cursor_id": "1",
1226
+ "time_ms": 12838.4185,
1227
+ "x": 0.9818394844756884,
1228
+ "y": 0.21087160262417995
1229
+ },
1230
+ {
1231
+ "active_modifiers": [],
1232
+ "cursor_id": "1",
1233
+ "time_ms": 12862.0728,
1234
+ "x": 0.9824253075571178,
1235
+ "y": 0.21180880974695407
1236
+ },
1237
+ {
1238
+ "active_modifiers": [],
1239
+ "cursor_id": "2",
1240
+ "time_ms": 12884.217200000001,
1241
+ "x": 0.9830111306385472,
1242
+ "y": 0.21274601686972822
1243
+ },
1244
+ {
1245
+ "active_modifiers": [],
1246
+ "cursor_id": "2",
1247
+ "time_ms": 12907.360499999999,
1248
+ "x": 0.9835969537199766,
1249
+ "y": 0.21274601686972822
1250
+ },
1251
+ {
1252
+ "active_modifiers": [],
1253
+ "cursor_id": "2",
1254
+ "time_ms": 12978.4334,
1255
+ "x": 0.9847685998828354,
1256
+ "y": 0.21368322399250234
1257
+ },
1258
+ {
1259
+ "active_modifiers": [],
1260
+ "cursor_id": "2",
1261
+ "time_ms": 12998.6644,
1262
+ "x": 0.9859402460456942,
1263
+ "y": 0.21462043111527648
1264
+ },
1265
+ {
1266
+ "active_modifiers": [],
1267
+ "cursor_id": "2",
1268
+ "time_ms": 13024.9373,
1269
+ "x": 0.987111892208553,
1270
+ "y": 0.21462043111527648
1271
+ },
1272
+ {
1273
+ "active_modifiers": [],
1274
+ "cursor_id": "2",
1275
+ "time_ms": 13046.388500000001,
1276
+ "x": 0.9876977152899824,
1277
+ "y": 0.21462043111527648
1278
+ },
1279
+ {
1280
+ "active_modifiers": [],
1281
+ "cursor_id": "2",
1282
+ "time_ms": 13069.1101,
1283
+ "x": 0.9882835383714118,
1284
+ "y": 0.2155576382380506
1285
+ },
1286
+ {
1287
+ "active_modifiers": [],
1288
+ "cursor_id": "2",
1289
+ "time_ms": 13114.5882,
1290
+ "x": 0.9882835383714118,
1291
+ "y": 0.21649484536082475
1292
+ },
1293
+ {
1294
+ "active_modifiers": [],
1295
+ "cursor_id": "2",
1296
+ "time_ms": 13178.8518,
1297
+ "x": 0.9882835383714118,
1298
+ "y": 0.21743205248359887
1299
+ },
1300
+ {
1301
+ "active_modifiers": [],
1302
+ "cursor_id": "2",
1303
+ "time_ms": 13207.0417,
1304
+ "x": 0.9882835383714118,
1305
+ "y": 0.21836925960637302
1306
+ },
1307
+ {
1308
+ "active_modifiers": [],
1309
+ "cursor_id": "2",
1310
+ "time_ms": 13386.919,
1311
+ "x": 0.9894551845342706,
1312
+ "y": 0.22586691658856609
1313
+ },
1314
+ {
1315
+ "active_modifiers": [],
1316
+ "cursor_id": "2",
1317
+ "time_ms": 13410.5753,
1318
+ "x": 0.9923842999414177,
1319
+ "y": 0.28209934395501407
1320
+ },
1321
+ {
1322
+ "active_modifiers": [],
1323
+ "cursor_id": "2",
1324
+ "time_ms": 13441.6782,
1325
+ "x": 0.9847685998828354,
1326
+ "y": 0.4526710402999063
1327
+ },
1328
+ {
1329
+ "active_modifiers": [],
1330
+ "cursor_id": "2",
1331
+ "time_ms": 13470.6109,
1332
+ "x": 0.9636789689513767,
1333
+ "y": 0.6644798500468604
1334
+ },
1335
+ {
1336
+ "active_modifiers": [],
1337
+ "cursor_id": "2",
1338
+ "time_ms": 13503.5329,
1339
+ "x": 0.9384885764499121,
1340
+ "y": 0.8537956888472352
1341
+ },
1342
+ {
1343
+ "active_modifiers": [],
1344
+ "cursor_id": "2",
1345
+ "time_ms": 13535.5278,
1346
+ "x": 0.9349736379613357,
1347
+ "y": 0.8903467666354264
1348
+ },
1349
+ {
1350
+ "active_modifiers": [],
1351
+ "cursor_id": "2",
1352
+ "time_ms": 13564.3556,
1353
+ "x": 0.9343878148799063,
1354
+ "y": 0.8922211808809747
1355
+ },
1356
+ {
1357
+ "active_modifiers": [],
1358
+ "cursor_id": "2",
1359
+ "time_ms": 13663.5297,
1360
+ "x": 0.9343878148799063,
1361
+ "y": 0.8912839737582006
1362
+ },
1363
+ {
1364
+ "active_modifiers": [],
1365
+ "cursor_id": "2",
1366
+ "time_ms": 13724.4007,
1367
+ "x": 0.9343878148799063,
1368
+ "y": 0.8903467666354264
1369
+ },
1370
+ {
1371
+ "active_modifiers": [],
1372
+ "cursor_id": "2",
1373
+ "time_ms": 13742.1065,
1374
+ "x": 0.9343878148799063,
1375
+ "y": 0.8894095595126523
1376
+ },
1377
+ {
1378
+ "active_modifiers": [],
1379
+ "cursor_id": "2",
1380
+ "time_ms": 13769.106600000001,
1381
+ "x": 0.9343878148799063,
1382
+ "y": 0.9175257731958762
1383
+ },
1384
+ {
1385
+ "active_modifiers": [],
1386
+ "cursor_id": "2",
1387
+ "time_ms": 13788.4785,
1388
+ "x": 0.9349736379613357,
1389
+ "y": 0.985941893158388
1390
+ },
1391
+ {
1392
+ "active_modifiers": [],
1393
+ "cursor_id": "2",
1394
+ "time_ms": 13814.789499999999,
1395
+ "x": 0.9390743995313415,
1396
+ "y": 0.9990627928772259
1397
+ },
1398
+ {
1399
+ "active_modifiers": [],
1400
+ "cursor_id": "2",
1401
+ "time_ms": 13836.187600000001,
1402
+ "x": 0.945518453427065,
1403
+ "y": 0.9990627928772259
1404
+ },
1405
+ {
1406
+ "active_modifiers": [],
1407
+ "cursor_id": "2",
1408
+ "time_ms": 13859.6728,
1409
+ "x": 0.9490333919156415,
1410
+ "y": 0.9990627928772259
1411
+ },
1412
+ {
1413
+ "active_modifiers": [],
1414
+ "cursor_id": "2",
1415
+ "time_ms": 13882.163999999999,
1416
+ "x": 0.9507908611599297,
1417
+ "y": 0.9990627928772259
1418
+ },
1419
+ {
1420
+ "active_modifiers": [],
1421
+ "cursor_id": "2",
1422
+ "time_ms": 13930.200499999999,
1423
+ "x": 0.9502050380785003,
1424
+ "y": 0.9990627928772259
1425
+ },
1426
+ {
1427
+ "active_modifiers": [],
1428
+ "cursor_id": "2",
1429
+ "time_ms": 13950.5504,
1430
+ "x": 0.9472759226713533,
1431
+ "y": 0.9990627928772259
1432
+ },
1433
+ {
1434
+ "active_modifiers": [],
1435
+ "cursor_id": "2",
1436
+ "time_ms": 13975.7711,
1437
+ "x": 0.9443468072642062,
1438
+ "y": 0.9990627928772259
1439
+ },
1440
+ {
1441
+ "active_modifiers": [],
1442
+ "cursor_id": "2",
1443
+ "time_ms": 13996.103299999999,
1444
+ "x": 0.9437609841827768,
1445
+ "y": 0.9990627928772259
1446
+ },
1447
+ {
1448
+ "active_modifiers": [],
1449
+ "cursor_id": "2",
1450
+ "time_ms": 14022.7866,
1451
+ "x": 0.9420035149384886,
1452
+ "y": 0.9990627928772259
1453
+ },
1454
+ {
1455
+ "active_modifiers": [],
1456
+ "cursor_id": "2",
1457
+ "time_ms": 14044.402399999999,
1458
+ "x": 0.9414176918570591,
1459
+ "y": 0.9990627928772259
1460
+ },
1461
+ {
1462
+ "active_modifiers": [],
1463
+ "cursor_id": "2",
1464
+ "time_ms": 14085.358,
1465
+ "x": 0.9402460456942003,
1466
+ "y": 0.9990627928772259
1467
+ },
1468
+ {
1469
+ "active_modifiers": [],
1470
+ "cursor_id": "2",
1471
+ "time_ms": 31167.5379,
1472
+ "x": 0.9736379613356766,
1473
+ "y": 0.901593252108716
1474
+ },
1475
+ {
1476
+ "active_modifiers": [],
1477
+ "cursor_id": "5",
1478
+ "time_ms": 31199.4922,
1479
+ "x": 0.9994141769185706,
1480
+ "y": 0.767572633552015
1481
+ },
1482
+ {
1483
+ "active_modifiers": [],
1484
+ "cursor_id": "5",
1485
+ "time_ms": 31228.4044,
1486
+ "x": 0.9994141769185706,
1487
+ "y": 0.6251171508903468
1488
+ },
1489
+ {
1490
+ "active_modifiers": [],
1491
+ "cursor_id": "5",
1492
+ "time_ms": 31246.5066,
1493
+ "x": 0.9994141769185706,
1494
+ "y": 0.5520149953139644
1495
+ },
1496
+ {
1497
+ "active_modifiers": [],
1498
+ "cursor_id": "5",
1499
+ "time_ms": 31277.517799999998,
1500
+ "x": 0.9994141769185706,
1501
+ "y": 0.3889409559512652
1502
+ },
1503
+ {
1504
+ "active_modifiers": [],
1505
+ "cursor_id": "5",
1506
+ "time_ms": 31306.677,
1507
+ "x": 0.9994141769185706,
1508
+ "y": 0.3570759137769447
1509
+ },
1510
+ {
1511
+ "active_modifiers": [],
1512
+ "cursor_id": "1",
1513
+ "time_ms": 31557.9722,
1514
+ "x": 0.9050966608084359,
1515
+ "y": 0.22211808809746955
1516
+ },
1517
+ {
1518
+ "active_modifiers": [],
1519
+ "cursor_id": "1",
1520
+ "time_ms": 31589.9528,
1521
+ "x": 0.7855887521968365,
1522
+ "y": 0.09653233364573571
1523
+ },
1524
+ {
1525
+ "active_modifiers": [],
1526
+ "cursor_id": "1",
1527
+ "time_ms": 31618.0125,
1528
+ "x": 0.7328646748681898,
1529
+ "y": 0.05060918462980318
1530
+ },
1531
+ {
1532
+ "active_modifiers": [],
1533
+ "cursor_id": "2",
1534
+ "time_ms": 31650.0184,
1535
+ "x": 0.7246631517281781,
1536
+ "y": 0.038425492033739454
1537
+ },
1538
+ {
1539
+ "active_modifiers": [],
1540
+ "cursor_id": "2",
1541
+ "time_ms": 31916.4155,
1542
+ "x": 0.7211482132396017,
1543
+ "y": 0.03561387066541706
1544
+ },
1545
+ {
1546
+ "active_modifiers": [],
1547
+ "cursor_id": "3",
1548
+ "time_ms": 31944.3544,
1549
+ "x": 0.7193907439953134,
1550
+ "y": 0.03280224929709466
1551
+ },
1552
+ {
1553
+ "active_modifiers": [],
1554
+ "cursor_id": "3",
1555
+ "time_ms": 31962.4005,
1556
+ "x": 0.7182190978324546,
1557
+ "y": 0.031865042174320526
1558
+ },
1559
+ {
1560
+ "active_modifiers": [],
1561
+ "cursor_id": "3",
1562
+ "time_ms": 31994.3567,
1563
+ "x": 0.7176332747510252,
1564
+ "y": 0.02999062792877226
1565
+ },
1566
+ {
1567
+ "active_modifiers": [],
1568
+ "cursor_id": "3",
1569
+ "time_ms": 32023.7563,
1570
+ "x": 0.7170474516695958,
1571
+ "y": 0.029053420805998126
1572
+ },
1573
+ {
1574
+ "active_modifiers": [],
1575
+ "cursor_id": "4",
1576
+ "time_ms": 32041.338099999997,
1577
+ "x": 0.7170474516695958,
1578
+ "y": 0.02717900656044986
1579
+ },
1580
+ {
1581
+ "active_modifiers": [],
1582
+ "cursor_id": "4",
1583
+ "time_ms": 32073.3361,
1584
+ "x": 0.7170474516695958,
1585
+ "y": 0.02530459231490159
1586
+ },
1587
+ {
1588
+ "active_modifiers": [],
1589
+ "cursor_id": "1",
1590
+ "time_ms": 32588.949399999998,
1591
+ "x": 0.6309314586994728,
1592
+ "y": 0.12558575445173384
1593
+ },
1594
+ {
1595
+ "active_modifiers": [],
1596
+ "cursor_id": "1",
1597
+ "time_ms": 32610.969500000003,
1598
+ "x": 0.5705916813122437,
1599
+ "y": 0.22399250234301782
1600
+ },
1601
+ {
1602
+ "active_modifiers": [],
1603
+ "cursor_id": "1",
1604
+ "time_ms": 32633.964200000002,
1605
+ "x": 0.5459871118922085,
1606
+ "y": 0.2867853795688847
1607
+ },
1608
+ {
1609
+ "active_modifiers": [],
1610
+ "cursor_id": "1",
1611
+ "time_ms": 32660.848199999997,
1612
+ "x": 0.5442296426479203,
1613
+ "y": 0.29896907216494845
1614
+ },
1615
+ {
1616
+ "active_modifiers": [],
1617
+ "cursor_id": "1",
1618
+ "time_ms": 32679.510200000004,
1619
+ "x": 0.5448154657293497,
1620
+ "y": 0.29990627928772257
1621
+ },
1622
+ {
1623
+ "active_modifiers": [],
1624
+ "cursor_id": "1",
1625
+ "time_ms": 32710.141200000002,
1626
+ "x": 0.5536028119507909,
1627
+ "y": 0.2933458294283037
1628
+ },
1629
+ {
1630
+ "active_modifiers": [],
1631
+ "cursor_id": "1",
1632
+ "time_ms": 32742.2472,
1633
+ "x": 0.5799648506151143,
1634
+ "y": 0.25679475164011245
1635
+ },
1636
+ {
1637
+ "active_modifiers": [],
1638
+ "cursor_id": "1",
1639
+ "time_ms": 32772.647,
1640
+ "x": 0.6115992970123023,
1641
+ "y": 0.20337394564198688
1642
+ },
1643
+ {
1644
+ "active_modifiers": [],
1645
+ "cursor_id": "1",
1646
+ "time_ms": 32803.5584,
1647
+ "x": 0.6274165202108963,
1648
+ "y": 0.18088097469540768
1649
+ },
1650
+ {
1651
+ "active_modifiers": [],
1652
+ "cursor_id": "1",
1653
+ "time_ms": 32834.3091,
1654
+ "x": 0.6321031048623316,
1655
+ "y": 0.1790065604498594
1656
+ },
1657
+ {
1658
+ "active_modifiers": [],
1659
+ "cursor_id": "1",
1660
+ "time_ms": 32866.2791,
1661
+ "x": 0.6262448740480375,
1662
+ "y": 0.19962511715089035
1663
+ },
1664
+ {
1665
+ "active_modifiers": [],
1666
+ "cursor_id": "1",
1667
+ "time_ms": 32897.9935,
1668
+ "x": 0.60398359695372,
1669
+ "y": 0.27085285848172447
1670
+ },
1671
+ {
1672
+ "active_modifiers": [],
1673
+ "cursor_id": "1",
1674
+ "time_ms": 32929.964400000004,
1675
+ "x": 0.591095489162273,
1676
+ "y": 0.3177132146204311
1677
+ },
1678
+ {
1679
+ "active_modifiers": [],
1680
+ "cursor_id": "1",
1681
+ "time_ms": 32961.0336,
1682
+ "x": 0.5899238429994141,
1683
+ "y": 0.35238987816307404
1684
+ },
1685
+ {
1686
+ "active_modifiers": [],
1687
+ "cursor_id": "1",
1688
+ "time_ms": 32992.995299999995,
1689
+ "x": 0.5940246045694201,
1690
+ "y": 0.3683223992502343
1691
+ },
1692
+ {
1693
+ "active_modifiers": [],
1694
+ "cursor_id": "1",
1695
+ "time_ms": 33010.4466,
1696
+ "x": 0.5969537199765671,
1697
+ "y": 0.37488284910965325
1698
+ },
1699
+ {
1700
+ "active_modifiers": [],
1701
+ "cursor_id": "1",
1702
+ "time_ms": 33037.5031,
1703
+ "x": 0.6022261277094317,
1704
+ "y": 0.3851921274601687
1705
+ },
1706
+ {
1707
+ "active_modifiers": [],
1708
+ "cursor_id": "1",
1709
+ "time_ms": 33056.2277,
1710
+ "x": 0.6051552431165788,
1711
+ "y": 0.39268978444236174
1712
+ },
1713
+ {
1714
+ "active_modifiers": [],
1715
+ "cursor_id": "1",
1716
+ "time_ms": 33289.4971,
1717
+ "x": 0.5969537199765671,
1718
+ "y": 0.4076850984067479
1719
+ },
1720
+ {
1721
+ "active_modifiers": [],
1722
+ "cursor_id": "1",
1723
+ "time_ms": 33315.648799999995,
1724
+ "x": 0.5653192735793791,
1725
+ "y": 0.49765698219306465
1726
+ },
1727
+ {
1728
+ "active_modifiers": [],
1729
+ "cursor_id": "1",
1730
+ "time_ms": 33336.604100000004,
1731
+ "x": 0.5348564733450498,
1732
+ "y": 0.6223055295220243
1733
+ },
1734
+ {
1735
+ "active_modifiers": [],
1736
+ "cursor_id": "1",
1737
+ "time_ms": 33363.4364,
1738
+ "x": 0.5161101347393088,
1739
+ "y": 0.7282099343955014
1740
+ },
1741
+ {
1742
+ "active_modifiers": [],
1743
+ "cursor_id": "1",
1744
+ "time_ms": 33383.534,
1745
+ "x": 0.5125951962507322,
1746
+ "y": 0.761012183692596
1747
+ },
1748
+ {
1749
+ "active_modifiers": [],
1750
+ "cursor_id": "1",
1751
+ "time_ms": 33411.2578,
1752
+ "x": 0.5131810193321616,
1753
+ "y": 0.7703842549203374
1754
+ },
1755
+ {
1756
+ "active_modifiers": [],
1757
+ "cursor_id": "1",
1758
+ "time_ms": 33430.554200000006,
1759
+ "x": 0.5172817809021676,
1760
+ "y": 0.767572633552015
1761
+ },
1762
+ {
1763
+ "active_modifiers": [],
1764
+ "cursor_id": "1",
1765
+ "time_ms": 33460.4178,
1766
+ "x": 0.5190392501464558,
1767
+ "y": 0.7647610121836926
1768
+ },
1769
+ {
1770
+ "active_modifiers": [],
1771
+ "cursor_id": "1",
1772
+ "time_ms": 33679.8948,
1773
+ "x": 0.5313415348564734,
1774
+ "y": 0.7638238050609185
1775
+ },
1776
+ {
1777
+ "active_modifiers": [],
1778
+ "cursor_id": "1",
1779
+ "time_ms": 33702.58960000001,
1780
+ "x": 0.5500878734622144,
1781
+ "y": 0.761012183692596
1782
+ },
1783
+ {
1784
+ "active_modifiers": [],
1785
+ "cursor_id": "1",
1786
+ "time_ms": 33726.914000000004,
1787
+ "x": 0.5717633274751025,
1788
+ "y": 0.7563261480787254
1789
+ },
1790
+ {
1791
+ "active_modifiers": [],
1792
+ "cursor_id": "1",
1793
+ "time_ms": 33754.2223,
1794
+ "x": 0.5981253661394259,
1795
+ "y": 0.7478912839737581
1796
+ },
1797
+ {
1798
+ "active_modifiers": [],
1799
+ "cursor_id": "1",
1800
+ "time_ms": 33772.9798,
1801
+ "x": 0.6074985354422964,
1802
+ "y": 0.7450796626054358
1803
+ },
1804
+ {
1805
+ "active_modifiers": [],
1806
+ "cursor_id": "1",
1807
+ "time_ms": 33803.1643,
1808
+ "x": 0.6291739894551845,
1809
+ "y": 0.7366447985004686
1810
+ },
1811
+ {
1812
+ "active_modifiers": [],
1813
+ "cursor_id": "1",
1814
+ "time_ms": 33820.934100000006,
1815
+ "x": 0.6344463971880492,
1816
+ "y": 0.7338331771321462
1817
+ },
1818
+ {
1819
+ "active_modifiers": [],
1820
+ "cursor_id": "1",
1821
+ "time_ms": 33851.1022,
1822
+ "x": 0.6403046280023433,
1823
+ "y": 0.7300843486410497
1824
+ },
1825
+ {
1826
+ "active_modifiers": [],
1827
+ "cursor_id": "1",
1828
+ "time_ms": 33867.5626,
1829
+ "x": 0.6420620972466315,
1830
+ "y": 0.7282099343955014
1831
+ },
1832
+ {
1833
+ "active_modifiers": [],
1834
+ "cursor_id": "1",
1835
+ "time_ms": 34272.8258,
1836
+ "x": 0.6414762741652021,
1837
+ "y": 0.7310215557638238
1838
+ },
1839
+ {
1840
+ "active_modifiers": [],
1841
+ "cursor_id": "1",
1842
+ "time_ms": 34293.6692,
1843
+ "x": 0.6414762741652021,
1844
+ "y": 0.7338331771321462
1845
+ },
1846
+ {
1847
+ "active_modifiers": [],
1848
+ "cursor_id": "1",
1849
+ "time_ms": 34317.5573,
1850
+ "x": 0.6414762741652021,
1851
+ "y": 0.7375820056232427
1852
+ },
1853
+ {
1854
+ "active_modifiers": [],
1855
+ "cursor_id": "1",
1856
+ "time_ms": 34335.745500000005,
1857
+ "x": 0.6444053895723492,
1858
+ "y": 0.7413308341143393
1859
+ },
1860
+ {
1861
+ "active_modifiers": [],
1862
+ "cursor_id": "1",
1863
+ "time_ms": 34366.89230000001,
1864
+ "x": 0.6496777973052138,
1865
+ "y": 0.7460168697282099
1866
+ },
1867
+ {
1868
+ "active_modifiers": [],
1869
+ "cursor_id": "1",
1870
+ "time_ms": 34391.084,
1871
+ "x": 0.6537785588752196,
1872
+ "y": 0.7488284910965324
1873
+ },
1874
+ {
1875
+ "active_modifiers": [],
1876
+ "cursor_id": "1",
1877
+ "time_ms": 34413.7583,
1878
+ "x": 0.6590509666080844,
1879
+ "y": 0.7488284910965324
1880
+ },
1881
+ {
1882
+ "active_modifiers": [],
1883
+ "cursor_id": "1",
1884
+ "time_ms": 34440.083,
1885
+ "x": 0.6608084358523726,
1886
+ "y": 0.7488284910965324
1887
+ },
1888
+ {
1889
+ "active_modifiers": [],
1890
+ "cursor_id": "1",
1891
+ "time_ms": 34458.9286,
1892
+ "x": 0.6625659050966608,
1893
+ "y": 0.7488284910965324
1894
+ },
1895
+ {
1896
+ "active_modifiers": [],
1897
+ "cursor_id": "1",
1898
+ "time_ms": 34488.1656,
1899
+ "x": 0.6631517281780902,
1900
+ "y": 0.7488284910965324
1901
+ },
1902
+ {
1903
+ "active_modifiers": [],
1904
+ "cursor_id": "1",
1905
+ "time_ms": 34536.5779,
1906
+ "x": 0.6637375512595196,
1907
+ "y": 0.7488284910965324
1908
+ },
1909
+ {
1910
+ "active_modifiers": [],
1911
+ "cursor_id": "1",
1912
+ "time_ms": 34568.2294,
1913
+ "x": 0.6649091974223784,
1914
+ "y": 0.746954076850984
1915
+ },
1916
+ {
1917
+ "active_modifiers": [],
1918
+ "cursor_id": "1",
1919
+ "time_ms": 34610.5751,
1920
+ "x": 0.6654950205038078,
1921
+ "y": 0.7450796626054358
1922
+ },
1923
+ {
1924
+ "active_modifiers": [],
1925
+ "cursor_id": "1",
1926
+ "time_ms": 34680.333,
1927
+ "x": 0.6654950205038078,
1928
+ "y": 0.7441424554826617
1929
+ },
1930
+ {
1931
+ "active_modifiers": [],
1932
+ "cursor_id": "1",
1933
+ "time_ms": 34755.7247,
1934
+ "x": 0.6654950205038078,
1935
+ "y": 0.7432052483598875
1936
+ },
1937
+ {
1938
+ "active_modifiers": [],
1939
+ "cursor_id": "1",
1940
+ "time_ms": 34787.2668,
1941
+ "x": 0.661394258933802,
1942
+ "y": 0.7422680412371134
1943
+ },
1944
+ {
1945
+ "active_modifiers": [],
1946
+ "cursor_id": "1",
1947
+ "time_ms": 34819.2869,
1948
+ "x": 0.6537785588752196,
1949
+ "y": 0.7413308341143393
1950
+ },
1951
+ {
1952
+ "active_modifiers": [],
1953
+ "cursor_id": "1",
1954
+ "time_ms": 34850.7232,
1955
+ "x": 0.6467486818980668,
1956
+ "y": 0.739456419868791
1957
+ },
1958
+ {
1959
+ "active_modifiers": [],
1960
+ "cursor_id": "1",
1961
+ "time_ms": 34878.857500000006,
1962
+ "x": 0.645577035735208,
1963
+ "y": 0.739456419868791
1964
+ },
1965
+ {
1966
+ "active_modifiers": [],
1967
+ "cursor_id": "1",
1968
+ "time_ms": 34927.326,
1969
+ "x": 0.6502636203866432,
1970
+ "y": 0.7413308341143393
1971
+ },
1972
+ {
1973
+ "active_modifiers": [],
1974
+ "cursor_id": "1",
1975
+ "time_ms": 34945.037399999994,
1976
+ "x": 0.6567076742823668,
1977
+ "y": 0.7413308341143393
1978
+ },
1979
+ {
1980
+ "active_modifiers": [],
1981
+ "cursor_id": "1",
1982
+ "time_ms": 34975.0285,
1983
+ "x": 0.6649091974223784,
1984
+ "y": 0.7432052483598875
1985
+ },
1986
+ {
1987
+ "active_modifiers": [],
1988
+ "cursor_id": "1",
1989
+ "time_ms": 35001.7264,
1990
+ "x": 0.6695957820738138,
1991
+ "y": 0.7432052483598875
1992
+ },
1993
+ {
1994
+ "active_modifiers": [],
1995
+ "cursor_id": "1",
1996
+ "time_ms": 35021.096,
1997
+ "x": 0.6707674282366726,
1998
+ "y": 0.7432052483598875
1999
+ },
2000
+ {
2001
+ "active_modifiers": [],
2002
+ "cursor_id": "1",
2003
+ "time_ms": 35050.479699999996,
2004
+ "x": 0.6731107205623902,
2005
+ "y": 0.7432052483598875
2006
+ },
2007
+ {
2008
+ "active_modifiers": [],
2009
+ "cursor_id": "1",
2010
+ "time_ms": 35069.0956,
2011
+ "x": 0.674282366725249,
2012
+ "y": 0.7432052483598875
2013
+ },
2014
+ {
2015
+ "active_modifiers": [],
2016
+ "cursor_id": "1",
2017
+ "time_ms": 35100.0409,
2018
+ "x": 0.6760398359695372,
2019
+ "y": 0.7432052483598875
2020
+ },
2021
+ {
2022
+ "active_modifiers": [],
2023
+ "cursor_id": "1",
2024
+ "time_ms": 35117.1224,
2025
+ "x": 0.6766256590509666,
2026
+ "y": 0.7432052483598875
2027
+ },
2028
+ {
2029
+ "active_modifiers": [],
2030
+ "cursor_id": "1",
2031
+ "time_ms": 35148.122899999995,
2032
+ "x": 0.6789689513766842,
2033
+ "y": 0.7432052483598875
2034
+ },
2035
+ {
2036
+ "active_modifiers": [],
2037
+ "cursor_id": "1",
2038
+ "time_ms": 35179.4115,
2039
+ "x": 0.6807264206209724,
2040
+ "y": 0.7432052483598875
2041
+ },
2042
+ {
2043
+ "active_modifiers": [],
2044
+ "cursor_id": "1",
2045
+ "time_ms": 35196.9584,
2046
+ "x": 0.6824838898652607,
2047
+ "y": 0.7441424554826617
2048
+ },
2049
+ {
2050
+ "active_modifiers": [],
2051
+ "cursor_id": "1",
2052
+ "time_ms": 35221.6447,
2053
+ "x": 0.6836555360281195,
2054
+ "y": 0.7441424554826617
2055
+ },
2056
+ {
2057
+ "active_modifiers": [],
2058
+ "cursor_id": "1",
2059
+ "time_ms": 35241.748,
2060
+ "x": 0.6854130052724078,
2061
+ "y": 0.7450796626054358
2062
+ },
2063
+ {
2064
+ "active_modifiers": [],
2065
+ "cursor_id": "1",
2066
+ "time_ms": 35272.0695,
2067
+ "x": 0.6865846514352666,
2068
+ "y": 0.7460168697282099
2069
+ },
2070
+ {
2071
+ "active_modifiers": [],
2072
+ "cursor_id": "1",
2073
+ "time_ms": 35288.7212,
2074
+ "x": 0.6877562975981254,
2075
+ "y": 0.746954076850984
2076
+ },
2077
+ {
2078
+ "active_modifiers": [],
2079
+ "cursor_id": "1",
2080
+ "time_ms": 35318.686200000004,
2081
+ "x": 0.6889279437609842,
2082
+ "y": 0.7488284910965324
2083
+ },
2084
+ {
2085
+ "active_modifiers": [],
2086
+ "cursor_id": "1",
2087
+ "time_ms": 35347.018599999996,
2088
+ "x": 0.6895137668424136,
2089
+ "y": 0.7488284910965324
2090
+ },
2091
+ {
2092
+ "active_modifiers": [],
2093
+ "cursor_id": "1",
2094
+ "time_ms": 35364.722499999996,
2095
+ "x": 0.6895137668424136,
2096
+ "y": 0.7497656982193065
2097
+ },
2098
+ {
2099
+ "active_modifiers": [],
2100
+ "cursor_id": "1",
2101
+ "time_ms": 35394.6623,
2102
+ "x": 0.6895137668424136,
2103
+ "y": 0.7507029053420806
2104
+ },
2105
+ {
2106
+ "active_modifiers": [],
2107
+ "cursor_id": "1",
2108
+ "time_ms": 35565.246399999996,
2109
+ "x": 0.6895137668424136,
2110
+ "y": 0.7497656982193065
2111
+ },
2112
+ {
2113
+ "active_modifiers": [],
2114
+ "cursor_id": "1",
2115
+ "time_ms": 35593.5236,
2116
+ "x": 0.6848271821909784,
2117
+ "y": 0.7422680412371134
2118
+ },
2119
+ {
2120
+ "active_modifiers": [],
2121
+ "cursor_id": "1",
2122
+ "time_ms": 35611.716700000004,
2123
+ "x": 0.6818980667838312,
2124
+ "y": 0.7366447985004686
2125
+ },
2126
+ {
2127
+ "active_modifiers": [],
2128
+ "cursor_id": "1",
2129
+ "time_ms": 35642.9132,
2130
+ "x": 0.6795547744581136,
2131
+ "y": 0.7319587628865979
2132
+ },
2133
+ {
2134
+ "active_modifiers": [],
2135
+ "cursor_id": "1",
2136
+ "time_ms": 35670.0386,
2137
+ "x": 0.6777973052138254,
2138
+ "y": 0.7300843486410497
2139
+ },
2140
+ {
2141
+ "active_modifiers": [],
2142
+ "cursor_id": "1",
2143
+ "time_ms": 35690.871,
2144
+ "x": 0.6766256590509666,
2145
+ "y": 0.7300843486410497
2146
+ },
2147
+ {
2148
+ "active_modifiers": [],
2149
+ "cursor_id": "1",
2150
+ "time_ms": 35770.0628,
2151
+ "x": 0.6760398359695372,
2152
+ "y": 0.7300843486410497
2153
+ },
2154
+ {
2155
+ "active_modifiers": [],
2156
+ "cursor_id": "1",
2157
+ "time_ms": 35797.0221,
2158
+ "x": 0.6754540128881078,
2159
+ "y": 0.7300843486410497
2160
+ },
2161
+ {
2162
+ "active_modifiers": [],
2163
+ "cursor_id": "1",
2164
+ "time_ms": 35847.3804,
2165
+ "x": 0.6725248974809608,
2166
+ "y": 0.7319587628865979
2167
+ },
2168
+ {
2169
+ "active_modifiers": [],
2170
+ "cursor_id": "1",
2171
+ "time_ms": 35878.1425,
2172
+ "x": 0.6690099589923842,
2173
+ "y": 0.7338331771321462
2174
+ },
2175
+ {
2176
+ "active_modifiers": [],
2177
+ "cursor_id": "1",
2178
+ "time_ms": 35896.2267,
2179
+ "x": 0.664323374340949,
2180
+ "y": 0.7357075913776945
2181
+ },
2182
+ {
2183
+ "active_modifiers": [],
2184
+ "cursor_id": "1",
2185
+ "time_ms": 35924.498100000004,
2186
+ "x": 0.6531927357937902,
2187
+ "y": 0.7375820056232427
2188
+ },
2189
+ {
2190
+ "active_modifiers": [],
2191
+ "cursor_id": "1",
2192
+ "time_ms": 35945.5856,
2193
+ "x": 0.6414762741652021,
2194
+ "y": 0.7375820056232427
2195
+ },
2196
+ {
2197
+ "active_modifiers": [],
2198
+ "cursor_id": "1",
2199
+ "time_ms": 35971.5029,
2200
+ "x": 0.6321031048623316,
2201
+ "y": 0.7375820056232427
2202
+ },
2203
+ {
2204
+ "active_modifiers": [],
2205
+ "cursor_id": "1",
2206
+ "time_ms": 35995.001899999996,
2207
+ "x": 0.6215582893966022,
2208
+ "y": 0.7357075913776945
2209
+ },
2210
+ {
2211
+ "active_modifiers": [],
2212
+ "cursor_id": "1",
2213
+ "time_ms": 36018.490900000004,
2214
+ "x": 0.6104276508494435,
2215
+ "y": 0.7328959700093721
2216
+ },
2217
+ {
2218
+ "active_modifiers": [],
2219
+ "cursor_id": "1",
2220
+ "time_ms": 36043.721300000005,
2221
+ "x": 0.6028119507908611,
2222
+ "y": 0.7319587628865979
2223
+ },
2224
+ {
2225
+ "active_modifiers": [],
2226
+ "cursor_id": "1",
2227
+ "time_ms": 36065.484599999996,
2228
+ "x": 0.5957820738137083,
2229
+ "y": 0.7282099343955014
2230
+ },
2231
+ {
2232
+ "active_modifiers": [],
2233
+ "cursor_id": "1",
2234
+ "time_ms": 36091.9174,
2235
+ "x": 0.5864089045108377,
2236
+ "y": 0.7263355201499532
2237
+ },
2238
+ {
2239
+ "active_modifiers": [],
2240
+ "cursor_id": "1",
2241
+ "time_ms": 36112.4829,
2242
+ "x": 0.5793790275336849,
2243
+ "y": 0.7244611059044048
2244
+ },
2245
+ {
2246
+ "active_modifiers": [],
2247
+ "cursor_id": "1",
2248
+ "time_ms": 36144.498499999994,
2249
+ "x": 0.5741066198008201,
2250
+ "y": 0.7207122774133083
2251
+ },
2252
+ {
2253
+ "active_modifiers": [],
2254
+ "cursor_id": "1",
2255
+ "time_ms": 36176.3201,
2256
+ "x": 0.5700058582308143,
2257
+ "y": 0.7197750702905342
2258
+ },
2259
+ {
2260
+ "active_modifiers": [],
2261
+ "cursor_id": "1",
2262
+ "time_ms": 36208.231499999994,
2263
+ "x": 0.5694200351493849,
2264
+ "y": 0.7188378631677601
2265
+ },
2266
+ {
2267
+ "active_modifiers": [],
2268
+ "cursor_id": "1",
2269
+ "time_ms": 36237.1862,
2270
+ "x": 0.5700058582308143,
2271
+ "y": 0.7188378631677601
2272
+ },
2273
+ {
2274
+ "active_modifiers": [],
2275
+ "cursor_id": "1",
2276
+ "time_ms": 36255.9467,
2277
+ "x": 0.5741066198008201,
2278
+ "y": 0.7169634489222118
2279
+ },
2280
+ {
2281
+ "active_modifiers": [],
2282
+ "cursor_id": "1",
2283
+ "time_ms": 36287.2604,
2284
+ "x": 0.5969537199765671,
2285
+ "y": 0.7132146204311153
2286
+ },
2287
+ {
2288
+ "active_modifiers": [],
2289
+ "cursor_id": "1",
2290
+ "time_ms": 36319.319,
2291
+ "x": 0.6215582893966022,
2292
+ "y": 0.711340206185567
2293
+ },
2294
+ {
2295
+ "active_modifiers": [],
2296
+ "cursor_id": "1",
2297
+ "time_ms": 36345.1135,
2298
+ "x": 0.6444053895723492,
2299
+ "y": 0.711340206185567
2300
+ },
2301
+ {
2302
+ "active_modifiers": [],
2303
+ "cursor_id": "1",
2304
+ "time_ms": 36367.311299999994,
2305
+ "x": 0.6567076742823668,
2306
+ "y": 0.711340206185567
2307
+ },
2308
+ {
2309
+ "active_modifiers": [],
2310
+ "cursor_id": "1",
2311
+ "time_ms": 36393.6682,
2312
+ "x": 0.667252489748096,
2313
+ "y": 0.7122774133083412
2314
+ },
2315
+ {
2316
+ "active_modifiers": [],
2317
+ "cursor_id": "1",
2318
+ "time_ms": 36415.2845,
2319
+ "x": 0.6777973052138254,
2320
+ "y": 0.7141518275538894
2321
+ },
2322
+ {
2323
+ "active_modifiers": [],
2324
+ "cursor_id": "1",
2325
+ "time_ms": 36442.6282,
2326
+ "x": 0.6895137668424136,
2327
+ "y": 0.7150890346766635
2328
+ },
2329
+ {
2330
+ "active_modifiers": [],
2331
+ "cursor_id": "1",
2332
+ "time_ms": 36463.361,
2333
+ "x": 0.6959578207381371,
2334
+ "y": 0.7169634489222118
2335
+ },
2336
+ {
2337
+ "active_modifiers": [],
2338
+ "cursor_id": "1",
2339
+ "time_ms": 36491.5125,
2340
+ "x": 0.7024018746338606,
2341
+ "y": 0.717900656044986
2342
+ },
2343
+ {
2344
+ "active_modifiers": [],
2345
+ "cursor_id": "1",
2346
+ "time_ms": 36511.355899999995,
2347
+ "x": 0.7053309900410076,
2348
+ "y": 0.7188378631677601
2349
+ },
2350
+ {
2351
+ "active_modifiers": [],
2352
+ "cursor_id": "1",
2353
+ "time_ms": 36540.7584,
2354
+ "x": 0.7076742823667252,
2355
+ "y": 0.7197750702905342
2356
+ },
2357
+ {
2358
+ "active_modifiers": [],
2359
+ "cursor_id": "1",
2360
+ "time_ms": 36558.3765,
2361
+ "x": 0.7088459285295841,
2362
+ "y": 0.7207122774133083
2363
+ },
2364
+ {
2365
+ "active_modifiers": [],
2366
+ "cursor_id": "1",
2367
+ "time_ms": 36588.672099999996,
2368
+ "x": 0.7100175746924429,
2369
+ "y": 0.7207122774133083
2370
+ },
2371
+ {
2372
+ "active_modifiers": [],
2373
+ "cursor_id": "1",
2374
+ "time_ms": 36613.4773,
2375
+ "x": 0.7106033977738723,
2376
+ "y": 0.7216494845360825
2377
+ },
2378
+ {
2379
+ "active_modifiers": [],
2380
+ "cursor_id": "1",
2381
+ "time_ms": 36635.938500000004,
2382
+ "x": 0.7111892208553017,
2383
+ "y": 0.7225866916588566
2384
+ },
2385
+ {
2386
+ "active_modifiers": [],
2387
+ "cursor_id": "1",
2388
+ "time_ms": 36662.1646,
2389
+ "x": 0.7117750439367311,
2390
+ "y": 0.7225866916588566
2391
+ },
2392
+ {
2393
+ "active_modifiers": [],
2394
+ "cursor_id": "1",
2395
+ "time_ms": 38347.101,
2396
+ "x": 0.6906854130052724,
2397
+ "y": 0.7666354264292409
2398
+ },
2399
+ {
2400
+ "active_modifiers": [],
2401
+ "cursor_id": "1",
2402
+ "time_ms": 38378.1429,
2403
+ "x": 0.674282366725249,
2404
+ "y": 0.8097469540768509
2405
+ },
2406
+ {
2407
+ "active_modifiers": [],
2408
+ "cursor_id": "1",
2409
+ "time_ms": 38410.0658,
2410
+ "x": 0.6602226127709432,
2411
+ "y": 0.8397375820056232
2412
+ },
2413
+ {
2414
+ "active_modifiers": [],
2415
+ "cursor_id": "1",
2416
+ "time_ms": 38441.6496,
2417
+ "x": 0.6502636203866432,
2418
+ "y": 0.8631677600749765
2419
+ },
2420
+ {
2421
+ "active_modifiers": [],
2422
+ "cursor_id": "1",
2423
+ "time_ms": 38472.6428,
2424
+ "x": 0.6449912126537786,
2425
+ "y": 0.872539831302718
2426
+ },
2427
+ {
2428
+ "active_modifiers": [],
2429
+ "cursor_id": "1",
2430
+ "time_ms": 38502.678,
2431
+ "x": 0.6403046280023433,
2432
+ "y": 0.8809746954076851
2433
+ },
2434
+ {
2435
+ "active_modifiers": [],
2436
+ "cursor_id": "1",
2437
+ "time_ms": 38526.6815,
2438
+ "x": 0.6362038664323374,
2439
+ "y": 0.887535145267104
2440
+ },
2441
+ {
2442
+ "active_modifiers": [],
2443
+ "cursor_id": "1",
2444
+ "time_ms": 38548.6855,
2445
+ "x": 0.632688927943761,
2446
+ "y": 0.8912839737582006
2447
+ },
2448
+ {
2449
+ "active_modifiers": [],
2450
+ "cursor_id": "1",
2451
+ "time_ms": 38579.661799999994,
2452
+ "x": 0.6274165202108963,
2453
+ "y": 0.8969072164948454
2454
+ },
2455
+ {
2456
+ "active_modifiers": [],
2457
+ "cursor_id": "1",
2458
+ "time_ms": 38611.185399999995,
2459
+ "x": 0.6239015817223199,
2460
+ "y": 0.9006560449859419
2461
+ },
2462
+ {
2463
+ "active_modifiers": [],
2464
+ "cursor_id": "1",
2465
+ "time_ms": 38638.104699999996,
2466
+ "x": 0.622729935559461,
2467
+ "y": 0.9025304592314901
2468
+ },
2469
+ {
2470
+ "active_modifiers": [],
2471
+ "cursor_id": "1",
2472
+ "time_ms": 38658.8874,
2473
+ "x": 0.6209724663151728,
2474
+ "y": 0.9034676663542643
2475
+ },
2476
+ {
2477
+ "active_modifiers": [],
2478
+ "cursor_id": "1",
2479
+ "time_ms": 38682.7452,
2480
+ "x": 0.619800820152314,
2481
+ "y": 0.9044048734770385
2482
+ },
2483
+ {
2484
+ "active_modifiers": [],
2485
+ "cursor_id": "1",
2486
+ "time_ms": 38705.072,
2487
+ "x": 0.6180433509080258,
2488
+ "y": 0.9044048734770385
2489
+ },
2490
+ {
2491
+ "active_modifiers": [],
2492
+ "cursor_id": "1",
2493
+ "time_ms": 38736.669499999996,
2494
+ "x": 0.616871704745167,
2495
+ "y": 0.9044048734770385
2496
+ },
2497
+ {
2498
+ "active_modifiers": [],
2499
+ "cursor_id": "1",
2500
+ "time_ms": 38754.3355,
2501
+ "x": 0.6162858816637375,
2502
+ "y": 0.9044048734770385
2503
+ },
2504
+ {
2505
+ "active_modifiers": [],
2506
+ "cursor_id": "1",
2507
+ "time_ms": 38782.6899,
2508
+ "x": 0.6157000585823081,
2509
+ "y": 0.9025304592314901
2510
+ },
2511
+ {
2512
+ "active_modifiers": [],
2513
+ "cursor_id": "1",
2514
+ "time_ms": 38803.9763,
2515
+ "x": 0.6151142355008787,
2516
+ "y": 0.9006560449859419
2517
+ },
2518
+ {
2519
+ "active_modifiers": [],
2520
+ "cursor_id": "1",
2521
+ "time_ms": 38828.5696,
2522
+ "x": 0.6145284124194493,
2523
+ "y": 0.8987816307403936
2524
+ },
2525
+ {
2526
+ "active_modifiers": [],
2527
+ "cursor_id": "1",
2528
+ "time_ms": 38860.225999999995,
2529
+ "x": 0.6145284124194493,
2530
+ "y": 0.8969072164948454
2531
+ },
2532
+ {
2533
+ "active_modifiers": [],
2534
+ "cursor_id": "1",
2535
+ "time_ms": 38876.662000000004,
2536
+ "x": 0.6139425893380199,
2537
+ "y": 0.8959700093720713
2538
+ },
2539
+ {
2540
+ "active_modifiers": [],
2541
+ "cursor_id": "1",
2542
+ "time_ms": 38900.7657,
2543
+ "x": 0.6139425893380199,
2544
+ "y": 0.895032802249297
2545
+ },
2546
+ {
2547
+ "active_modifiers": [],
2548
+ "cursor_id": "1",
2549
+ "time_ms": 38966.81800000001,
2550
+ "x": 0.6133567662565905,
2551
+ "y": 0.8978444236176195
2552
+ },
2553
+ {
2554
+ "active_modifiers": [],
2555
+ "cursor_id": "1",
2556
+ "time_ms": 38985.173500000004,
2557
+ "x": 0.6127709431751611,
2558
+ "y": 0.9006560449859419
2559
+ },
2560
+ {
2561
+ "active_modifiers": [],
2562
+ "cursor_id": "1",
2563
+ "time_ms": 39011.516,
2564
+ "x": 0.6098418277680141,
2565
+ "y": 0.9081537019681349
2566
+ },
2567
+ {
2568
+ "active_modifiers": [],
2569
+ "cursor_id": "1",
2570
+ "time_ms": 39031.8753,
2571
+ "x": 0.6092560046865847,
2572
+ "y": 0.9119025304592315
2573
+ },
2574
+ {
2575
+ "active_modifiers": [],
2576
+ "cursor_id": "1",
2577
+ "time_ms": 39055.8342,
2578
+ "x": 0.6086701816051553,
2579
+ "y": 0.915651358950328
2580
+ },
2581
+ {
2582
+ "active_modifiers": [],
2583
+ "cursor_id": "1",
2584
+ "time_ms": 39078.9323,
2585
+ "x": 0.6086701816051553,
2586
+ "y": 0.9194001874414246
2587
+ }
2588
+ ]
2589
+ }
a5c557efbc56.cap/content/segments/segment-0/display.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d93362e206d3728c2b9f0f1ac8f7a6aa72706e36fa7a6e6a95d2e9a3cef2218f
3
+ size 27984986
a5c557efbc56.cap/content/segments/segment-0/keyboard.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2e7fa14e3681c142652e26136377d539a30650d1815829d20d6fdc2339a01957
3
+ size 979
a5c557efbc56.cap/project-config.json ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "aspectRatio": null,
3
+ "background": {
4
+ "source": {
5
+ "type": "color",
6
+ "value": [
7
+ 255,
8
+ 255,
9
+ 255
10
+ ],
11
+ "alpha": 255
12
+ },
13
+ "blur": 0.0,
14
+ "padding": 0.0,
15
+ "rounding": 0.0,
16
+ "roundingType": "squircle",
17
+ "inset": 0,
18
+ "crop": null,
19
+ "shadow": 73.6,
20
+ "advancedShadow": {
21
+ "size": 14.4,
22
+ "opacity": 68.1,
23
+ "blur": 3.8
24
+ },
25
+ "border": null
26
+ },
27
+ "camera": {
28
+ "hide": false,
29
+ "mirror": false,
30
+ "position": {
31
+ "x": "right",
32
+ "y": "bottom"
33
+ },
34
+ "size": 30.0,
35
+ "zoomSize": 60.0,
36
+ "rounding": 100.0,
37
+ "shadow": 62.5,
38
+ "advancedShadow": {
39
+ "size": 33.9,
40
+ "opacity": 44.2,
41
+ "blur": 10.5
42
+ },
43
+ "shape": "square",
44
+ "roundingType": "squircle",
45
+ "scaleDuringZoom": 0.7,
46
+ "backgroundBlur": {
47
+ "mode": "off"
48
+ }
49
+ },
50
+ "audio": {
51
+ "mute": false,
52
+ "improve": false,
53
+ "micVolumeDb": 0.0,
54
+ "micStereoMode": "stereo",
55
+ "systemVolumeDb": 0.0
56
+ },
57
+ "cursor": {
58
+ "hide": false,
59
+ "hideWhenIdle": false,
60
+ "hideWhenIdleDelay": 2.0,
61
+ "size": 100,
62
+ "type": "auto",
63
+ "animationStyle": "mellow",
64
+ "tension": 470.0,
65
+ "mass": 3.0,
66
+ "friction": 70.0,
67
+ "raw": false,
68
+ "motionBlur": 0.5,
69
+ "useSvg": true,
70
+ "rotationAmount": 0.15,
71
+ "baseRotation": 0.0,
72
+ "clickSpring": null,
73
+ "stopMovementInLastSeconds": null
74
+ },
75
+ "hotkeys": {
76
+ "show": false
77
+ },
78
+ "timeline": {
79
+ "segments": [
80
+ {
81
+ "recordingSegment": 0,
82
+ "timescale": 1.0,
83
+ "start": 0.0,
84
+ "end": 42.312511
85
+ }
86
+ ],
87
+ "zoomSegments": [],
88
+ "sceneSegments": [],
89
+ "maskSegments": [],
90
+ "textSegments": [],
91
+ "captionSegments": [],
92
+ "keyboardSegments": []
93
+ },
94
+ "captions": null,
95
+ "keyboard": null,
96
+ "clips": [
97
+ {
98
+ "index": 0,
99
+ "offsets": {
100
+ "camera": 0.0,
101
+ "mic": 0.0,
102
+ "system_audio": 0.0
103
+ }
104
+ }
105
+ ],
106
+ "annotations": [],
107
+ "screenMotionBlur": 0.5,
108
+ "screenMovementSpring": {
109
+ "stiffness": 200.0,
110
+ "damping": 40.0,
111
+ "mass": 2.25
112
+ }
113
+ }
a5c557efbc56.cap/recording-meta.json ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "platform": "Windows",
3
+ "pretty_name": "Cap 2026-06-12 at 23.47.29",
4
+ "sharing": null,
5
+ "segments": [
6
+ {
7
+ "display": {
8
+ "path": "content/segments/segment-0/display.mp4",
9
+ "fps": 41,
10
+ "start_time": 0.3677832
11
+ },
12
+ "cursor": "content/segments/segment-0/cursor.json",
13
+ "keyboard": "content/segments/segment-0/keyboard.bin"
14
+ }
15
+ ],
16
+ "cursors": {
17
+ "0": {
18
+ "imagePath": "content/cursors/cursor_0.png",
19
+ "hotspot": {
20
+ "x": 0.46875,
21
+ "y": 0.5
22
+ },
23
+ "shape": "Windows|SizeNS"
24
+ },
25
+ "4": {
26
+ "imagePath": "content/cursors/cursor_4.png",
27
+ "hotspot": {
28
+ "x": 0.3125,
29
+ "y": 0.3125
30
+ },
31
+ "shape": "Windows|Hand"
32
+ },
33
+ "1": {
34
+ "imagePath": "content/cursors/cursor_1.png",
35
+ "hotspot": {
36
+ "x": 0.46875,
37
+ "y": 0.5
38
+ },
39
+ "shape": "Windows|IBeam"
40
+ },
41
+ "6": {
42
+ "imagePath": "content/cursors/cursor_6.png",
43
+ "hotspot": {
44
+ "x": 0.0,
45
+ "y": 0.0
46
+ },
47
+ "shape": "Windows|AppStarting"
48
+ },
49
+ "5": {
50
+ "imagePath": "content/cursors/cursor_5.png",
51
+ "hotspot": {
52
+ "x": 0.5,
53
+ "y": 0.5
54
+ },
55
+ "shape": "Windows|SizeWE"
56
+ },
57
+ "3": {
58
+ "imagePath": "content/cursors/cursor_3.png",
59
+ "hotspot": {
60
+ "x": 0.40625,
61
+ "y": 0.40625
62
+ },
63
+ "shape": null
64
+ },
65
+ "2": {
66
+ "imagePath": "content/cursors/cursor_2.png",
67
+ "hotspot": {
68
+ "x": 0.0,
69
+ "y": 0.0
70
+ },
71
+ "shape": "Windows|Arrow"
72
+ }
73
+ },
74
+ "status": {
75
+ "status": "Complete"
76
+ }
77
+ }
app.py CHANGED
@@ -27,6 +27,7 @@ except ImportError: # not installed locally (base env / offline); decorator no-
27
 
28
  spaces = _SpacesShim() # type: ignore
29
 
 
30
  from core import inspector
31
  from core import llm
32
  from core import seed_lessons
@@ -226,6 +227,12 @@ def build_job(part, material, description, temp, humidity, bed_position):
226
  state = {"job": job.model_dump(), "env": env.model_dump(), "settings": spine.settings.model_dump(),
227
  "advice": rec.advice.model_dump(), "label": part.get("label")}
228
 
 
 
 
 
 
 
229
  return (
230
  f"{rec.backend}{fb}", # backend status
231
  precedent, # precedent
@@ -520,6 +527,7 @@ def build() -> gr.Blocks:
520
  refresh = gr.Button("⟳ REFRESH LEDGER", elem_classes=["ce-pillbtn"])
521
 
522
  footer = gr.HTML(footer_bar())
 
523
 
524
  # ── wiring ──
525
  preview_outs = [part, model3d, part_status]
@@ -532,6 +540,9 @@ def build() -> gr.Blocks:
532
  # Simulated environment: roll on load, re-roll on demand, keep the readout + footer in sync.
533
  sensor_outs = [temp, humidity, bed_position, sensors_readout]
534
  demo.load(randomize_sensors, None, sensor_outs).then(status_footer, foot_in, [footer])
 
 
 
535
  roll_btn.click(randomize_sensors, None, sensor_outs).then(status_footer, foot_in, [footer])
536
  for c in (temp, humidity, bed_position):
537
  c.change(sync_readout, [temp, humidity, bed_position], [sensors_readout]).then(
 
27
 
28
  spaces = _SpacesShim() # type: ignore
29
 
30
+ from core import field_log
31
  from core import inspector
32
  from core import llm
33
  from core import seed_lessons
 
227
  state = {"job": job.model_dump(), "env": env.model_dump(), "settings": spine.settings.model_dump(),
228
  "advice": rec.advice.model_dump(), "label": part.get("label")}
229
 
230
+ # ── field log (Space only — gated on HF_TOKEN; local/offline no-ops) ──
231
+ field_log.log_build(
232
+ job=state["job"], env=state["env"], settings=state["settings"],
233
+ advice=state["advice"], backend=rec.backend, used_fallback=rec.used_fallback,
234
+ )
235
+
236
  return (
237
  f"{rec.backend}{fb}", # backend status
238
  precedent, # precedent
 
527
  refresh = gr.Button("⟳ REFRESH LEDGER", elem_classes=["ce-pillbtn"])
528
 
529
  footer = gr.HTML(footer_bar())
530
+ privacy_line = gr.HTML(visible=field_log.is_active())
531
 
532
  # ── wiring ──
533
  preview_outs = [part, model3d, part_status]
 
540
  # Simulated environment: roll on load, re-roll on demand, keep the readout + footer in sync.
541
  sensor_outs = [temp, humidity, bed_position, sensors_readout]
542
  demo.load(randomize_sensors, None, sensor_outs).then(status_footer, foot_in, [footer])
543
+ # Show privacy notice if field logging is active (Space with HF_TOKEN)
544
+ demo.load(lambda: field_log.privacy_notice() if field_log.is_active() else "",
545
+ None, [privacy_line])
546
  roll_btn.click(randomize_sensors, None, sensor_outs).then(status_footer, foot_in, [footer])
547
  for c in (temp, humidity, bed_position):
548
  c.change(sync_readout, [temp, humidity, bed_position], [sensors_readout]).then(
core/field_log.py ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Field log — append-only interaction logging for the live Space.
2
+
3
+ Each BUILD appends one JSONL row to a local file; CommitScheduler pushes it
4
+ to a separate HF Dataset repo every N minutes. Gated on HF_TOKEN — if the
5
+ secret isn't set, nothing is written or pushed (local/offline unaffected).
6
+
7
+ Design per docs/RESEARCH-NEEDS.md "Capturing live Space interactions":
8
+ - Logs job config only (material, geometry, env, settings, risks, backend)
9
+ - Never logs PII or uploaded mesh files
10
+ - Rows are candidates, never auto-promoted into the curated ledger
11
+ - Privacy disclosure shown in UI when active
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import os
18
+ import threading
19
+ from datetime import datetime, timezone
20
+ from pathlib import Path
21
+ from typing import Any
22
+
23
+ FIELD_LOG_DIR = Path(__file__).resolve().parent.parent / "field_logs"
24
+ FIELD_LOG_FILE = FIELD_LOG_DIR / "interactions.jsonl"
25
+ FIELD_LOG_REPO = "build-small-hackathon/chief-engineer-field-log"
26
+ FLUSH_MINUTES = 5
27
+
28
+ _scheduler: Any = None
29
+ _lock = threading.Lock()
30
+
31
+
32
+ def _get_scheduler():
33
+ """Lazy-init the CommitScheduler. Returns None if HF_TOKEN is missing."""
34
+ global _scheduler
35
+ token = os.environ.get("HF_TOKEN", "").strip()
36
+ if not token:
37
+ return None
38
+ if _scheduler is None:
39
+ with _lock:
40
+ if _scheduler is None:
41
+ try:
42
+ from huggingface_hub import CommitScheduler
43
+ except ImportError:
44
+ return None
45
+ FIELD_LOG_DIR.mkdir(parents=True, exist_ok=True)
46
+ # Ensure the file exists so the scheduler has something to track
47
+ if not FIELD_LOG_FILE.exists():
48
+ FIELD_LOG_FILE.write_text("", encoding="utf-8")
49
+ _scheduler = CommitScheduler(
50
+ repo_id=FIELD_LOG_REPO,
51
+ repo_type="dataset",
52
+ folder_path=str(FIELD_LOG_DIR),
53
+ every=FLUSH_MINUTES,
54
+ token=token,
55
+ allow_patterns=["*.jsonl"],
56
+ )
57
+ return _scheduler
58
+
59
+
60
+ def is_active() -> bool:
61
+ """True if field logging is live (HF_TOKEN present + scheduler initialized)."""
62
+ return _get_scheduler() is not None
63
+
64
+
65
+ def log_build(job: dict, env: dict, settings: dict, advice: dict,
66
+ backend: str, used_fallback: bool) -> bool:
67
+ """Append one BUILD interaction row. Returns True if logged."""
68
+ sched = _get_scheduler()
69
+ if sched is None:
70
+ return False
71
+
72
+ row = {
73
+ "ts": datetime.now(timezone.utc).isoformat(),
74
+ "material": job.get("material"),
75
+ "geometry": job.get("geometry_type"),
76
+ "env_temp": env.get("temp"),
77
+ "env_humidity": env.get("humidity"),
78
+ "bed_position": job.get("bed_position"),
79
+ "printer": job.get("printer", "Creality Ender 3 V2"),
80
+ "backend": backend,
81
+ "used_fallback": used_fallback,
82
+ "settings": {
83
+ k: v for k, v in settings.items()
84
+ if k in ("nozzle_temp", "bed_temp", "retraction_mm", "fan_pct",
85
+ "first_layer_fan_pct", "print_speed")
86
+ },
87
+ "risks": advice.get("risks", []),
88
+ "inspector_verdict": None, # filled later if visitor runs Second Opinion
89
+ "simulated_outcome": None, # filled later if visitor clicks Simulate
90
+ }
91
+
92
+ with _lock:
93
+ with FIELD_LOG_FILE.open("a", encoding="utf-8") as f:
94
+ f.write(json.dumps(row, ensure_ascii=False) + "\n")
95
+
96
+ # Tell the scheduler we have new data (it normally scans on a timer,
97
+ # but this nudges it to notice the append).
98
+ try:
99
+ sched.trigger()
100
+ except Exception:
101
+ pass # trigger is best-effort; the timer will catch it
102
+
103
+ return True
104
+
105
+
106
+ def privacy_notice() -> str:
107
+ """One-line UI disclosure, shown only when logging is active."""
108
+ return (
109
+ "<div class='ce-sub' style='font-size:10px;opacity:0.6;margin-top:4px;'>"
110
+ "🔒 Job config logged to improve the model (no personal data, no uploaded files). "
111
+ f"<a href='https://huggingface.co/datasets/{FIELD_LOG_REPO}' target='_blank'>"
112
+ "View the field log →</a></div>"
113
+ )
data/lessons.jsonl ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"job_id":"seed-001","material":"PLA","geometry_type":"stringing","env_temp":22.0,"env_humidity":45.0,"outcome":"failed_stringing","lesson":"PLA strung at 215C in moderate humidity. Dropping nozzle to ~200C and nudging retraction up cleared it. With PLA, temperature is usually the bigger lever than retraction distance.","source":"seed","timestamp":"2026-05-20T10:00:00Z"}
2
+ {"job_id":"seed-002","material":"PLA","geometry_type":"stringing","env_temp":24.0,"env_humidity":70.0,"outcome":"failed_stringing","lesson":"High ambient humidity made PLA string even at a sane 205C. Settings tweaks did little; the real fix was drying the filament. Above ~60% humidity, suspect moisture before chasing retraction.","source":"seed","timestamp":"2026-05-20T10:05:00Z"}
3
+ {"job_id":"seed-003","material":"PLA","geometry_type":"overhang","env_temp":23.0,"env_humidity":40.0,"outcome":"success","lesson":"Steep PLA overhang printed clean with cooling fan at 100%. PLA likes maximum cooling on overhangs to freeze the layer before it droops.","source":"seed","timestamp":"2026-05-20T10:10:00Z"}
4
+ {"job_id":"seed-004","material":"PLA","geometry_type":"overhang","env_temp":28.0,"env_humidity":50.0,"outcome":"failed_sag","lesson":"PLA overhang sagged in a warm room even at full fan. Warm ambient air weakens part cooling; on hot days drop a few degrees and ensure unobstructed airflow, or add support past ~50 degrees of overhang.","source":"seed","timestamp":"2026-05-20T10:15:00Z"}
5
+ {"job_id":"seed-005","material":"PLA","geometry_type":"bridge","env_temp":22.0,"env_humidity":42.0,"outcome":"success","lesson":"Short PLA bridge under ~50mm printed flat with full cooling and slightly increased bridge flow. Max fan plus brisk bridge speed is the reliable combo for PLA spans.","source":"seed","timestamp":"2026-05-20T10:20:00Z"}
6
+ {"job_id":"seed-006","material":"PLA","geometry_type":"adhesion","env_temp":19.0,"env_humidity":38.0,"outcome":"failed_sag","lesson":"First layer wouldn't stick in a cold room. Bumping bed to ~60C, slowing the first layer, and turning the fan off for the opening layers fixed adhesion. Cold ambient hurts first-layer bonding most.","source":"seed","timestamp":"2026-05-20T10:25:00Z"}
7
+ {"job_id":"seed-007","material":"PETG","geometry_type":"stringing","env_temp":23.0,"env_humidity":48.0,"outcome":"failed_stringing","lesson":"PETG strung badly at 245C. Lowering to ~232C, raising travel speed, and enabling wipe-before-travel cleaned it up. PETG strings more than PLA by nature, so live at the low end of its temp range.","source":"seed","timestamp":"2026-05-20T10:30:00Z"}
8
+ {"job_id":"seed-008","material":"PETG","geometry_type":"stringing","env_temp":25.0,"env_humidity":65.0,"outcome":"failed_stringing","lesson":"PETG is hygroscopic and strung heavily in humid air despite good settings. Drying the spool was the only durable fix. Above ~60% humidity, dry PETG first and treat settings as secondary.","source":"seed","timestamp":"2026-05-20T10:35:00Z"}
9
+ {"job_id":"seed-009","material":"PETG","geometry_type":"overhang","env_temp":23.0,"env_humidity":45.0,"outcome":"failed_sag","lesson":"PETG overhang drooped when I ran the fan low for strength. PETG needs a cooling compromise: ~30-50% fan generally, bumped to 60-70% specifically over overhangs and bridges.","source":"seed","timestamp":"2026-05-20T10:40:00Z"}
10
+ {"job_id":"seed-010","material":"PETG","geometry_type":"adhesion","env_temp":22.0,"env_humidity":47.0,"outcome":"failed_sag","lesson":"PETG layers came out brittle with the fan too high. Dropping cooling to ~30% and raising temp 5C restored layer bonding. Over-cooling PETG causes delamination; it is the opposite of PLA.","source":"seed","timestamp":"2026-05-20T10:45:00Z"}
11
+ {"job_id":"seed-011","material":"PETG","geometry_type":"bridge","env_temp":24.0,"env_humidity":44.0,"outcome":"success","lesson":"PETG bridge held by temporarily raising fan to ~70% for the span only, then returning to 40%. Targeted cooling bursts beat globally high fan, which would weaken the rest of the part.","source":"seed","timestamp":"2026-05-20T10:50:00Z"}
12
+ {"job_id":"seed-012","material":"PETG","geometry_type":"stringing","env_temp":21.0,"env_humidity":40.0,"outcome":"success","lesson":"Clean PETG print at 230C with gentle retraction (moderate distance, ~40mm/s) in dry conditions. PETG stays molten longer than PLA, so gentle retraction plus fast travel beats aggressive retraction, which clogs.","source":"seed","timestamp":"2026-05-20T10:55:00Z"}
13
+ {"job_id":"ingest-001","material":"ABS","geometry_type":"warping","env_temp":20.0,"env_humidity":40.0,"outcome":"failed_sag","lesson":"ABS corners lifted in an open, cool room. ABS needs an enclosure and a 100-110C bed; without it, warping is near-certain regardless of settings.","source":"ingested","timestamp":"2026-05-22T09:00:00Z"}
14
+ {"job_id":"ingest-002","material":"ABS","geometry_type":"adhesion","env_temp":24.0,"env_humidity":45.0,"outcome":"success","lesson":"ABS first layer held with bed at 105C, brim, and fan off for opening layers. Draught control matters more than glue for ABS adhesion.","source":"ingested","timestamp":"2026-05-22T09:05:00Z"}
15
+ {"job_id":"ingest-003","material":"TPU","geometry_type":"stringing","env_temp":23.0,"env_humidity":55.0,"outcome":"failed_stringing","lesson":"TPU strung badly; it is highly hygroscopic. Dry the spool and print slow (~25mm/s) with minimal retraction — TPU clogs with aggressive retraction.","source":"ingested","timestamp":"2026-05-22T09:10:00Z"}
16
+ {"job_id":"ingest-001","material":"ABS","geometry_type":"warping","env_temp":20.0,"env_humidity":40.0,"outcome":"failed_sag","lesson":"ABS corners lifted in an open, cool room. ABS needs an enclosure and a 100-110C bed; without it, warping is near-certain regardless of settings.","source":"ingested","timestamp":"2026-05-22T09:00:00Z"}
17
+ {"job_id":"ingest-002","material":"ABS","geometry_type":"adhesion","env_temp":24.0,"env_humidity":45.0,"outcome":"success","lesson":"ABS first layer held with bed at 105C, brim, and fan off for opening layers. Draught control matters more than glue for ABS adhesion.","source":"ingested","timestamp":"2026-05-22T09:05:00Z"}
18
+ {"job_id":"ingest-003","material":"TPU","geometry_type":"stringing","env_temp":23.0,"env_humidity":55.0,"outcome":"failed_stringing","lesson":"TPU strung badly; it is highly hygroscopic. Dry the spool and print slow (~25mm/s) with minimal retraction — TPU clogs with aggressive retraction.","source":"ingested","timestamp":"2026-05-22T09:10:00Z"}
19
+ {"job_id":"ingest-004","material":"PETG","geometry_type":"stringing","env_temp":26.0,"env_humidity":65.0,"outcome":"failed_stringing","lesson":"PETG strings heavily in humid conditions. Dry filament at 65C for 4+ hours, then lower nozzle temp 5-10C and increase retraction to 5-6mm. Wet PETG is the #1 cause of stringing.","source":"ingested","timestamp":"2026-06-12T12:00:00Z"}
20
+ {"job_id":"ingest-005","material":"PETG","geometry_type":"bridge","env_temp":24.0,"env_humidity":44.0,"outcome":"success","lesson":"PETG bridges cleanly with fan at 80%, nozzle 240C, and retraction at 5mm. PETG likes more cooling than people think — just not on the first layer.","source":"ingested","timestamp":"2026-06-12T12:05:00Z"}
21
+ {"job_id":"ingest-006","material":"PLA","geometry_type":"overhang","env_temp":31.0,"env_humidity":40.0,"outcome":"failed_sag","lesson":"PLA overhangs sag in a hot room (31C ambient). Max fan (100%) and lower nozzle to 200C rescued the next print. PLA needs aggressive cooling when ambient is above 28C.","source":"ingested","timestamp":"2026-06-12T12:10:00Z"}
22
+ {"job_id":"ingest-007","material":"PLA","geometry_type":"vase","env_temp":21.0,"env_humidity":40.0,"outcome":"success","lesson":"PLA vase mode at 205C/60C bed with 100% fan produced a clean spiral. PLA is forgiving in cool, dry rooms — the baseline material for vase-mode prints.","source":"ingested","timestamp":"2026-06-12T12:15:00Z"}
23
+ {"job_id":"ingest-008","material":"ABS","geometry_type":"overhang","env_temp":25.0,"env_humidity":42.0,"outcome":"failed_sag","lesson":"ABS overhangs curled upward at 80% fan — ABS hates part cooling. Keep fan at 0-20% for ABS, rely on enclosure ambient temp instead. Fan on ABS causes layer delamination.","source":"ingested","timestamp":"2026-06-12T12:20:00Z"}
24
+ {"job_id":"ingest-009","material":"TPU","geometry_type":"stringing","env_temp":22.0,"env_humidity":35.0,"outcome":"success","lesson":"TPU printed clean with 3mm retraction at 25mm/s in a dry room. TPU's flexibility means retraction must be slow and short — fast retraction stretches the filament instead of pulling it back.","source":"ingested","timestamp":"2026-06-12T12:25:00Z"}
25
+ {"job_id":"ingest-010","material":"PETG","geometry_type":"adhesion","env_temp":22.0,"env_humidity":50.0,"outcome":"success","lesson":"PETG adhesion is strong on PEI at 80C bed — too strong on smooth PEI without release agent. Use textured PEI or glue stick as a release layer, not an adhesion aid, for PETG.","source":"ingested","timestamp":"2026-06-12T12:30:00Z"}
26
+ {"job_id": "octo-petg-stringy-240", "material": "PETG", "geometry_type": "stringing", "env_temp": 22.0, "env_humidity": 50.0, "outcome": "failed_stringing", "lesson": "My own PETG print at 240C nozzle came out very stringy on a retraction-heavy part. PETG strings when the nozzle runs hot or the spool is damp - dry the spool, drop ~10C, and increase retraction.", "source": "ingested", "timestamp": "2024-05-20T20:57:00+00:00"}
dist/README.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ task_categories: [tabular-regression]
4
+ tags: [3d-printing, additive-manufacturing, agent-trace, build-small-hackathon]
5
+ ---
6
+
7
+ # Chief Engineer — Lesson Ledger
8
+
9
+ Environment-keyed 3D-printing lessons accumulated by **The Chief Engineer**, a small local
10
+ Gemma agent built for the HF Build Small hackathon (Backyard AI). Each row is a durable lesson
11
+ keyed to material, geometry, and ambient conditions — `seed` rows bootstrap the corpus,
12
+ `earned` rows are written by the agent after a human-reported print outcome.
13
+
14
+ Schema: `job_id, material, geometry_type, env_temp, env_humidity, outcome, lesson, source, timestamp`.
dist/chief_engineer_ledger.jsonl ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"job_id":"seed-001","material":"PLA","geometry_type":"stringing","env_temp":22.0,"env_humidity":45.0,"outcome":"failed_stringing","lesson":"PLA strung at 215C in moderate humidity. Dropping nozzle to ~200C and nudging retraction up cleared it. With PLA, temperature is usually the bigger lever than retraction distance.","source":"seed","timestamp":"2026-05-20T10:00:00Z"}
2
+ {"job_id":"seed-002","material":"PLA","geometry_type":"stringing","env_temp":24.0,"env_humidity":70.0,"outcome":"failed_stringing","lesson":"High ambient humidity made PLA string even at a sane 205C. Settings tweaks did little; the real fix was drying the filament. Above ~60% humidity, suspect moisture before chasing retraction.","source":"seed","timestamp":"2026-05-20T10:05:00Z"}
3
+ {"job_id":"seed-003","material":"PLA","geometry_type":"overhang","env_temp":23.0,"env_humidity":40.0,"outcome":"success","lesson":"Steep PLA overhang printed clean with cooling fan at 100%. PLA likes maximum cooling on overhangs to freeze the layer before it droops.","source":"seed","timestamp":"2026-05-20T10:10:00Z"}
4
+ {"job_id":"seed-004","material":"PLA","geometry_type":"overhang","env_temp":28.0,"env_humidity":50.0,"outcome":"failed_sag","lesson":"PLA overhang sagged in a warm room even at full fan. Warm ambient air weakens part cooling; on hot days drop a few degrees and ensure unobstructed airflow, or add support past ~50 degrees of overhang.","source":"seed","timestamp":"2026-05-20T10:15:00Z"}
5
+ {"job_id":"seed-005","material":"PLA","geometry_type":"bridge","env_temp":22.0,"env_humidity":42.0,"outcome":"success","lesson":"Short PLA bridge under ~50mm printed flat with full cooling and slightly increased bridge flow. Max fan plus brisk bridge speed is the reliable combo for PLA spans.","source":"seed","timestamp":"2026-05-20T10:20:00Z"}
6
+ {"job_id":"seed-006","material":"PLA","geometry_type":"adhesion","env_temp":19.0,"env_humidity":38.0,"outcome":"failed_sag","lesson":"First layer wouldn't stick in a cold room. Bumping bed to ~60C, slowing the first layer, and turning the fan off for the opening layers fixed adhesion. Cold ambient hurts first-layer bonding most.","source":"seed","timestamp":"2026-05-20T10:25:00Z"}
7
+ {"job_id":"seed-007","material":"PETG","geometry_type":"stringing","env_temp":23.0,"env_humidity":48.0,"outcome":"failed_stringing","lesson":"PETG strung badly at 245C. Lowering to ~232C, raising travel speed, and enabling wipe-before-travel cleaned it up. PETG strings more than PLA by nature, so live at the low end of its temp range.","source":"seed","timestamp":"2026-05-20T10:30:00Z"}
8
+ {"job_id":"seed-008","material":"PETG","geometry_type":"stringing","env_temp":25.0,"env_humidity":65.0,"outcome":"failed_stringing","lesson":"PETG is hygroscopic and strung heavily in humid air despite good settings. Drying the spool was the only durable fix. Above ~60% humidity, dry PETG first and treat settings as secondary.","source":"seed","timestamp":"2026-05-20T10:35:00Z"}
9
+ {"job_id":"seed-009","material":"PETG","geometry_type":"overhang","env_temp":23.0,"env_humidity":45.0,"outcome":"failed_sag","lesson":"PETG overhang drooped when I ran the fan low for strength. PETG needs a cooling compromise: ~30-50% fan generally, bumped to 60-70% specifically over overhangs and bridges.","source":"seed","timestamp":"2026-05-20T10:40:00Z"}
10
+ {"job_id":"seed-010","material":"PETG","geometry_type":"adhesion","env_temp":22.0,"env_humidity":47.0,"outcome":"failed_sag","lesson":"PETG layers came out brittle with the fan too high. Dropping cooling to ~30% and raising temp 5C restored layer bonding. Over-cooling PETG causes delamination; it is the opposite of PLA.","source":"seed","timestamp":"2026-05-20T10:45:00Z"}
11
+ {"job_id":"seed-011","material":"PETG","geometry_type":"bridge","env_temp":24.0,"env_humidity":44.0,"outcome":"success","lesson":"PETG bridge held by temporarily raising fan to ~70% for the span only, then returning to 40%. Targeted cooling bursts beat globally high fan, which would weaken the rest of the part.","source":"seed","timestamp":"2026-05-20T10:50:00Z"}
12
+ {"job_id":"seed-012","material":"PETG","geometry_type":"stringing","env_temp":21.0,"env_humidity":40.0,"outcome":"success","lesson":"Clean PETG print at 230C with gentle retraction (moderate distance, ~40mm/s) in dry conditions. PETG stays molten longer than PLA, so gentle retraction plus fast travel beats aggressive retraction, which clogs.","source":"seed","timestamp":"2026-05-20T10:55:00Z"}
13
+ {"job_id":"ingest-001","material":"ABS","geometry_type":"warping","env_temp":20.0,"env_humidity":40.0,"outcome":"failed_sag","lesson":"ABS corners lifted in an open, cool room. ABS needs an enclosure and a 100-110C bed; without it, warping is near-certain regardless of settings.","source":"ingested","timestamp":"2026-05-22T09:00:00Z"}
14
+ {"job_id":"ingest-002","material":"ABS","geometry_type":"adhesion","env_temp":24.0,"env_humidity":45.0,"outcome":"success","lesson":"ABS first layer held with bed at 105C, brim, and fan off for opening layers. Draught control matters more than glue for ABS adhesion.","source":"ingested","timestamp":"2026-05-22T09:05:00Z"}
15
+ {"job_id":"ingest-003","material":"TPU","geometry_type":"stringing","env_temp":23.0,"env_humidity":55.0,"outcome":"failed_stringing","lesson":"TPU strung badly; it is highly hygroscopic. Dry the spool and print slow (~25mm/s) with minimal retraction — TPU clogs with aggressive retraction.","source":"ingested","timestamp":"2026-05-22T09:10:00Z"}
16
+ {"job_id":"ingest-001","material":"ABS","geometry_type":"warping","env_temp":20.0,"env_humidity":40.0,"outcome":"failed_sag","lesson":"ABS corners lifted in an open, cool room. ABS needs an enclosure and a 100-110C bed; without it, warping is near-certain regardless of settings.","source":"ingested","timestamp":"2026-05-22T09:00:00Z"}
17
+ {"job_id":"ingest-002","material":"ABS","geometry_type":"adhesion","env_temp":24.0,"env_humidity":45.0,"outcome":"success","lesson":"ABS first layer held with bed at 105C, brim, and fan off for opening layers. Draught control matters more than glue for ABS adhesion.","source":"ingested","timestamp":"2026-05-22T09:05:00Z"}
18
+ {"job_id":"ingest-003","material":"TPU","geometry_type":"stringing","env_temp":23.0,"env_humidity":55.0,"outcome":"failed_stringing","lesson":"TPU strung badly; it is highly hygroscopic. Dry the spool and print slow (~25mm/s) with minimal retraction — TPU clogs with aggressive retraction.","source":"ingested","timestamp":"2026-05-22T09:10:00Z"}
19
+ {"job_id":"ingest-004","material":"PETG","geometry_type":"stringing","env_temp":26.0,"env_humidity":65.0,"outcome":"failed_stringing","lesson":"PETG strings heavily in humid conditions. Dry filament at 65C for 4+ hours, then lower nozzle temp 5-10C and increase retraction to 5-6mm. Wet PETG is the #1 cause of stringing.","source":"ingested","timestamp":"2026-06-12T12:00:00Z"}
20
+ {"job_id":"ingest-005","material":"PETG","geometry_type":"bridge","env_temp":24.0,"env_humidity":44.0,"outcome":"success","lesson":"PETG bridges cleanly with fan at 80%, nozzle 240C, and retraction at 5mm. PETG likes more cooling than people think — just not on the first layer.","source":"ingested","timestamp":"2026-06-12T12:05:00Z"}
21
+ {"job_id":"ingest-006","material":"PLA","geometry_type":"overhang","env_temp":31.0,"env_humidity":40.0,"outcome":"failed_sag","lesson":"PLA overhangs sag in a hot room (31C ambient). Max fan (100%) and lower nozzle to 200C rescued the next print. PLA needs aggressive cooling when ambient is above 28C.","source":"ingested","timestamp":"2026-06-12T12:10:00Z"}
22
+ {"job_id":"ingest-007","material":"PLA","geometry_type":"vase","env_temp":21.0,"env_humidity":40.0,"outcome":"success","lesson":"PLA vase mode at 205C/60C bed with 100% fan produced a clean spiral. PLA is forgiving in cool, dry rooms — the baseline material for vase-mode prints.","source":"ingested","timestamp":"2026-06-12T12:15:00Z"}
23
+ {"job_id":"ingest-008","material":"ABS","geometry_type":"overhang","env_temp":25.0,"env_humidity":42.0,"outcome":"failed_sag","lesson":"ABS overhangs curled upward at 80% fan — ABS hates part cooling. Keep fan at 0-20% for ABS, rely on enclosure ambient temp instead. Fan on ABS causes layer delamination.","source":"ingested","timestamp":"2026-06-12T12:20:00Z"}
24
+ {"job_id":"ingest-009","material":"TPU","geometry_type":"stringing","env_temp":22.0,"env_humidity":35.0,"outcome":"success","lesson":"TPU printed clean with 3mm retraction at 25mm/s in a dry room. TPU's flexibility means retraction must be slow and short — fast retraction stretches the filament instead of pulling it back.","source":"ingested","timestamp":"2026-06-12T12:25:00Z"}
25
+ {"job_id":"ingest-010","material":"PETG","geometry_type":"adhesion","env_temp":22.0,"env_humidity":50.0,"outcome":"success","lesson":"PETG adhesion is strong on PEI at 80C bed — too strong on smooth PEI without release agent. Use textured PEI or glue stick as a release layer, not an adhesion aid, for PETG.","source":"ingested","timestamp":"2026-06-12T12:30:00Z"}
26
+ {"job_id":"octo-petg-stringy-240","material":"PETG","geometry_type":"stringing","env_temp":22.0,"env_humidity":50.0,"outcome":"failed_stringing","lesson":"My own PETG print at 240C nozzle came out very stringy on a retraction-heavy part. PETG strings when the nozzle runs hot or the spool is damp - dry the spool, drop ~10C, and increase retraction.","source":"ingested","timestamp":"2024-05-20T20:57:00+00:00"}
27
+ {"job_id":"sim-035004454637","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.39) with nozzle 235°C, fan 40%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.454661+00:00"}
28
+ {"job_id":"sim-035004458175","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.47) with nozzle 232°C, fan 52%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.458194+00:00"}
29
+ {"job_id":"sim-035004458709","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.53) with nozzle 229°C, fan 64%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.458722+00:00"}
30
+ {"job_id":"sim-035004459140","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.54) with nozzle 226°C, fan 76%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.459152+00:00"}
31
+ {"job_id":"sim-035004459597","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.55) with nozzle 223°C, fan 88%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.459609+00:00"}
32
+ {"job_id":"sim-035004459987","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.56) with nozzle 220°C, fan 100%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.459999+00:00"}
33
+ {"job_id":"sim-035004461203","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.68) with nozzle 225°C, fan 100%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.461215+00:00"}
34
+ {"job_id":"sim-035004461453","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.61) with nozzle 222°C, fan 100%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.461461+00:00"}
35
+ {"job_id":"sim-035004462543","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"success","lesson":"[sim] PETG bridge at 32°C/52% RH printed clean (q=0.73) with nozzle 227°C, fan 100%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.462561+00:00"}
36
+ {"job_id":"sim-035004462854","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"success","lesson":"[sim] PETG bridge at 32°C/52% RH printed clean (q=0.73) with nozzle 227°C, fan 100%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.462864+00:00"}
37
+ {"job_id":"sim-035004463172","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"success","lesson":"[sim] PETG bridge at 32°C/52% RH printed clean (q=0.73) with nozzle 227°C, fan 100%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.463184+00:00"}
38
+ {"job_id":"sim-035004463498","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"success","lesson":"[sim] PETG bridge at 32°C/52% RH printed clean (q=0.73) with nozzle 227°C, fan 100%, retraction 4.0mm.","source":"sim","timestamp":"2026-06-13T03:50:04.463507+00:00"}
39
+ {"job_id":"sim-035039090556","material":"PETG","geometry_type":"bridge","env_temp":32.0,"env_humidity":52.0,"outcome":"failed_sag","lesson":"[sim] PETG bridge at 32°C/52% RH sagged (q=0.39) with nozzle 245°C, fan 40%, retraction 5.0mm.","source":"sim","timestamp":"2026-06-13T03:50:39.090586+00:00"}