From ecb7fc26fb0889c99eedf3c4f83bd4b2220374b2 Mon Sep 17 00:00:00 2001 From: anshk Date: Fri, 27 Mar 2026 20:10:27 +0530 Subject: [PATCH] chore: added buildernotes for task2 --- Week-1/Task-2/builder/BuilderNotes.md | 141 ++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 Week-1/Task-2/builder/BuilderNotes.md diff --git a/Week-1/Task-2/builder/BuilderNotes.md b/Week-1/Task-2/builder/BuilderNotes.md new file mode 100644 index 0000000..ede361b --- /dev/null +++ b/Week-1/Task-2/builder/BuilderNotes.md @@ -0,0 +1,141 @@ +# Builder Notes (Thob) — Task 2: Parent-Child-Grandchild Hierarchy + +## Scope + +- This task extends Task 1 from a 2-level hierarchy (parent-child) to a 3-level hierarchy: + - Sun (parent) + - Earth (child) + - Moon (grandchild) + +## Expected Behavior + +- Moving/scaling Sun should affect Earth and Moon. +- Moving/scaling Earth should affect Moon but not Sun. +- Moving/scaling Moon should affect only Moon. +- Local orbit controls should remain stable when parent transforms change. + +## Evaluation + +### Are transforms predictable? + +- **Observation:** Partially predictable. +- **What seems to work:** Basic parent inheritance generally works. +- **Risk area:** Multi-level nested local edits can become hard to trust, especially when parent scale and child position both change. + +### Is it easy to reason about local vs inherited motion? + +- **Observation:** Not always. +- **Reason:** In the visual editor, it is not always explicit whether a value is local to the selected object or the result of parent inheritance. +- **Impact:** Harder debugging when Moon behavior is unexpectedly affected by Sun/Earth changes. + +### Does the builder make hierarchy understandable? + +- **Observation:** Partially. +- **Positive:** Creating parent-child links is quick and intuitive. +- **Gap:** Understanding final motion in deeper hierarchies needs better transform visibility and clearer hierarchy debugging tools. + +## Builder Flow Used (Task 2) + +1. Create Sun mesh as root object. +2. Add Earth as child of Sun. +3. Add Moon as child of Earth. +4. Validate transform inheritance at each depth level. +5. Test local edits on Earth and Moon independently. + +## Main Limitation Signals + +- Editor UX: Limited visibility into local vs world/inherited transform values. +- Runtime/Component: Nested transform interactions can be difficult to reason about as hierarchy depth increases. + +## Workaround Attempt + +- Keep transforms simple and incremental. +- Test one hierarchy level at a time before combining all levels. +- Avoid aggressive parent scaling before child/grandchild positioning is finalized. + +## Suggested Product Improvements + +1. Show explicit local and world transform values side-by-side. +2. Add hierarchy debugging mode to highlight inheritance path (Sun -> Earth -> Moon). +3. Add transform source indicators (local override vs inherited contribution). +4. Improve nested pivot stability when parent scale and child position are both edited. + +## Console Logs from Builder Webpage +## Console Warnings/Errors Seen (Deduplicated) and Probable Meaning + +### warn: `No HydrateFallback element provided to render during initial hydration` +- **Type:** SSR/CSR hydration warning. +- **Probable meaning:** UI expects a fallback during hydration but none is configured. +- **Impact:** Can cause temporary blank/flash states and inconsistent first paint in editor panels. + +### warn: `Component is changing from uncontrolled to controlled` (Tabs / Popover / RadioGroup / undefined) +- **Type:** React state-management warning. +- **Probable meaning:** Components mount with no stable value (`undefined`) and later receive a controlled value. +- **Impact:** Property panel controls may behave inconsistently (selection reset, unexpected toggles, unstable form state). + +### warn: `Permissions-Policy header: Unrecognized feature 'browsing-topics'` +- **Type:** Browser/header compatibility warning. +- **Probable meaning:** Server sends a policy directive not recognized by the current browser. +- **Impact:** Usually low for scene behavior; mostly noise unless strict policy handling is required. + +### warn: `GetBindingData... method already registered` (many IDs) +- **Type:** Duplicate registration warning. +- **Probable meaning:** Binding handlers are registered repeatedly across rerenders/reconnects without cleanup. +- **Impact:** High log noise, potential duplicate updates, performance degradation, and confusing transform propagation behavior. + +### warn: `resetPOI method already registered` +- **Type:** Duplicate command registration warning. +- **Probable meaning:** POI reset handler attached multiple times. +- **Impact:** Same action can fire multiple times; camera/selection state may drift. + +### warn: `update-static-component-prop method already registered` +- **Type:** Duplicate command registration warning. +- **Probable meaning:** Static prop update pipeline is attached repeatedly. +- **Impact:** Duplicate property writes and unstable editor state during transform edits. + +### error: `THREE.GLTFLoader: Invalid plugin found: missing name` +- **Type:** Asset loader/plugin error. +- **Probable meaning:** A GLTF loader plugin is passed with invalid shape or missing `name` field. +- **Impact:** Model import/plugin extension paths may fail partially and emit follow-up rendering issues. + +### warn: `THREE.MaterialLoader: Undefined texture null` +- **Type:** Material/asset reference warning. +- **Probable meaning:** Material expects a texture reference but receives `null`. +- **Impact:** Missing/incorrect material rendering; usually non-fatal but degrades visual fidelity. + +### error: `Cannot read properties of null (reading 'contentWindow')` +- **Type:** Runtime exception. +- **Probable meaning:** Code attempts to post/sync to an iframe/window that is not mounted or already disposed. +- **Impact:** Sync/preview communication can break, causing editor-preview mismatch. + +### info/warn: `ReconnectingWebSocket reconnecting/open/syncing/...` +- **Type:** Collaboration transport reconnection events. +- **Probable meaning:** Socket drops and reconnects, then replays sync steps. +- **Impact:** Usually informational, but frequent reconnects correlate with duplicate registration warnings and state churn. + +### warn: `Icon component has been deprecated` +- **Type:** Deprecation warning. +- **Probable meaning:** Legacy icon API still used in parts of the editor UI. +- **Impact:** Low immediate risk; medium future break risk on upgrades. + +### error: `THREE.WebGLRenderer: Context Lost` +- **Type:** Graphics runtime error. +- **Probable meaning:** WebGL context dropped (resource pressure, repeated remounts, GPU/browser reset). +- **Impact:** Canvas can freeze/blank; transform testing becomes unreliable until context restoration. + +### error: `Failed to load resource: 404` +- **Type:** Network/resource error. +- **Probable meaning:** Requested project/resource ID or asset URL is missing/stale. +- **Impact:** Missing resources can trigger secondary loader/material warnings and broken scene state. + +### error: `R3F: Div is not part of the THREE namespace` +- **Type:** Critical scene composition/runtime error. +- **Probable meaning:** A DOM element (`Div`) was rendered inside the R3F scene tree without proper bridging/extension. +- **Impact:** Can fail rendering subtree, break scene updates, and invalidate hierarchy behavior testing. + +## Overall Read + +- Console output indicates significant editor/runtime instability beyond normal warning noise. +- Duplicate handler registration and uncontrolled/controlled state transitions are the dominant recurring signals. +- Rendering pipeline errors (`R3F Div`, `Context Lost`, loader/material issues) likely amplify unpredictability in parent-child-grandchild transform behavior. +- This log profile supports the Task 2 conclusion: hierarchy setup is possible, but transform predictability and local-vs-inherited reasoning are only partially reliable in current builder conditions.