@vib3code/sdk 2.0.1 → 2.0.3-canary.0a63e71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/DOCS/AGENT_HARNESS_ARCHITECTURE.md +245 -0
  3. package/DOCS/ANDROID_DEPLOYMENT.md +59 -0
  4. package/DOCS/ARCHITECTURE.md +1 -0
  5. package/DOCS/CI_TESTING.md +2 -0
  6. package/DOCS/CLI_ONBOARDING.md +3 -1
  7. package/DOCS/CONTROL_REFERENCE.md +2 -0
  8. package/DOCS/CROSS_SITE_DESIGN_PATTERNS.md +119 -0
  9. package/DOCS/ENV_SETUP.md +2 -0
  10. package/DOCS/EPIC_SCROLL_EVENTS.md +775 -0
  11. package/DOCS/EXPANSION_DESIGN.md +979 -0
  12. package/DOCS/EXPANSION_DESIGN_ULTRA.md +389 -0
  13. package/DOCS/EXPORT_FORMATS.md +2 -0
  14. package/DOCS/GPU_DISPOSAL_GUIDE.md +2 -0
  15. package/DOCS/HANDOFF_LANDING_PAGE.md +156 -0
  16. package/DOCS/HANDOFF_SDK_DEVELOPMENT.md +495 -0
  17. package/DOCS/LICENSING_TIERS.md +2 -0
  18. package/DOCS/MASTER_PLAN_2026-01-31.md +4 -2
  19. package/DOCS/MULTIVIZ_CHOREOGRAPHY_PATTERNS.md +939 -0
  20. package/DOCS/OBS_SETUP_GUIDE.md +2 -0
  21. package/DOCS/OPTIMIZATION_PLAN_MATH.md +119 -0
  22. package/DOCS/PRODUCT_STRATEGY.md +65 -0
  23. package/DOCS/PROJECT_SETUP.md +2 -0
  24. package/DOCS/README.md +105 -0
  25. package/DOCS/REFERENCE_SCROLL_ANALYSIS.md +99 -0
  26. package/DOCS/RENDERER_LIFECYCLE.md +2 -0
  27. package/DOCS/REPO_MANIFEST.md +2 -0
  28. package/DOCS/ROADMAP.md +113 -0
  29. package/DOCS/SCROLL_TIMELINE_v3.md +271 -0
  30. package/DOCS/SITE_REFACTOR_PLAN.md +102 -0
  31. package/DOCS/STATUS.md +26 -0
  32. package/DOCS/SYSTEM_INVENTORY.md +37 -32
  33. package/DOCS/TELEMETRY_EXPORTS.md +2 -0
  34. package/DOCS/VISUAL_ANALYSIS_CLICKERSS.md +87 -0
  35. package/DOCS/VISUAL_ANALYSIS_FACETAD.md +135 -0
  36. package/DOCS/VISUAL_ANALYSIS_SIMONE.md +97 -0
  37. package/DOCS/VISUAL_ANALYSIS_TABLESIDE.md +88 -0
  38. package/DOCS/WEBGPU_STATUS.md +121 -38
  39. package/DOCS/XR_BENCHMARKS.md +2 -0
  40. package/DOCS/archive/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +1 -0
  41. package/DOCS/archive/DEV_TRACK_ANALYSIS.md +1 -0
  42. package/DOCS/archive/DEV_TRACK_PLAN_2026-01-07.md +1 -0
  43. package/DOCS/archive/SESSION_014_PLAN.md +1 -0
  44. package/DOCS/archive/SESSION_LOG_2026-01-07.md +1 -0
  45. package/DOCS/archive/STRATEGIC_BLUEPRINT_2026-01-07.md +1 -0
  46. package/DOCS/archive/SYSTEM_AUDIT_2026-01-30.md +1 -0
  47. package/DOCS/archive/WEBGPU_STATUS_2026-02-15_STALE.md +1 -0
  48. package/DOCS/{DEV_TRACK_SESSION_2026-01-31.md → dev-tracks/DEV_TRACK_SESSION_2026-01-31.md} +3 -1
  49. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-06.md +233 -0
  50. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-13.md +129 -0
  51. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md +144 -0
  52. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-16.md +110 -0
  53. package/DOCS/dev-tracks/PERF_UPGRADE_2026-02-16.md +310 -0
  54. package/DOCS/dev-tracks/README.md +12 -0
  55. package/README.md +26 -13
  56. package/cpp/CMakeLists.txt +236 -0
  57. package/cpp/bindings/embind.cpp +269 -0
  58. package/cpp/build.sh +129 -0
  59. package/cpp/geometry/Crystal.cpp +103 -0
  60. package/cpp/geometry/Fractal.cpp +136 -0
  61. package/cpp/geometry/GeometryGenerator.cpp +262 -0
  62. package/cpp/geometry/KleinBottle.cpp +71 -0
  63. package/cpp/geometry/Sphere.cpp +134 -0
  64. package/cpp/geometry/Tesseract.cpp +94 -0
  65. package/cpp/geometry/Tetrahedron.cpp +83 -0
  66. package/cpp/geometry/Torus.cpp +65 -0
  67. package/cpp/geometry/WarpFunctions.cpp +238 -0
  68. package/cpp/geometry/Wave.cpp +85 -0
  69. package/cpp/include/vib3_ffi.h +238 -0
  70. package/cpp/math/Mat4x4.cpp +409 -0
  71. package/cpp/math/Mat4x4.hpp +209 -0
  72. package/cpp/math/Projection.cpp +142 -0
  73. package/cpp/math/Projection.hpp +148 -0
  74. package/cpp/math/Rotor4D.cpp +322 -0
  75. package/cpp/math/Rotor4D.hpp +204 -0
  76. package/cpp/math/Vec4.cpp +303 -0
  77. package/cpp/math/Vec4.hpp +225 -0
  78. package/cpp/src/vib3_ffi.cpp +607 -0
  79. package/cpp/tests/Geometry_test.cpp +213 -0
  80. package/cpp/tests/Mat4x4_test.cpp +494 -0
  81. package/cpp/tests/Projection_test.cpp +298 -0
  82. package/cpp/tests/Rotor4D_test.cpp +423 -0
  83. package/cpp/tests/Vec4_test.cpp +489 -0
  84. package/docs/webgpu-live.html +1 -1
  85. package/package.json +41 -30
  86. package/src/agent/index.js +1 -3
  87. package/src/agent/mcp/MCPServer.js +1220 -144
  88. package/src/agent/mcp/index.js +1 -1
  89. package/src/agent/mcp/stdio-server.js +264 -0
  90. package/src/agent/mcp/tools.js +498 -31
  91. package/src/cli/index.js +431 -47
  92. package/src/core/CanvasManager.js +97 -204
  93. package/src/core/ErrorReporter.js +1 -1
  94. package/src/core/Parameters.js +1 -1
  95. package/src/core/VIB3Engine.js +93 -4
  96. package/src/core/VitalitySystem.js +53 -0
  97. package/src/core/index.js +18 -0
  98. package/src/core/renderers/FacetedRendererAdapter.js +10 -9
  99. package/src/core/renderers/HolographicRendererAdapter.js +13 -9
  100. package/src/core/renderers/QuantumRendererAdapter.js +11 -7
  101. package/src/creative/AestheticMapper.js +628 -0
  102. package/src/creative/ChoreographyPlayer.js +481 -0
  103. package/src/creative/index.js +11 -0
  104. package/src/experimental/GameLoop.js +72 -0
  105. package/src/experimental/LatticePhysics.js +100 -0
  106. package/src/experimental/LiveDirector.js +143 -0
  107. package/src/experimental/PlayerController4D.js +154 -0
  108. package/src/experimental/VIB3Actor.js +138 -0
  109. package/src/experimental/VIB3Compositor.js +117 -0
  110. package/src/experimental/VIB3Link.js +122 -0
  111. package/src/experimental/VIB3Orchestrator.js +146 -0
  112. package/src/experimental/VIB3Universe.js +109 -0
  113. package/src/experimental/demos/CrystalLabyrinth.js +202 -0
  114. package/src/export/TradingCardManager.js +3 -4
  115. package/src/export/index.js +11 -1
  116. package/src/faceted/FacetedSystem.js +260 -394
  117. package/src/games/glyph-war/GlyphWarVisualizer.js +641 -0
  118. package/src/geometry/generators/Crystal.js +2 -2
  119. package/src/geometry/warp/HypersphereCore.js +53 -24
  120. package/src/holograms/HolographicVisualizer.js +84 -98
  121. package/src/holograms/RealHolographicSystem.js +194 -43
  122. package/src/math/Mat4x4.js +308 -105
  123. package/src/math/Rotor4D.js +124 -40
  124. package/src/math/Vec4.js +200 -103
  125. package/src/math/index.js +7 -7
  126. package/src/polychora/PolychoraSystem.js +77 -0
  127. package/src/quantum/QuantumEngine.js +103 -66
  128. package/src/quantum/QuantumVisualizer.js +31 -22
  129. package/src/reactivity/index.js +3 -5
  130. package/src/render/LayerPresetManager.js +372 -0
  131. package/src/render/LayerReactivityBridge.js +344 -0
  132. package/src/render/LayerRelationshipGraph.js +610 -0
  133. package/src/render/MultiCanvasBridge.js +148 -25
  134. package/src/render/ShaderLoader.js +38 -0
  135. package/src/render/ShaderProgram.js +4 -4
  136. package/src/render/UnifiedRenderBridge.js +4 -1
  137. package/src/render/backends/WebGPUBackend.js +8 -4
  138. package/src/render/index.js +27 -2
  139. package/src/scene/Node4D.js +74 -24
  140. package/src/scene/index.js +4 -4
  141. package/src/shaders/common/geometry24.glsl +65 -0
  142. package/src/shaders/common/geometry24.wgsl +54 -0
  143. package/src/shaders/common/rotation4d.glsl +4 -4
  144. package/src/shaders/common/rotation4d.wgsl +2 -2
  145. package/src/shaders/common/uniforms.wgsl +15 -8
  146. package/src/shaders/faceted/faceted.frag.glsl +220 -80
  147. package/src/shaders/faceted/faceted.frag.wgsl +144 -90
  148. package/src/shaders/holographic/holographic.frag.glsl +28 -9
  149. package/src/shaders/holographic/holographic.frag.wgsl +112 -41
  150. package/src/shaders/quantum/quantum.frag.glsl +1 -0
  151. package/src/shaders/quantum/quantum.frag.wgsl +6 -4
  152. package/src/testing/ParallelTestFramework.js +2 -2
  153. package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +2 -2
  154. package/src/viewer/GalleryUI.js +17 -0
  155. package/src/viewer/ViewerPortal.js +2 -2
  156. package/src/viewer/index.js +1 -1
  157. package/tools/headless-renderer.js +258 -0
  158. package/tools/shader-sync-verify.js +14 -8
  159. package/tools/site-analysis/all-reports.json +32 -0
  160. package/tools/site-analysis/combined-analysis.md +50 -0
  161. package/tools/site-analyzer.mjs +779 -0
  162. package/tools/visual-catalog/capture.js +276 -0
  163. package/tools/visual-catalog/composite.js +138 -0
  164. package/types/adaptive-sdk.d.ts +204 -5
  165. package/types/agent/cli.d.ts +78 -0
  166. package/types/agent/index.d.ts +18 -0
  167. package/types/agent/mcp.d.ts +87 -0
  168. package/types/agent/telemetry.d.ts +190 -0
  169. package/types/core/VIB3Engine.d.ts +26 -0
  170. package/types/core/index.d.ts +261 -0
  171. package/types/creative/AestheticMapper.d.ts +72 -0
  172. package/types/creative/ChoreographyPlayer.d.ts +96 -0
  173. package/types/creative/index.d.ts +17 -0
  174. package/types/export/index.d.ts +243 -0
  175. package/types/geometry/index.d.ts +164 -0
  176. package/types/math/index.d.ts +214 -0
  177. package/types/render/LayerPresetManager.d.ts +78 -0
  178. package/types/render/LayerReactivityBridge.d.ts +85 -0
  179. package/types/render/LayerRelationshipGraph.d.ts +174 -0
  180. package/types/render/index.d.ts +3 -0
  181. package/types/scene/index.d.ts +204 -0
  182. package/types/systems/index.d.ts +244 -0
  183. package/types/variations/index.d.ts +62 -0
  184. package/types/viewer/index.d.ts +225 -0
  185. package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +0 -34
  186. package/DOCS/DEV_TRACK_ANALYSIS.md +0 -77
  187. package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +0 -42
  188. package/DOCS/SESSION_014_PLAN.md +0 -195
  189. package/DOCS/SESSION_LOG_2026-01-07.md +0 -56
  190. package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +0 -72
  191. package/DOCS/SYSTEM_AUDIT_2026-01-30.md +0 -738
  192. /package/src/viewer/{ReactivityManager.js → ViewerInputHandler.js} +0 -0
@@ -0,0 +1,87 @@
1
+ Last reviewed: 2026-02-17
2
+
3
+ # Visual Analysis: clickerss.com
4
+
5
+ **Captured: 2026-02-10 via Playwright with wheel-based scrolling**
6
+ **Method**: Real Chromium screenshots at 5 scroll positions (wheel events)
7
+ **Page height**: 9,950px (~11x viewport)
8
+
9
+ ---
10
+
11
+ ## Scroll Journey (Frame by Frame)
12
+
13
+ ### s00 — Top (scrollY=0)
14
+ **Dramatic B&W hero photograph**
15
+ - Background: pure white
16
+ - Massive B&W photograph: woman's face looking upward, cropped tight
17
+ - Image fills ~90% of viewport width, extends below fold
18
+ - "CLICKERSS" wordmark top-left in thin spaced uppercase
19
+ - Grid/dot icon center-top (hamburger/menu)
20
+ - Shopping bag icon top-right with "0"
21
+ - No other text or elements visible — the photograph IS the hero
22
+ - **Pattern**: Photography-as-hero. No text tagline, no CTA button, no gradient. Just a massive, emotional B&W portrait. The image does all the talking.
23
+
24
+ ### s01 — scrollY=2400
25
+ **Massive serif typography with text-image overlap**
26
+ - Left side: HUGE serif italic text — "CADA CAMPAÑA TIENE UN PROPOSITO." (~150px+ font)
27
+ - Text fills entire left half of viewport
28
+ - Right side at midpoint: device mockups (laptop + phone) showing portfolio work
29
+ - Below-right: MORE massive serif text — "ELEVAR MARCAS QUE DESEAN MARCAR LA DIFERENCIA"
30
+ - Bottom-left: portfolio image (fashion/beauty brand "MAISON LINA")
31
+ - The text and images OVERLAP — text runs behind/through images, images overlap text
32
+ - **Pattern**: Text-image interweaving. The massive serif text and the portfolio images occupy the SAME space, overlapping. Neither takes precedence — they share the viewport, creating a collage-like effect. This is the "text as visual element" pattern taken to an extreme.
33
+
34
+ ### s02 — scrollY=4800
35
+ **Product photography + service description**
36
+ - Top-left: iPhone product photos (phone shown from behind, showing camera modules)
37
+ - Images are placed asymmetrically, partially overlapping
38
+ - Right side: "VIDEOS CORPORATIVOS" heading in serif
39
+ - Below: "CONTAMOS TU HISTORIA DE MANERA UNICA" subheading
40
+ - Body text paragraph below
41
+ - Lower-left: portrait photo of man with flowing hair, cropped as rectangle
42
+ - Clean white background throughout
43
+ - **Pattern**: Asymmetric service showcase. Product photos LEFT, description text RIGHT. Portrait photo breaks the pattern by appearing lower-left. The layout is deliberately irregular.
44
+
45
+ ### s03 — scrollY=7200
46
+ **Mixed content section**
47
+ - Various portfolio/service content
48
+ - Continuing the white background
49
+ - Images and text positioned asymmetrically
50
+ - No dark/light mode switch — entire site stays on white
51
+
52
+ ### s04 — scrollY=9050 (bottom)
53
+ **CTA footer with massive typography**
54
+ - ENORMOUS serif text: "TU PRESENCIA DIGITAL ESTA A PUNTO DE DESPEGAR" (fills ~60% of viewport height)
55
+ - Arrow → + call-to-action body text below
56
+ - Footer nav: HOME, SERVICIOS, PORTFOLIO, SOBRE MI, CONTACTO, COMPRAR (all spaced across full width)
57
+ - Thin horizontal rule
58
+ - Bottom bar: legal links + copyright
59
+ - **Pattern**: Typography-as-CTA. Instead of a small "Contact us" button, the entire viewport is filled with massive serif text that IS the CTA. The typography scale makes the message impossible to ignore.
60
+
61
+ ---
62
+
63
+ ## Key Design Patterns for VIB3+ Translation
64
+
65
+ ### 1. Photography-as-Hero (No Competing Elements)
66
+ The hero has ONE thing: a massive photograph. No text overlay, no buttons, no gradients. The image fills the space and the viewer must engage with it.
67
+ **For VIB3+**: The opening cinematic with VIB3CODE text mask should have the visualizer as the ONLY visual element — no competing UI, no description text. Let the GPU canvas be the hero image equivalent.
68
+
69
+ ### 2. Text-Image Interweaving
70
+ Typography and images share the same spatial region, overlapping deliberately. Text runs behind images; images overlap text boundaries. Neither element "wins" — they coexist.
71
+ **For VIB3+**: Cascade card overlays could have text that extends BEYOND the card boundaries, overlapping into adjacent cards. The `.cascade-overlay` text could be positioned to extend past the clip-path edge.
72
+
73
+ ### 3. Massive Serif Typography as Primary Visual Element
74
+ Text isn't just information — it's the dominant visual pattern. Lines of text at 100-200px size create visual rhythm and weight comparable to images.
75
+ **For VIB3+**: Section titles could be dramatically larger — not just `3rem` headings but `clamp(4rem, 12vw, 10rem)` viewport-filling text.
76
+
77
+ ### 4. Consistent White Background (No Mode Switching)
78
+ Unlike Simone's dark/light mode transitions, clickerss stays on white throughout. All visual variety comes from photography and typography scale.
79
+ **For VIB3+**: This validates that NOT every section needs a color mode switch. Some sections can maintain a consistent background and let the visualizer parameters alone create the visual change.
80
+
81
+ ### 5. CTA as Giant Typography
82
+ The footer CTA fills the viewport with a single sentence. The scale of the text makes it feel like a billboard or poster.
83
+ **For VIB3+**: The CTA section could use massive outlined text (similar to Simone's footer "SIMONE" strokes) rather than a traditional button layout.
84
+
85
+ ---
86
+
87
+ *Analysis based on actual Playwright screenshots captured with wheel-event scrolling.*
@@ -0,0 +1,135 @@
1
+ Last reviewed: 2026-02-17
2
+
3
+ # Visual Analysis: facetad.com
4
+
5
+ **Captured: 2026-02-10 via Playwright with wheel-based scrolling**
6
+ **Method**: Real Chromium screenshots at 10 scroll positions (wheel events)
7
+ **Page height**: 15,082px (~16.8x viewport)
8
+
9
+ ---
10
+
11
+ ## Scroll Journey (Frame by Frame)
12
+
13
+ ### s00 — Top (scrollY=0)
14
+ **Ultra-minimal hero: single line of text on vast cream emptiness**
15
+ - Background: warm cream/off-white (#F5F0EB range)
16
+ - Centered text: "We approach every facet of design with a sense of wonder."
17
+ - Text is small, light gray, serif — occupies maybe 5% of viewport
18
+ - Tiny chevron/scroll indicator below text
19
+ - No nav, no logo visible at top — just vast empty space above and below
20
+ - **Pattern**: Extreme negative space. The emptiness IS the design. Forces the eye to the single sentence.
21
+
22
+ ### s01 — scrollY=1680
23
+ **Parallelogram image explosion around centered logo**
24
+ - FACET logo + "ARCHITECTURAL DESIGN" centered
25
+ - Tagline below logo
26
+ - 6+ architectural photos SCATTERED around the logo in **parallelogram/skewed clip-paths**
27
+ - Images are different sizes, at different angles/positions
28
+ - Images overlap each other and the logo text
29
+ - Some images partially exit viewport edges
30
+ - **Pattern**: Scattered parallelogram gallery. Images use CSS `transform: skew()` or `clip-path: polygon()` to create non-rectangular shapes. Creates a chaotic but visually rich collage effect.
31
+
32
+ ### s02 — scrollY=3360
33
+ **Full parallelogram gallery — maximum density**
34
+ - ~20+ architectural photos visible, ALL in parallelogram shapes
35
+ - Images scattered across entire viewport at various sizes (small thumbnails to medium)
36
+ - FACET logo still centered but partially obscured by overlapping images
37
+ - Some images overlap each other creating depth layers
38
+ - Images appear to float at different z-levels
39
+ - **Pattern**: This is the peak of the scatter effect. The sheer density + non-rectangular shapes + overlap creates an effect like looking through a shattered window at many projects simultaneously. Very strong depth illusion.
40
+
41
+ ### s03 — scrollY=5040
42
+ **Large diagonal project images**
43
+ - Two massive project photos with strong diagonal clip-path edges
44
+ - Top: building at dusk with warm-lit windows, cut diagonally
45
+ - Bottom-right: bright blue architectural image, also cut diagonally
46
+ - A red/orange geometric element visible at top-right (matching brand color)
47
+ - Images take up most of viewport, overlapping
48
+ - **Pattern**: From scattered small thumbnails, the images have GROWN into massive hero-sized images. The diagonal edges create dramatic slash transitions between photos. This is the parallelogram theme at architectural scale.
49
+
50
+ ### s04 — scrollY=6720
51
+ **Single massive image with diagonal wipe to cream**
52
+ - Top-left: large project photo (modern building exterior with glass, lawn, outdoor seating)
53
+ - Diagonal edge cuts from top-left to bottom-right
54
+ - Below the diagonal: pure cream emptiness
55
+ - The diagonal creates a dramatic "wipe" transition from content to void
56
+ - **Pattern**: Diagonal section transition. Not horizontal, not curved — a sharp diagonal slash separates photo content from empty space. This is how facetad handles section boundaries.
57
+
58
+ ### s05 — scrollY=8400
59
+ **Markets section: overlapping photos + text**
60
+ - Top: "MARKETS WE SERVE" heading in red/terracotta
61
+ - Two large photos side by side showing hospitality interior (bar/restaurant)
62
+ - Photos overlap slightly, creating a diptych
63
+ - Right side: "HOSPITALITY" heading in red italic + body text paragraph
64
+ - Classic asymmetric layout: images LEFT, text RIGHT
65
+ - **Pattern**: Asymmetric portfolio section — large overlapping photos paired with small text. The overlap between the two photos adds depth.
66
+
67
+ ### s06 — scrollY=10080
68
+ **Services section: clean asymmetric layout**
69
+ - "OUR DESIGN SERVICES" heading top-left in small red text
70
+ - "ARCHITECTURE" heading in large red italic text, left side
71
+ - Body text paragraph below heading
72
+ - Large architectural rendering (aerial view of commercial building) floats right at ~55% width
73
+ - Image has subtle shadow/depth
74
+ - Clean, spacious layout with generous white space
75
+ - **Pattern**: Standard asymmetric card (text left, image right) but with extreme white space. The image is large and positioned to feel like it's floating above the page.
76
+
77
+ ### s07 — scrollY=11760
78
+ **Services continued + diagonal color transition beginning**
79
+ - "OUR DESIGN SERVICES" still visible at top
80
+ - "FF&E" heading in red italic with body text, left side
81
+ - No image — text only section
82
+ - Bottom of viewport: the red/terracotta color BEGINS appearing as a diagonal band
83
+ - The diagonal enters from bottom-right, cutting upward to the left
84
+ - **Pattern**: The diagonal section divider is introducing the red brand color. It's the same diagonal slash pattern but now used for a full COLOR MODE TRANSITION (cream → red).
85
+
86
+ ### s08 — scrollY=13440
87
+ **Full diagonal color split: red to cream**
88
+ - Top ~40%: solid red/terracotta (#C0392B range)
89
+ - Diagonal slash cuts from upper-left to lower-right
90
+ - Bottom ~60%: back to cream
91
+ - "START A CONVERSATION" in large red italic text on cream
92
+ - "Talk with one of our award-winning architects about your next project." body text
93
+ - "Schedule A Call" link in red
94
+ - **Pattern**: The CTA section uses the diagonal color split as a dramatic reveal. The red block slides away diagonally to reveal the CTA on cream. Creates a cinematic wipe effect.
95
+
96
+ ### s09 — scrollY=14182 (bottom)
97
+ **Footer: diagonal split cream/red**
98
+ - Top-left: cream background with FACET logo + address + contact info
99
+ - Diagonal divider cuts from upper-right to lower-left
100
+ - Bottom-right: solid red/terracotta background with nav links + social links + subscribe form
101
+ - "SUBSCRIBE" heading with email input and "SUBMIT" button
102
+ - "Website by Novel" credit at bottom-left
103
+ - **Pattern**: Footer echoes the diagonal theme. The entire footer is split diagonally — warm cream on one side, brand red on the other. The diagonal is the site's signature visual motif from hero through footer.
104
+
105
+ ---
106
+
107
+ ## Key Design Patterns for VIB3+ Translation
108
+
109
+ ### 1. Parallelogram/Skewed Image Gallery
110
+ Project images use non-rectangular clip-paths (parallelograms, rhomboids). Images are scattered at different sizes, positions, and overlap each other. This creates a shattered-glass collage effect with real depth.
111
+ **For VIB3+**: Cascade cards could use parallelogram clip-paths instead of rectangles. The clip-path morphing system already supports polygon interpolation — add skewed/angled shapes to the shape sequence.
112
+
113
+ ### 2. Diagonal Section Dividers
114
+ Every section boundary uses a diagonal slash — not horizontal lines, not curves. The same angle (~30-40 degrees) is used consistently.
115
+ **For VIB3+**: Section dividers could use angled clip-paths or CSS `polygon()` instead of horizontal borders. The diagonal creates much more visual energy than straight horizontal lines.
116
+
117
+ ### 3. Density Progression (Sparse → Dense → Sparse)
118
+ The page starts with extreme emptiness (one line of text), builds to maximum density (20+ scattered images), then relaxes back to spacious layouts before ending with another sparse CTA.
119
+ **For VIB3+**: The morph stages should follow this arc — start minimal, build to visual complexity peak, then settle.
120
+
121
+ ### 4. Diagonal Color Mode Transitions
122
+ The cream → red transition doesn't happen at a horizontal boundary. A diagonal band of red slashes across the viewport, creating a cinematic wipe effect.
123
+ **For VIB3+**: Dark/light mode switches could use diagonal clip-path animations instead of straight horizontal borders.
124
+
125
+ ### 5. Extreme Negative Space
126
+ The hero is 95% empty. Text occupies a tiny fraction of the viewport. This forces attention and creates anticipation.
127
+ **For VIB3+**: The opening cinematic should start sparse — let the visualizer breathe in vast empty space before the content builds up.
128
+
129
+ ### 6. Consistent Brand Angle
130
+ The diagonal angle is THE signature of the site. It appears in: image clip-paths, section dividers, color transitions, footer layout. The same ~30deg angle repeats everywhere.
131
+ **For VIB3+**: Pick a consistent geometric motif and repeat it across different contexts — clip-paths, dividers, card shapes, overlay patterns.
132
+
133
+ ---
134
+
135
+ *Analysis based on actual Playwright screenshots captured with wheel-event scrolling.*
@@ -0,0 +1,97 @@
1
+ Last reviewed: 2026-02-17
2
+
3
+ # Visual Analysis: weare-simone.webflow.io
4
+
5
+ **Captured: 2026-02-10 via Playwright with wheel-based scrolling**
6
+ **Method**: Real Chromium screenshots at 8 scroll positions (wheel events trigger Lenis/GSAP)
7
+ **Page height**: 12,062px (~13.4x viewport)
8
+
9
+ ---
10
+
11
+ ## Scroll Journey (Frame by Frame)
12
+
13
+ ### s00 — Top (scrollY=0)
14
+ **Giant "SIMONE" wordmark fills ~80% of viewport width**
15
+ - Background: warm cream/off-white with subtle noise texture
16
+ - Typography: black, extremely bold condensed sans-serif, all caps
17
+ - Text takes up full viewport — no other content visible except:
18
+ - Small "SIMONE" logo top-left (dark teal, tiny)
19
+ - Green pill-shaped nav button top-right with dot indicators
20
+ - Minimal nav links: "Work", "About", "Contact"
21
+ - **Pattern**: Hero section is JUST typography. No images, no gradients. The text IS the design. Massive scale creates impact.
22
+
23
+ ### s01 — scrollY=2400
24
+ **Complete mode switch: cream → dark teal**
25
+ - Background: deep dark teal (#0A3239 range) with subtle noise texture
26
+ - Large white serif/display text: "What if we could alter reality *for the better?*"
27
+ - "for the better?" in lime/chartreuse green (#CCFF66)
28
+ - Below: smaller body text (cream colored) explaining studio mission
29
+ - Content sits within a large rounded-corner container (~24px radius)
30
+ - **Pattern**: DRAMATIC full-palette inversion at section boundary. The entire color scheme flips. This is the "dark/light mode threshold" pattern.
31
+
32
+ ### s02 — scrollY=4800
33
+ **Asymmetric case study card (IKEA)**
34
+ - Still dark teal background
35
+ - Large serif heading: "Transform how we browse"
36
+ - Small body text on left side
37
+ - IKEA logo (white on dark)
38
+ - Green pill button: "View case study" with arrow
39
+ - **Product image floats right**: desk lamp in dark tones, offset ~60% to the right
40
+ - Below: "Turn up the magic" heading beginning to enter viewport
41
+ - **Pattern**: Asymmetric card layout. Text content LEFT, floating product image RIGHT. The image is positioned outside the text column — creates overlap depth.
42
+
43
+ ### s03 — scrollY=7200
44
+ **Sephora + Nike stacked case studies**
45
+ - Top: Sephora section ending — "Draw people into your world..." text top-right
46
+ - Sephora logo centered, "View case study" green pill
47
+ - Red 3D cosmetic product floats LEFT (~25% from left edge)
48
+ - Bottom half: Nike "Get people moving" section beginning
49
+ - Nike logo at bottom
50
+ - **Pattern**: Alternating asymmetry — IKEA had image RIGHT, Sephora has image LEFT, Nike will have image RIGHT. This creates a zigzag visual rhythm as you scroll.
51
+
52
+ ### s04 — scrollY=9600
53
+ **Client logos strip on cream background**
54
+ - Mode switch BACK to light: cream/off-white background
55
+ - Three logos visible: Dior, Monzo, Disney
56
+ - Very clean, minimal spacing
57
+ - Logos are small and muted (dark teal on cream)
58
+ - **Pattern**: Palate cleanser section. After intense dark case studies, a minimal light section resets visual fatigue. Brief breathing room.
59
+
60
+ ### s05 — scrollY=11162 (bottom)
61
+ **CTA footer with marquee**
62
+ - Mode switch back to dark teal
63
+ - "Ready to alter reality?" centered heading (small, white)
64
+ - GIANT horizontal marquee: "Work with us" repeated, scrolling horizontally
65
+ - Green circular CTA button between the marquee text repetitions
66
+ - Below the marquee: "SIMONE" in massive OUTLINED/STROKE typography (no fill, just border)
67
+ - Footer bar: © 2026, Instagram, LinkedIn, "Site by Kin", 1% Planet badge
68
+ - **Pattern**: The footer echoes the hero — same giant "SIMONE" text but now as outlined strokes instead of filled. Creates bookend/closure. The horizontal marquee adds perpetual motion.
69
+
70
+ ---
71
+
72
+ ## Key Design Patterns for VIB3+ Translation
73
+
74
+ ### 1. Typography-As-Hero
75
+ The hero section has NOTHING except giant text. No background effects, no images. The text IS the visual impact. For VIB3+: the opening cinematic should let the visualizer fill the entire space without competing with too many UI elements.
76
+
77
+ ### 2. Hard Dark/Light Mode Switches
78
+ Sections don't cross-fade between modes — they SNAP. Cream → dark teal is a sharp boundary (though with Lenis smoothing it feels smooth). For VIB3+: system/parameter presets should change sharply at section boundaries, not gradually.
79
+
80
+ ### 3. Zigzag Asymmetric Cards
81
+ Case study cards alternate: image-right → image-left → image-right. This creates visual rhythm and prevents monotony. For VIB3+: cascade cards or triptych panels should have alternating asymmetry rather than centered symmetry.
82
+
83
+ ### 4. Floating Product Objects
84
+ Images are positioned OUTSIDE their text columns, overlapping into adjacent space. This creates real depth layers. For VIB3+: visualizer canvases could extend beyond their logical containers, bleeding into adjacent sections.
85
+
86
+ ### 5. Marquee CTA
87
+ "Work with us" scrolls infinitely horizontally. This adds persistent motion that's independent of scroll position. For VIB3+: a parameter-driven text ticker or rotating geometry showcase could serve the same purpose.
88
+
89
+ ### 6. Outlined Typography Echo
90
+ The hero's filled "SIMONE" becomes outlined/stroked at the footer. The same shape, different rendering. For VIB3+: the same geometry could be shown in different visualization systems at different scroll positions (Quantum fill → Faceted outline).
91
+
92
+ ### 7. Subtle Noise Texture
93
+ Both light and dark backgrounds have a visible noise/grain texture overlay. This adds tactile quality and prevents "flat digital" feeling. For VIB3+: a CSS grain overlay on sections would add this same warmth.
94
+
95
+ ---
96
+
97
+ *Analysis based on actual Playwright screenshots captured with wheel-event scrolling.*
@@ -0,0 +1,88 @@
1
+ Last reviewed: 2026-02-17
2
+
3
+ # Visual Analysis: tableside.com.au
4
+
5
+ **Captured: 2026-02-10 via Playwright with wheel-based scrolling**
6
+ **Method**: Real Chromium screenshots at 5 scroll positions (wheel events)
7
+ **Page height**: 8,370px (~9.3x viewport)
8
+
9
+ ---
10
+
11
+ ## Scroll Journey (Frame by Frame)
12
+
13
+ ### s00 — Top (scrollY=0)
14
+ **Bold typography hero with warm palette**
15
+ - Background: warm cream/beige (#F5EDE4 range)
16
+ - "TABLESIDE" logo top-left in coral/orange + "CREATIVES" subscript
17
+ - Hamburger menu (three lines) top-right in coral
18
+ - MASSIVE bold sans-serif text: "FOOD & DRINK DIGITAL CREATIVES" in coral/orange (#E85D3A range)
19
+ - Text fills ~70% of viewport, extremely bold weight (900+), tight line-height
20
+ - Below hero: "HOSPITALITY MARKETING AUSTRALIA" in black, right-aligned
21
+ - "WHAT WE DO" label left side
22
+ - Large body text in coral: "Crafting bold, unforgettable brands through content to propel hospitality and food & beverage businesses towards sustainable growth and standout success."
23
+ - Social links: INSTAGRAM, FACEBOOK, LINKEDIN, TIKTOK — right-aligned, stacked
24
+ - Chat widget bottom-right
25
+ - **Pattern**: Typography-as-hero with strong brand color. The hero text IS the brand statement, rendered in the signature coral color at maximum weight. Social links positioned as a sidebar element right-aligned.
26
+
27
+ ### s01 — scrollY=2400
28
+ **Portfolio card: asymmetric split layout**
29
+ - Large food photography LEFT (~50% viewport width): close-up of artisanal pizza
30
+ - Card text RIGHT: "ROCCELLA EAST MELB" restaurant name + orange icon
31
+ - "WEB, CONTENT, PAID, SOCIAL & EDM" service tags + "+ INFO" link in coral
32
+ - Below: second portfolio card beginning — dark photo of restaurant interior
33
+ - "STEER DINING ROOM" title overlaid on dark photo, bottom-left
34
+ - **Pattern**: Asymmetric portfolio cards. Image takes one half, text the other. The split is ~50/50 with generous spacing. Different cards have different background treatments (light photo vs dark atmospheric photo).
35
+
36
+ ### s02 — scrollY=4800
37
+ **Small dark portfolio card**
38
+ - Dark restaurant interior photo with chefs in white uniforms
39
+ - "WAGYU YA TEPPANYAKI" title overlaid top in white
40
+ - "WEB, CONTENT, PAID, SOCIALS & EDM" service tags bottom-left
41
+ - "YAKIKAMI" title visible below
42
+ - Card appears much smaller than previous cards (~40% viewport height)
43
+ - **Pattern**: Variable card sizing. Not all portfolio cards are the same size. This card is notably smaller and darker than the previous ones, creating visual rhythm through size variation.
44
+
45
+ ### s03 — scrollY=7200
46
+ **CTA section with strong color**
47
+ - Solid coral/orange background filling top ~40% of viewport
48
+ - "READY TO TAKE A SEAT AT OUR TABLE?" in large white text, centered
49
+ - "BOOK FREE STRATEGY SESSION" button: white border on coral background, centered
50
+ - Below CTA: split-color footer section
51
+ - LEFT half: warm cream with contact info, address, phone, hours
52
+ - RIGHT half: dark navy (#1A1A3E) with food photography (overhead table shot with multiple dishes)
53
+ - Photo floats slightly above the navy background edge
54
+
55
+ ### s04 — scrollY=7470 (bottom)
56
+ **Footer nav + legal**
57
+ - Footer navigation bar: HOME, WORK, SERVICES, ABOUT US, JOBS, CONTACT, NEWS (left-aligned in coral)
58
+ - Social links: INSTAGRAM, FACEBOOK, LINKEDIN (right-aligned in coral)
59
+ - Bottom bar: Privacy Policy, "TABLESIDE" centered logo, © 2024
60
+ - **Pattern**: Footer uses the brand coral for all link text against cream background. Clean horizontal nav layout.
61
+
62
+ ---
63
+
64
+ ## Key Design Patterns for VIB3+ Translation
65
+
66
+ ### 1. Three-Tone Palette (Cream + Coral + Navy)
67
+ The site uses exactly three colors consistently: warm cream background, coral/orange for typography and accents, dark navy for contrast sections. No gradients, no additional colors.
68
+ **For VIB3+**: A disciplined three-tone palette could anchor the landing page — e.g., dark background + one accent hue from the visualizer + white text.
69
+
70
+ ### 2. Variable Portfolio Card Sizing
71
+ Portfolio cards are NOT uniform. Some span full viewport height, others are compact. Some have light photos, others have dark atmospheric shots. Size variation creates rhythm.
72
+ **For VIB3+**: Cascade cards don't all need to be the same size. The clip-path morphing system could make some cards appear larger (wider window) and others more compact (narrower window), even though the underlying card is the same size.
73
+
74
+ ### 3. Split-Color Sections
75
+ The contact/footer area uses a vertical split: cream on the left, navy on the right, with a food photo bridging the two zones. This creates a strong compositional split.
76
+ **For VIB3+**: Could use a vertical split in the CTA or feature sections — one half showing one visualization system, the other showing a different one.
77
+
78
+ ### 4. CTA as Bold Color Block
79
+ The CTA section is a solid block of coral color with white text. Simple, bold, impossible to scroll past without noticing.
80
+ **For VIB3+**: The CTA section could use a solid color block with a visualizer running behind it at low opacity, creating color + depth.
81
+
82
+ ### 5. Service Tags as Metadata
83
+ Each portfolio card lists specific services (WEB, CONTENT, PAID, SOCIAL & EDM) in small uppercase text. This adds information density without cluttering the visual.
84
+ **For VIB3+**: Cascade cards could show parameter metadata (geometry name, system type, hue value) in small utility text that adds technical depth.
85
+
86
+ ---
87
+
88
+ *Analysis based on actual Playwright screenshots captured with wheel-event scrolling.*
@@ -1,38 +1,121 @@
1
- # WebGPU status and testing requirements
2
-
3
- This document records the current WebGPU backend state, what is implemented, and what is required
4
- to validate it in local development or CI.
5
-
6
- ## Current status
7
- - **Backend scaffold:** `WebGPUBackend` initializes adapter/device, configures the canvas, manages
8
- resize, and supports a clear-pass `renderFrame()` path.
9
- - **Async context creation:** `createRenderContextAsync()` can instantiate WebGPU contexts using
10
- `{ backend: 'webgpu' }`.
11
- - **Resource tracking:** depth textures are registered in the shared `RenderResourceRegistry`.
12
-
13
- ## What is still needed
14
- 1. **Pipeline parity:** implement basic shader pipelines (vertex/fragment) and buffer binding that
15
- match the WebGL backend command flow.
16
- 2. **Command buffer bridge:** map existing render commands to WebGPU render passes.
17
- 3. **Feature gating:** add host-app controls to toggle WebGPU via feature flags.
18
- 4. **Diagnostics:** add per-frame stats and resource delta reporting for WebGPU.
19
-
20
- ## Testing requirements
21
- ### Local smoke test
22
- Prerequisites:
23
- - A browser with WebGPU enabled (Chrome/Edge with `chrome://flags/#enable-unsafe-webgpu`, or a
24
- Chromium build with WebGPU support).
25
- - A device with WebGPU-capable GPU drivers.
26
-
27
- Suggested smoke flow:
28
- 1. Create a canvas and call `createRenderContextAsync(canvas, { backend: 'webgpu' })`.
29
- 2. Call `backend.renderFrame({ clearColor: [0.1, 0.1, 0.2, 1] })` and confirm the canvas clears.
30
- 3. Resize the canvas and ensure the clear pass still succeeds.
31
-
32
- ### CI validation
33
- - WebGPU cannot be reliably validated in headless CI without GPU support.
34
- - CI should instead run WebGL tests and lint/static checks; keep a manual WebGPU smoke checklist.
35
-
36
- ## File locations
37
- - `src/render/backends/WebGPUBackend.js`
38
- - `src/render/index.js` (`createRenderContextAsync`)
1
+ Last reviewed: 2026-02-17
2
+
3
+ # WebGPU Backend Status
4
+
5
+ **Last updated**: 2026-02-15
6
+
7
+ > Previous version archived at `DOCS/archive/WEBGPU_STATUS_2026-02-15_STALE.md`.
8
+
9
+ ## Current State: Functional but Not Validated End-to-End
10
+
11
+ The WebGPU backend is **architecturally complete** real device init, shader compilation, pipeline creation, uniform buffers, render passes. It is not a stub. However, no end-to-end browser validation has confirmed correct pixel output through the WebGPU path.
12
+
13
+ ## What Is Implemented
14
+
15
+ | Component | Status | File |
16
+ |-----------|--------|------|
17
+ | Device/adapter/context init | Done | `src/render/backends/WebGPUBackend.js` (1410 lines) |
18
+ | Canvas configuration + resize | Done | WebGPUBackend.js |
19
+ | WGSL shader module compilation | Done | WebGPUBackend.js `compileShader()` |
20
+ | Fullscreen quad pipeline | Done | WebGPUBackend.js `createFullscreenPipeline()` |
21
+ | Custom geometry pipeline | Done | WebGPUBackend.js `createPipeline()` |
22
+ | Uniform buffer management | Done | WebGPUBackend.js `createCustomUniformBuffer()` / `updateCustomUniforms()` |
23
+ | Fullscreen quad rendering | Done | WebGPUBackend.js `renderFullscreenQuad()` |
24
+ | Geometry rendering | Done | WebGPUBackend.js `renderGeometry()` / `renderWithPipeline()` |
25
+ | Manual render pass control | Done | WebGPUBackend.js `beginRenderPass()` / `endRenderPass()` |
26
+ | Vertex/index buffer creation | Done | WebGPUBackend.js |
27
+ | Texture + sampler creation | Done | WebGPUBackend.js |
28
+ | Resource cleanup | Done | WebGPUBackend.js `dispose()` |
29
+ | WebGL/WebGPU bridge abstraction | Done | `src/render/UnifiedRenderBridge.js` |
30
+ | Uniform packing (JS GPU) | Done | `packVIB3Uniforms()` in UnifiedRenderBridge.js |
31
+ | FacetedSystem WebGPU path | Done | `src/faceted/FacetedSystem.js` `initWithBridge()` |
32
+
33
+ ## WGSL Shader Files
34
+
35
+ All seven WGSL files are real, substantive shaders (not stubs):
36
+
37
+ | File | Lines | Content |
38
+ |------|-------|---------|
39
+ | `src/shaders/common/fullscreen.vert.wgsl` | 18 | Fullscreen triangle vertex shader |
40
+ | `src/shaders/common/uniforms.wgsl` | 49 | Canonical VIB3Uniforms struct definition |
41
+ | `src/shaders/common/rotation4d.wgsl` | 87 | All six 4D rotation matrices + projection |
42
+ | `src/shaders/common/geometry24.wgsl` | 55 | All 24 geometry SDFs |
43
+ | `src/shaders/faceted/faceted.frag.wgsl` | 206 | Complete faceted fragment shader |
44
+ | `src/shaders/quantum/quantum.frag.wgsl` | 362 | Complete quantum fragment shader |
45
+ | `src/shaders/holographic/holographic.frag.wgsl` | 255 | Complete holographic fragment shader |
46
+
47
+ ## Canonical Uniform Struct Layout
48
+
49
+ All WGSL uniform structs **must** match `packVIB3Uniforms()` in `UnifiedRenderBridge.js`. The canonical layout uses only `f32` scalars and one `vec2<f32>` to avoid WGSL alignment surprises:
50
+
51
+ ```wgsl
52
+ struct VIB3Uniforms {
53
+ time: f32, // index 0
54
+ _pad0: f32, // index 1
55
+ resolution: vec2<f32>, // index 2-3
56
+ geometry: f32, // index 4
57
+ rot4dXY: f32, // index 5
58
+ rot4dXZ: f32, // index 6
59
+ rot4dYZ: f32, // index 7
60
+ rot4dXW: f32, // index 8
61
+ rot4dYW: f32, // index 9
62
+ rot4dZW: f32, // index 10
63
+ dimension: f32, // index 11
64
+ gridDensity: f32, // index 12
65
+ morphFactor: f32, // index 13
66
+ chaos: f32, // index 14
67
+ speed: f32, // index 15
68
+ hue: f32, // index 16
69
+ intensity: f32, // index 17
70
+ saturation: f32, // index 18
71
+ mouseIntensity: f32, // index 19
72
+ clickIntensity: f32, // index 20
73
+ bass: f32, // index 21
74
+ mid: f32, // index 22
75
+ high: f32, // index 23
76
+ layerScale: f32, // index 24
77
+ layerOpacity: f32, // index 25
78
+ _pad1: f32, // index 26
79
+ layerColorR: f32, // index 27
80
+ layerColorG: f32, // index 28
81
+ layerColorB: f32, // index 29
82
+ densityMult: f32, // index 30
83
+ speedMult: f32, // index 31
84
+ breath: f32, // index 32
85
+ };
86
+ ```
87
+
88
+ **Rule**: Do NOT use `vec3<f32>` for layerColor — it triggers 16-byte alignment padding that breaks the flat Float32Array packing. Always use three separate f32 fields.
89
+
90
+ ## System Integration
91
+
92
+ | System | WebGPU Path | Notes |
93
+ |--------|-------------|-------|
94
+ | **Faceted** | Single-canvas via UnifiedRenderBridge | Inline WGSL matches canonical layout. Only system with a complete WebGPU path wired in the demo page. |
95
+ | **Quantum** | Multi-canvas via MultiCanvasBridge | Requires 5 separate canvas DOM elements. Falls back to WebGL on `docs/webgpu-live.html` (single canvas). |
96
+ | **Holographic** | Multi-canvas via MultiCanvasBridge | Same 5-canvas requirement. Falls back to WebGL on demo page. |
97
+
98
+ ## Remaining Work
99
+
100
+ 1. **End-to-end browser validation** — Run FacetedSystem through WebGPU in a Chrome/Edge browser with WebGPU enabled and confirm correct visual output matches WebGL.
101
+ 2. **Quantum/Holographic single-canvas path** — Either provide a single-canvas WebGPU fallback or create a demo page with the required 5-canvas DOM structure.
102
+ 3. **Automated smoke test** — A Playwright test (with WebGPU-capable browser) that initializes the bridge, renders one frame, and confirms no errors.
103
+ 4. **Shader sync verification** — Extend `tools/shader-sync-verify.js` to also verify WGSL struct layouts match `packVIB3Uniforms()`.
104
+
105
+ ## Demo Page
106
+
107
+ `docs/webgpu-live.html` — Tries WebGPU for FacetedSystem, always WebGL for Quantum/Holographic. Shows green "WEBGPU" or yellow "WEBGL" badge.
108
+
109
+ ## Testing
110
+
111
+ WebGPU cannot be validated in headless CI without GPU support. Strategy:
112
+ - CI: Run WebGL tests + shader lint + struct layout checks
113
+ - Manual: Smoke test in Chrome/Edge with `chrome://flags/#enable-unsafe-webgpu`
114
+
115
+ ## File Locations
116
+
117
+ - Backend: `src/render/backends/WebGPUBackend.js`
118
+ - Bridge: `src/render/UnifiedRenderBridge.js`
119
+ - Packing: `packVIB3Uniforms()` in UnifiedRenderBridge.js
120
+ - WGSL shaders: `src/shaders/`
121
+ - Demo: `docs/webgpu-live.html`
@@ -1,3 +1,5 @@
1
+ Last reviewed: 2026-02-17
2
+
1
3
  # XR integration benchmarks (draft)
2
4
 
3
5
  This document captures baseline metrics, targets, and tooling for XR integration work.
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -1,3 +1,5 @@
1
+ Last reviewed: 2026-02-17
2
+
1
3
  # Dev Track Session — January 31, 2026
2
4
 
3
5
  **Branch**: `claude/review-project-status-BwVbr`
@@ -87,7 +89,7 @@
87
89
  | File | Purpose |
88
90
  |------|---------|
89
91
  | `DOCS/MASTER_PLAN_2026-01-31.md` | Master plan with 43 items |
90
- | `DOCS/DEV_TRACK_SESSION_2026-01-31.md` | This session log |
92
+ | `DOCS/dev-tracks/DEV_TRACK_SESSION_2026-01-31.md` | This session log |
91
93
  | `DOCS/OBS_SETUP_GUIDE.md` | OBS integration guide |
92
94
  | `LICENSE` | MIT License |
93
95
  | `CHANGELOG.md` | v1.0.0 + v2.0.0 release notes |