asdfasdfqrqwer commited on
Commit
62291cd
·
1 Parent(s): 7e44a97

Add first-person folding evidence preview

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip 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
 
 
33
  *.zip 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
+ *.png filter=lfs diff=lfs merge=lfs -text
assets/evidence-fold-towel-v1.png ADDED

Git LFS Details

  • SHA256: c8cb657b97ec8e88c2e685ae46a4d4c2d86916ad0aaedc2166fd58271c7d6861
  • Pointer size: 132 Bytes
  • Size of remote file: 1.34 MB
index.html CHANGED
@@ -119,6 +119,14 @@
119
  align-items: end;
120
  box-shadow: inset 0 0 0 1px rgba(183,242,255,.08), inset 0 -70px 80px rgba(24,78,91,.14);
121
  }
 
 
 
 
 
 
 
 
122
  .evidence-window::before {
123
  content: "";
124
  position: absolute;
@@ -130,12 +138,16 @@
130
  right: -82px;
131
  box-shadow: 0 0 0 34px rgba(83,217,245,.025), 0 0 0 68px rgba(83,217,245,.018);
132
  }
133
- .scene-glyph { position: absolute; inset: 0; }
134
- .surface-line { position: relative; z-index: 2; font: 400 clamp(23px, 2.3vw, 38px)/1.05 var(--serif); max-width: 90%; }
 
 
 
135
  .surface-line span { transition: color .35s, background .35s; }
136
  .surface-line .hot { color: var(--signal-soft); }
137
- .framecode { position: absolute; top: 14px; left: 16px; color: rgba(183,242,255,.45); font-size: 9px; letter-spacing: .12em; }
138
- .scope-line { position: absolute; bottom: 0; left: 0; height: 2px; width: 100%; background: rgba(183,242,255,.1); }
 
139
  .scope-line::after { content: ""; display: block; height: 100%; width: var(--progress, 0%); background: var(--signal); box-shadow: 0 0 12px rgba(83,217,245,.48); transition: width 1.1s cubic-bezier(.22,.8,.3,1); }
140
  .evidence-meta { margin-top: auto; padding-top: 20px; display: grid; gap: 9px; font-size: 10px; }
141
  .meta-row { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 8px; }
@@ -286,7 +298,7 @@
286
  <header class="shell topbar">
287
  <div class="mark"><span class="mark-glyph">U</span><span>UniversalLabeler</span></div>
288
  <div class="top-center">Loss-resistant annotation translation</div>
289
- <div class="top-right"><span class="status-dot" aria-hidden="true"></span><span>v1.0.3 / Public spec</span></div>
290
  </header>
291
 
292
  <main>
@@ -300,7 +312,9 @@
300
  <section class="panel source-panel" aria-label="Source evidence">
301
  <div class="panel-label"><span>01 / Observe</span><span id="source-locale">EN source</span></div>
302
  <div class="evidence-window">
 
303
  <div class="framecode" id="framecode">FRAME 01:00:01.000—01:00:08.000</div>
 
304
  <svg class="scene-glyph" viewBox="0 0 420 260" aria-hidden="true">
305
  <g fill="none" stroke="rgba(183,242,255,.24)" stroke-width="1.4">
306
  <path d="M38 190H382M94 190v42M330 190v42"/>
@@ -391,7 +405,7 @@
391
  <footer>
392
  <div class="footer-inner">
393
  <div class="footer-title">Meaning,<br>packed.</div>
394
- <div class="footer-meta">UNIVERSAL LABELER / RELEASE 1.0.3<br>5 HUMAN LANGUAGES · 22 WORLD DIMENSIONS<br><a href="https://huggingface.co/datasets/itspublu/UniversalLabeler">VIEW DATA + SCHEMAS ↗</a></div>
395
  </div>
396
  </footer>
397
 
@@ -399,24 +413,28 @@
399
  const scenes = [
400
  {
401
  name: "fold_towel", source: "Fold the towel on the table with both hands.", hot: "towel",
 
402
  environment: "indoor · laundry area", duration: "7.00 s · episode_clock", claims: 10,
403
  values: { action: "fold", agent: "human performer", roles: "left stabilizes · right acts", object: "towel_01 · patient", place: "table · laundry area", before: "unfolded · dry", after: "folded · dry", time: "1.00—8.00 s", outcome: "success", evidence: "RGB · hand pose · narration" },
404
  text: { en: "Fold the towel on the table with both hands.", zh: "用双手在桌上把毛巾叠好。", tl: "Tiklupin ang tuwalya sa mesa gamit ang dalawang kamay.", es: "Dobla la toalla sobre la mesa con ambas manos.", hi: "दोनों हाथों से मेज़ पर तौलिया मोड़ें।" }
405
  },
406
  {
407
  name: "open_jar", source: "Hold the jar with the left hand and unscrew the lid with the right.", hot: "unscrew",
 
408
  environment: "indoor · kitchen counter", duration: "4.20 s · episode_clock", claims: 11,
409
  values: { action: "unscrew", agent: "human performer", roles: "left stabilizes · right rotates", object: "lid_01 · patient", place: "jar · kitchen counter", before: "jar sealed", after: "jar open", time: "12.30—16.50 s", outcome: "success", evidence: "RGB · hand pose · object track" },
410
  text: { en: "Hold the jar with the left hand and unscrew the lid with the right.", zh: "左手扶稳罐子,右手拧开盖子。", tl: "Hawakan ang garapon sa kaliwang kamay at pihitin ang takip gamit ang kanan.", es: "Sujeta el frasco con la izquierda y desenrosca la tapa con la derecha.", hi: "बाएँ हाथ से जार को थामें और दाएँ हाथ से ढक्कन खोलें।" }
411
  },
412
  {
413
  name: "place_mug", source: "Place the blue mug upright on the upper shelf using the right hand.", hot: "upper shelf",
 
414
  environment: "indoor · storage cabinet", duration: "2.80 s · episode_clock", claims: 10,
415
  values: { action: "place", agent: "human performer", roles: "right acts · left idle", object: "blue_mug_01 · patient", place: "upper_shelf · destination", before: "held · tilted", after: "supported · upright", time: "21.10—23.90 s", outcome: "stable placement", evidence: "RGB · depth · object pose" },
416
  text: { en: "Place the blue mug upright on the upper shelf using the right hand.", zh: "用右手把蓝色杯子直立放到上层架子上。", tl: "Ilagay nang patayo ang asul na tasa sa itaas na estante gamit ang kanang kamay.", es: "Coloca la taza azul en posición vertical sobre el estante superior con la mano derecha.", hi: "दाएँ हाथ से नीले मग को ऊपरी शेल्फ़ पर सीधा रखें।" }
417
  },
418
  {
419
  name: "slice_tomato", source: "Stabilize the tomato with the left hand and slice it with the knife.", hot: "knife",
 
420
  environment: "indoor · food prep station", duration: "5.60 s · episode_clock", claims: 12,
421
  values: { action: "slice", agent: "human performer", roles: "left stabilizes · right cuts", object: "tomato_01 · patient", place: "cutting_board · support", before: "whole tomato", after: "separated slices", time: "31.00—36.60 s", outcome: "cut completed", evidence: "RGB · contact · temporal span" },
422
  text: { en: "Stabilize the tomato with the left hand and slice it with the knife.", zh: "左手扶稳番茄,用刀将它切片。", tl: "Hawakan nang matatag ang kamatis sa kaliwang kamay at hiwain ito gamit ang kutsilyo.", es: "Sujeta el tomate con la mano izquierda y córtalo en rodajas con el cuchillo.", hi: "बाएँ हाथ से टमाटर को स्थिर रखें और चाकू से उसके टुकड़े काटें।" }
@@ -488,6 +506,18 @@
488
  document.querySelector("#environment").textContent = scene.environment;
489
  document.querySelector("#time-scope").textContent = scene.duration;
490
  document.querySelector("#framecode").textContent = `EVENT / ${scene.name.toUpperCase()}`;
 
 
 
 
 
 
 
 
 
 
 
 
491
  document.querySelector("#claim-count").textContent = scene.claims;
492
  document.querySelector(".core-count").textContent = `${scene.claims} / ${scene.claims} claims`;
493
  document.querySelector("#represented").textContent = `${scene.claims} / ${scene.claims}`;
 
119
  align-items: end;
120
  box-shadow: inset 0 0 0 1px rgba(183,242,255,.08), inset 0 -70px 80px rgba(24,78,91,.14);
121
  }
122
+ .evidence-window::after {
123
+ content: "";
124
+ position: absolute;
125
+ inset: 0;
126
+ z-index: 1;
127
+ pointer-events: none;
128
+ background: linear-gradient(180deg, rgba(2,8,11,.08) 24%, rgba(2,8,11,.3) 57%, rgba(2,8,11,.94) 100%);
129
+ }
130
  .evidence-window::before {
131
  content: "";
132
  position: absolute;
 
138
  right: -82px;
139
  box-shadow: 0 0 0 34px rgba(83,217,245,.025), 0 0 0 68px rgba(83,217,245,.018);
140
  }
141
+ .evidence-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 48%; filter: saturate(.76) brightness(.76) contrast(1.08); opacity: .9; }
142
+ .evidence-preview[hidden] { display: none; }
143
+ .scene-glyph { position: absolute; inset: 0; z-index: 2; opacity: .16; transition: opacity .25s; }
144
+ .evidence-window:not(.has-preview) .scene-glyph { opacity: .78; }
145
+ .surface-line { position: relative; z-index: 3; font: 400 clamp(21px, 2vw, 32px)/1.06 var(--serif); max-width: 92%; text-shadow: 0 2px 18px #02080b; }
146
  .surface-line span { transition: color .35s, background .35s; }
147
  .surface-line .hot { color: var(--signal-soft); }
148
+ .framecode { position: absolute; z-index: 3; top: 14px; left: 16px; color: rgba(183,242,255,.74); font-size: 9px; letter-spacing: .12em; text-shadow: 0 1px 8px #02080b; }
149
+ .preview-kind { position: absolute; z-index: 3; top: 14px; right: 16px; color: rgba(183,242,255,.64); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; text-shadow: 0 1px 8px #02080b; }
150
+ .scope-line { position: absolute; z-index: 4; bottom: 0; left: 0; height: 2px; width: 100%; background: rgba(183,242,255,.1); }
151
  .scope-line::after { content: ""; display: block; height: 100%; width: var(--progress, 0%); background: var(--signal); box-shadow: 0 0 12px rgba(83,217,245,.48); transition: width 1.1s cubic-bezier(.22,.8,.3,1); }
152
  .evidence-meta { margin-top: auto; padding-top: 20px; display: grid; gap: 9px; font-size: 10px; }
153
  .meta-row { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 8px; }
 
298
  <header class="shell topbar">
299
  <div class="mark"><span class="mark-glyph">U</span><span>UniversalLabeler</span></div>
300
  <div class="top-center">Loss-resistant annotation translation</div>
301
+ <div class="top-right"><span class="status-dot" aria-hidden="true"></span><span>v1.0.4 / Public spec</span></div>
302
  </header>
303
 
304
  <main>
 
312
  <section class="panel source-panel" aria-label="Source evidence">
313
  <div class="panel-label"><span>01 / Observe</span><span id="source-locale">EN source</span></div>
314
  <div class="evidence-window">
315
+ <img class="evidence-preview" id="evidence-preview" src="../assets/evidence-fold-towel-v1.png" alt="Synthetic first-person preview of two hands folding a pale blue towel on a dark table">
316
  <div class="framecode" id="framecode">FRAME 01:00:01.000—01:00:08.000</div>
317
+ <div class="preview-kind" id="preview-kind">synthetic visual preview</div>
318
  <svg class="scene-glyph" viewBox="0 0 420 260" aria-hidden="true">
319
  <g fill="none" stroke="rgba(183,242,255,.24)" stroke-width="1.4">
320
  <path d="M38 190H382M94 190v42M330 190v42"/>
 
405
  <footer>
406
  <div class="footer-inner">
407
  <div class="footer-title">Meaning,<br>packed.</div>
408
+ <div class="footer-meta">UNIVERSAL LABELER / RELEASE 1.0.4<br>5 HUMAN LANGUAGES · 22 WORLD DIMENSIONS<br><a href="https://huggingface.co/datasets/itspublu/UniversalLabeler">VIEW DATA + SCHEMAS ↗</a></div>
409
  </div>
410
  </footer>
411
 
 
413
  const scenes = [
414
  {
415
  name: "fold_towel", source: "Fold the towel on the table with both hands.", hot: "towel",
416
+ preview: "../assets/evidence-fold-towel-v1.png",
417
  environment: "indoor · laundry area", duration: "7.00 s · episode_clock", claims: 10,
418
  values: { action: "fold", agent: "human performer", roles: "left stabilizes · right acts", object: "towel_01 · patient", place: "table · laundry area", before: "unfolded · dry", after: "folded · dry", time: "1.00—8.00 s", outcome: "success", evidence: "RGB · hand pose · narration" },
419
  text: { en: "Fold the towel on the table with both hands.", zh: "用双手在桌上把毛巾叠好。", tl: "Tiklupin ang tuwalya sa mesa gamit ang dalawang kamay.", es: "Dobla la toalla sobre la mesa con ambas manos.", hi: "दोनों हाथों से मेज़ पर तौलिया मोड़ें।" }
420
  },
421
  {
422
  name: "open_jar", source: "Hold the jar with the left hand and unscrew the lid with the right.", hot: "unscrew",
423
+ preview: null,
424
  environment: "indoor · kitchen counter", duration: "4.20 s · episode_clock", claims: 11,
425
  values: { action: "unscrew", agent: "human performer", roles: "left stabilizes · right rotates", object: "lid_01 · patient", place: "jar · kitchen counter", before: "jar sealed", after: "jar open", time: "12.30—16.50 s", outcome: "success", evidence: "RGB · hand pose · object track" },
426
  text: { en: "Hold the jar with the left hand and unscrew the lid with the right.", zh: "左手扶稳罐子,右手拧开盖子。", tl: "Hawakan ang garapon sa kaliwang kamay at pihitin ang takip gamit ang kanan.", es: "Sujeta el frasco con la izquierda y desenrosca la tapa con la derecha.", hi: "बाएँ हाथ से जार को थामें और दाएँ हाथ से ढक्कन खोलें।" }
427
  },
428
  {
429
  name: "place_mug", source: "Place the blue mug upright on the upper shelf using the right hand.", hot: "upper shelf",
430
+ preview: null,
431
  environment: "indoor · storage cabinet", duration: "2.80 s · episode_clock", claims: 10,
432
  values: { action: "place", agent: "human performer", roles: "right acts · left idle", object: "blue_mug_01 · patient", place: "upper_shelf · destination", before: "held · tilted", after: "supported · upright", time: "21.10—23.90 s", outcome: "stable placement", evidence: "RGB · depth · object pose" },
433
  text: { en: "Place the blue mug upright on the upper shelf using the right hand.", zh: "用右手把蓝色杯子直立放到上层架子上。", tl: "Ilagay nang patayo ang asul na tasa sa itaas na estante gamit ang kanang kamay.", es: "Coloca la taza azul en posición vertical sobre el estante superior con la mano derecha.", hi: "दाएँ हाथ से नीले मग को ऊपरी शेल्फ़ पर सीधा रखें।" }
434
  },
435
  {
436
  name: "slice_tomato", source: "Stabilize the tomato with the left hand and slice it with the knife.", hot: "knife",
437
+ preview: null,
438
  environment: "indoor · food prep station", duration: "5.60 s · episode_clock", claims: 12,
439
  values: { action: "slice", agent: "human performer", roles: "left stabilizes · right cuts", object: "tomato_01 · patient", place: "cutting_board · support", before: "whole tomato", after: "separated slices", time: "31.00—36.60 s", outcome: "cut completed", evidence: "RGB · contact · temporal span" },
440
  text: { en: "Stabilize the tomato with the left hand and slice it with the knife.", zh: "左手扶稳番茄,用刀将它切片。", tl: "Hawakan nang matatag ang kamatis sa kaliwang kamay at hiwain ito gamit ang kutsilyo.", es: "Sujeta el tomate con la mano izquierda y córtalo en rodajas con el cuchillo.", hi: "बाएँ हाथ से टमाटर को स्थिर रखें और चाकू से उसके टुकड़े काटें।" }
 
506
  document.querySelector("#environment").textContent = scene.environment;
507
  document.querySelector("#time-scope").textContent = scene.duration;
508
  document.querySelector("#framecode").textContent = `EVENT / ${scene.name.toUpperCase()}`;
509
+ const preview = document.querySelector("#evidence-preview");
510
+ const previewWindow = document.querySelector(".evidence-window");
511
+ if (scene.preview) {
512
+ preview.src = scene.preview;
513
+ preview.hidden = false;
514
+ previewWindow.classList.add("has-preview");
515
+ document.querySelector("#preview-kind").textContent = "synthetic visual preview";
516
+ } else {
517
+ preview.hidden = true;
518
+ previewWindow.classList.remove("has-preview");
519
+ document.querySelector("#preview-kind").textContent = "semantic schematic";
520
+ }
521
  document.querySelector("#claim-count").textContent = scene.claims;
522
  document.querySelector(".core-count").textContent = `${scene.claims} / ${scene.claims} claims`;
523
  document.querySelector("#represented").textContent = `${scene.claims} / ${scene.claims}`;