docs: thob task 3 notes (visibility switcher)

This commit is contained in:
divyap 2026-04-13 16:30:26 +05:30
parent d866db852e
commit 0cc05e470e

View File

@ -0,0 +1,28 @@
# 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.