3.1 KiB

Thob Observations: Task 3 - Product Option Switcher

Thob Observations from Task Notes

  • Possible: Yes, implementing a geometric "Product Option" switcher that toggles the visibility of different 3D primitives (Cube/Sphere) via a central UI.
  • Implementation used: Structured a RadioGroup with a For loop to generate selection items. The selection state was linked to the Visible property of the corresponding Mesh nodes (Cube/Sphere) using conditional logic.
  • What worked as expected: Instantaneous visibility toggling. The builder engine handles "hiding/showing" meshes smoothly without losing their material or transform data.
  • Main limitation observed: Managing multiple distinct meshes (instead of just changing a material) increases the complexity of the Layers panel since each option requires its own Mesh node and geometry.
  • Builder flow used: UI Flex -> RadioGroup -> For Loop -> Visibility Binding on Mesh nodes in the 3D scene.
  • Complexity: Medium. Requires understanding "Visibility" state-binding and how to map specific Radio IDs to specific object visibility.
  • Main limitation signals: Cluster of GetBindingData redundancy logs and localized Application Crashes when interacting with specific primitive geometries like the Cylinder.
  • Workaround status: Fully native; achieved through standard visibility toggles in the Properties panel.

Critical Failures & Application Crashes

  • Geometric Property Crash: A hard application crash (Unexpected Application Error) was observed when modifying properties of the Cylinder geometry.
    • Error Trace: TypeError: Cannot convert a Symbol value to a number. This suggests a breakdown in the builder's internal math/conversion logic when handling cylinder-specific parameters.
  • Module Refresh Error: Occasional failure to fetch dynamically imported modules (builder._projectId-...js).
    • Effect: Breaks the editor's interactive state and requires a full page refresh to recover.

Console Warnings/Errors Seen (Deduplicated) and Probable Meaning

  1. Redundant Logic Registration: GetBindingData... method already registered.
    • Probable Meaning: Triggered by the For-loop logic. The engine attempts to re-attach visibility listeners for all objects every time the selection is updated.
  2. GPU Crash: THREE.WebGLRenderer: Context Lost.
    • Probable Meaning: Rapidly toggling visibility of different geometries appears to tax the memory/context management of the builder's renderer, occasionally leading to a context loss.
  3. Loading Error: 404 Not Found (builder path).
    • Probable Meaning: Temporary failure to load internal builder thumbnails or non-essential project state files.

Overall Read

Task 3 demonstrates that Thob is effective for "Product Discovery" and "Part Selection" workflows where a user might want to swap entire components (like a Sphere for a Cube). While the logic is robust, the high volume of redundant console messages suggests the internal observer system is over-active during visibility state changes.