From cb1004584e0cfaf90a25fe4901ffc6fdcdc0cd1d Mon Sep 17 00:00:00 2001 From: divyap Date: Tue, 31 Mar 2026 00:14:55 +0530 Subject: [PATCH] docs: update task-3 comparison report --- Week-1/Task-3/report.md | 103 ++++++++++++++++++++++++---------------- 1 file changed, 61 insertions(+), 42 deletions(-) diff --git a/Week-1/Task-3/report.md b/Week-1/Task-3/report.md index a017c0d..5da636c 100644 --- a/Week-1/Task-3/report.md +++ b/Week-1/Task-3/report.md @@ -1,60 +1,79 @@ -# Task: [Feature Name] +# Task 3 Report: [Hover Interaction (Visual Feedback)] ## Objective -What is the feature trying to do? +When the user hovers over the 3D object, something changes visually (e.g., color, scale). -## Vanilla three.js --Possible: Yes / Partial / No --Notes: --Key concepts: --Complexity: Easy / Medium / Hard +## Vanilla Three.js +- Possible: **Yes** +- Notes: Requires setting up a `Raycaster`, calculating **Normalized Device Coordinates (NDC)** for the mouse, and manually toggling states inside a `mousemove` event listener. +- Key concepts: `THREE.Raycaster`, `mousemove`, `NDC calculation`, `Manual State Management`. +- Complexity: **Medium** (High math/boilerplate). ## R3F --Possible: Yes / Partial / No --Notes: --What R3F abstracted: --Complexity: Easy / Medium / Hard +- Possible: **Yes** +- Notes: Extremely intuitive. Built-in `onPointerOver` and `onPointerOut` props handle everything declaratively. State management is simple with `useState`. +- What R3F abstracted: `Raycaster computation`, `Normalized Coordinates`, `Event-to-Mesh mapping`. +- Complexity: **Easy** (Very concise, 5-10 lines of code). ## Thob Page Builder --Possible: Yes / Partial / No --Notes: --Builder steps: --Complexity: Easy / Medium / Hard +- Possible: **No (for hover interaction)** +- Notes: + - Hover interaction is not supported in the current UI + - Click trigger exists but did not produce consistent results during testing + - Interaction system appears limited or unstable for dynamic visual feedback +- Complexity: **Limited** (interaction features not fully functional) + +--- ## Comparison Summary --Possible in all 3? Yes / Partial / No --Main differences: --Where Thob is better: --Where Thob is weaker: --What feels awkward or unclear: -## Limitation Type (if any) --[ ] Editor UX limitation --[ ] Runtime limitation --[ ] Schema / data model limitation --[ ] Component limitation --[ ] Event system limitation --[ ] Asset pipeline limitation --[ ] Unknown / needs investigation +- Possible in all 3? **No** (hover interaction not supported in builder) + +- Main differences: + - **Vanilla**: Powerful but requires manual setup + - **R3F**: Simplest and most reliable interaction system + - **Thob**: Limited interaction support; hover missing and click behavior unclear + +- Where Thob is better: + - **Static visual prototyping** + +- Where Thob is weaker: + - **Interaction system reliability** + - Lack of hover support + - Unclear event-to-property binding + +- What feels awkward or unclear: + - Interaction triggers are visible but behavior is not always predictable + +--- + +## Limitation Type + +- [ ] Editor UX limitation +- [x] Runtime limitation (event execution unclear) +- [ ] Schema / data model limitation +- [ ] Component limitation +- [x] Event system limitation +- [x] Property binding limitation +- [ ] Asset pipeline limitation + +--- ## Workaround --Is there a workaround? --If yes, what is it? + +- No reliable workaround found for hover interaction +- Click interaction may require further investigation or configuration + +--- ## Suggested Improvement --What should improve in Thob? --Is it: - -editor - -runtime - -component - -UX - -schema/data -## Difficulty Estimate --Easy / Medium / Hard +- Improve reliability of event execution (e.g., onClick behavior) +- Introduce hover interaction support (`onHoverStart`, `onHoverEnd`) +- Provide clearer feedback when event actions fail -## Business Value --Low / Medium / High +--- ## Recommendation -Should Thob support this better? Why? + +To enable interactive 3D experiences, the builder should strengthen its event system, ensuring reliable execution of click triggers and adding support for hover-based interactions. \ No newline at end of file