From 91d55fdc902bd0ca8eef7d3b00393c30871b806d Mon Sep 17 00:00:00 2001 From: divyap Date: Mon, 30 Mar 2026 23:39:39 +0530 Subject: [PATCH] docs: finalize task-2 comparison report and capability mapping --- Week-1/Task-2/report.md | 92 ++++++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 39 deletions(-) diff --git a/Week-1/Task-2/report.md b/Week-1/Task-2/report.md index a017c0d..a5a90b0 100644 --- a/Week-1/Task-2/report.md +++ b/Week-1/Task-2/report.md @@ -1,60 +1,74 @@ -# Task: [Feature Name] +# Task 2 Report: [Texture / Visual Surface Change] ## Objective -What is the feature trying to do? +Apply a texture or change the surface appearance of an object interactively. -## Vanilla three.js --Possible: Yes / Partial / No --Notes: --Key concepts: --Complexity: Easy / Medium / Hard +## Vanilla Three.js +- Possible: **Yes** +- Notes: Requires using `TextureLoader` to load assets and manually assigning the texture to the material's `map` property. +- Key concepts: `THREE.TextureLoader`, `Asset URL Management`, `Material Map`. +- Complexity: **Easy but verbose** (Needs explicit code for every asset loader). ## R3F --Possible: Yes / Partial / No --Notes: --What R3F abstracted: --Complexity: Easy / Medium / Hard +- Possible: **Yes** +- Notes: Highly efficient. The `useLoader` hook (with `TextureLoader`) handles asset loading declaratively and integrates with React Suspense. +- What R3F abstracted: `Loading callbacks`, `Declarative asset loading`, `Suspense integration`. +- Complexity: **Easy** (Very concise, 1-2 lines of code). ## Thob Page Builder --Possible: Yes / Partial / No --Notes: --Builder steps: --Complexity: Easy / Medium / Hard +- Possible: **Yes** +- Notes: **Significantly faster** than code-based approaches for simple asset application. You simply select a file or link a URL in the UI, and the mesh updates instantly. +- Builder steps: `Canvas > Mesh > Material > Map > Browse/URL`. +- Complexity: **Minimal** (Completely No-Code). ## Comparison Summary --Possible in all 3? Yes / Partial / No --Main differences: --Where Thob is better: --Where Thob is weaker: --What feels awkward or unclear: +- Possible in all 3? **Yes**. +- Key abstraction difference: + - Vanilla = imperative asset handling + - R3F = declarative asset loading + - Thob = UI-driven asset configuration + +- Main differences: + - **Vanilla**: Gives full control, but requires several lines of code for a single texture. + - **R3F**: The fastest way to write complex texture logic with simple code. + - **Thob**: The fastest overall for visual users. No code required for initial mapping. + +- Where Thob is better: **Applying a visual asset that you already have.** + +- Where Thob is weaker: + - **Asset error handling**. When a texture fails (like CORS/404 errors), it’s harder to debug than in code. + - **Limited flexibility for complex material setups**. Applying different textures to different faces of a single object is not straightforward compared to code-based approaches. + +- What feels awkward or unclear: + - The CORS issues for external assets make it difficult to link textures that aren't already in the Thob library. ## Limitation Type (if any) --[ ] Editor UX limitation --[ ] Runtime limitation --[ ] Schema / data model limitation --[ ] Component limitation --[ ] Event system limitation --[ ] Asset pipeline limitation --[ ] Unknown / needs investigation +- [ ] Editor UX limitation +- [x] Runtime limitation (CORS/URL fetching) +- [ ] Schema / data model limitation +- [ ] Component limitation +- [ ] Event system limitation +- [ ] Property binding limitation +- [x] Asset pipeline limitation +- [ ] Unknown / needs investigation ## Workaround --Is there a workaround? --If yes, what is it? +- Is there a workaround? **Yes**. Ensure all assets are uploaded directly to the Thob project rather than linking from external URLs to avoid CORS blocks. ## Suggested Improvement --What should improve in Thob? --Is it: - -editor - -runtime - -component - -UX - -schema/data +- What should improve in Thob? **Improve the asset importer** to handle external URL fetching with a proxy to avoid CORS blocks. Provide more descriptive "Map Loading" feedback in the UI. +- Is it: + - editor (Yes) + - runtime (Yes) + - component (No) + - UX (Yes) + - schema/data (Yes) ## Difficulty Estimate --Easy / Medium / Hard +- **Easy** ## Business Value --Low / Medium / High +- **High** (Asset application is a core part of 3D design workflows). ## Recommendation -Should Thob support this better? Why? +Thob is already **strong** in texture application. The speed advantage over R3F and Vanilla is clear for visual workflows. To make it production-ready, it should improve external asset handling and support more flexible material configurations. \ No newline at end of file