# Builder Notes (Thob) — Task 1: Parent-Child Hierarchy ## Thob Observations from Task Notes - **Possible:** Yes - **Implementation used:** Earth mesh was placed inside Sun mesh to create a parent-child relationship. - **What worked as expected:** - Changing Sun position moved Earth with it. - Changing Sun scale also scaled Earth (inherited transform behavior). - **Unexpected behavior observed:** - Changing Earth position directly caused visual distortion/stretch-like behavior as Earth moved farther from Sun. - **Builder flow used:** 1. Create Sun mesh. 2. Add Earth mesh as child of Sun. 3. Change Sun position/scale to verify inheritance. 4. Change Earth local position to test child transform. - **Complexity:** Easy - **Main limitation signals:** Editor UX + Component + Runtime concerns. - **Workaround status:** No reliable workaround found after trying multiple groups/flex layouts and different placement approaches. ## Console Warnings/Errors Seen (Deduplicated) and Probable Meaning ### warn: `Permissions-Policy header unrecognized feature ('browsing-topics')` - **Type:** Browser/header compatibility warning. - **Probable meaning:** A server response includes a `Permissions-Policy` directive with `browsing-topics`, but the browser/runtime does not recognize it. - **Impact:** Usually low for editor functionality; mostly noise unless policy enforcement is required. ### warn: `Component changing from uncontrolled to controlled` - **Type:** React state-management warning. - **Probable meaning:** UI components are initialized without a stable value and later receive a controlled value (or vice versa). - **Impact:** Can cause flaky UI behavior (selection glitches, inconsistent panel state), especially in property editors. ### warn: `GetBindingData... method already registered` - **Type:** Internal registration/duplicate listener warning. - **Probable meaning:** Binding handlers are being registered repeatedly (possibly on rerender/remount) without proper cleanup/de-duplication. - **Impact:** High log noise, possible duplicated updates, degraded performance over time. ### warn: `resetPOI/update-static-component-prop method already registered` - **Type:** Duplicate method registration warning. - **Probable meaning:** Same command/event pipeline is attached multiple times. - **Impact:** Multiple executions of one action, state drift, and performance overhead. ### error: `THREE.GLTFLoader invalid plugin (missing name)` - **Type:** Asset loader/plugin configuration error. - **Probable meaning:** A GLTF loader plugin object is passed without required `name` metadata or wrong plugin shape. - **Impact:** Model import pipeline may partially fail or skip plugin behavior. ### warn: `THREE.MaterialLoader undefined texture (null)` - **Type:** Asset/material reference warning. - **Probable meaning:** Material expects a texture slot but received `null`/missing reference. - **Impact:** Material may render incorrectly; not always fatal. ### error: `Cannot read properties of null (reading 'contentWindow')` - **Type:** Runtime exception. - **Probable meaning:** Code tries to post a message to an iframe/window that is not mounted or already destroyed. - **Impact:** Can break sync/preview communication and interrupt some editor actions. ### error: `THREE.WebGLRenderer context lost` - **Type:** Graphics runtime warning/error. - **Probable meaning:** WebGL context got dropped (GPU reset, heavy resource pressure, canvas recreation, or browser throttling). - **Impact:** Preview can freeze/black out until context is restored. ### error: `Failed to load resource (404)` - **Type:** Network/resource error. - **Probable meaning:** A referenced asset/component/resource ID does not exist or URL/path is stale. - **Impact:** Missing assets/components in scene and follow-up loader warnings. ### warn: `Icon component has been deprecated` - **Type:** Deprecation warning. - **Probable meaning:** Code path still uses an older icon API. - **Impact:** Non-blocking now, but future break risk if API is removed. ### warn: `ReconnectingWebSocket reconnecting/syncing events` - **Type:** Collaboration/sync transport logs. - **Probable meaning:** WebSocket connection dropped and resumed normal sync handshake. - **Impact:** Usually informational; frequent reconnects may indicate unstable connection/session. ### error: `R3F: Div is not part of the THREE namespace` - **Type:** Critical scene composition/runtime error. - **Probable meaning:** A DOM element (`Div`) is being rendered inside R3F 3D canvas tree where only Three.js objects (or properly extended objects) are valid. - **Impact:** Can break render subtree and cause scene/editor preview failures. ## Overall Read - The hierarchy feature itself works for basic parent transform inheritance. - The major risk signals are repeated duplicate registrations, controlled/uncontrolled UI transitions, and mixed runtime/render errors. - The distortion observed during child position edits aligns with the broader instability indicated by runtime/component warnings.