docs: week 3 task 2 thob notes (texture switcher audit)

This commit is contained in:
divyap 2026-04-15 15:21:42 +05:30
parent 1c87ec2393
commit 761bca5d04

View File

@ -1,22 +1,18 @@
# Thob Builder Notes: Task 2 - Texture Switcher
# Thob Observations: Week 3 Task 2 - Texture Swap Edge Case Audit
## Overview
Implemented a planetary texture switcher (Earth/Moon) using a `RadioGroup` for the UI and the built-in `MaterialVariant` system for texture swapping.
### Thob Observations from Task Notes
* **Edge Case: Asset Size Stress Test**: Discovered a critical **Silent Upload Limit at ~5MB**. High-resolution textures (like the 8K **Jupiter** and **Sun** maps) fail to upload; the builder does not provide an error message, leading to "stale" or "missing" asset states.
* **Edge Case: Multi-Asset Persistence**: Once textures are within the size limit, the interaction is stable, but **Session Persistence is MISSING**. Selecting Jupiter and refreshing the browser resets the object to its **default texture** only.
* **Edge Case: Aspect Ratio/Mapping**: The Sphere UV mapping correctly handled different 2:1 aspect ratio textures without stretching or seam issues.
* **Main limitation observed**: **Silent Failures & State Reset.** The loss of selection state on refresh means that "previewing" a specific texture variant requires manual re-selection every time the builder reloads.
* **Reliability Verdict**: **Partially Reliable / Fragile** (Due to persistence and upload limits).
## Visual Observations
- **Texture Resolution**: The builder handles texture mapping on a sphere smoothly.
- **UI Interaction**: Using a `RadioGroup` feels more natural for a configurator pattern compared to a single toggle button.
### Console Warnings/Errors Seen (Deduplicated) and Probable Meaning
1. **Hydration Noise**: `No HydrateFallback element provided`. (Standard builder startup noise).
2. **Controlled State Toggle**: `undefined is changing from uncontrolled to controlled`.
* *Meaning*: Confirms that the internal React state for the `RadioGroup` or `MaterialVariant` is not initialized until the first user click.
3. **Binding Redundancy**: `GetBindingData... method already registered`.
4. **Silent Timeout**: `Failed to load resource: 404 Found`. (Occurs on oversized texture attempts).
## Technical Observations (Console Logs)
During development in the builder, several warnings and errors were observed:
- **404 Errors**: `GET https://builder.thob.studio/builder/... 404 (Not Found)`.
- **Method Registration**: `GetBindingData... method already registered`. This appears repeatedly in the logs during the preview phase.
- **Hydration Warnings**: `No HydrateFallback element provided to render during initial hydration`.
- **Component State**: `undefined is changing from uncontrolled to controlled`. This suggests a potential issue in how the builder manages internal component state when switching variants via `RadioGroup`.
## Builder Workflow
- **Node Hierarchy**: The UI was structured using a `RadioGroup` -> `For` loop -> `RadioGroupItem` layout, demonstrating high-level UI component support in the builder.
- **State Linking**: Connecting the `RadioGroup` selection to the `MaterialVariant` property was straightforward in the properties panel.
## Conclusion
The Thob Builder's `RadioGroup` component is a strong candidate for professional configurators. The process of linking textures to UI elements is intuitive and requires zero code. However, the runtime console warnings should be investigated to ensure production stability.
### Overall Read
Thob's texture system is visually stable for small assets, but the **Asset Pipeline** and **Session Persistence** are significant gaps. The fact that selections reset to default on reload indicates that the visual "State" is not being saved into the local editor session correctly.