5.0 KiB
5.0 KiB
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:
- Create Sun mesh.
- Add Earth mesh as child of Sun.
- Change Sun position/scale to verify inheritance.
- 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-Policydirective withbrowsing-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
namemetadata 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.