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:
    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.