88 lines
5.0 KiB
Markdown
88 lines
5.0 KiB
Markdown
# 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.
|