Skip to content

Example examples/gallery/meta-glasses.kcad.ts fails the physics-grounded loop #350

Description

@w1ne

Symptom

node dist/cli/index.js validate --include-interference examples/gallery/meta-glasses.kcad.ts reports mechanism: broken with 16 failures (10 mechanism.orphan-part, 6 mechanism.interpenetration).

Orphan parts: left/right smoked lens inserts, left/right Meta camera bezels + glass, left/right privacy LED diffusers, left/right electronics temples, left/right hinge barrel pairs, right touch-control strip — none of them are reached from the mate graph rooted at the frame.

Interpenetration: frame↔left/right temples (74 mm³), camera-bezel↔camera-glass (12 mm³), temple↔hinge-barrel pairs (103 mm³), right temple↔touch-strip (18 mm³).

Root cause

The meta-glasses build is decorative geometry without any mate edges (it's a static visual model). The new physics loop treats every part as needing a mate path to the frame; absent that, all decorative pieces flag as orphans, and their incidental contacts with each other flag as unexplained interpenetration.

Fix scope

Two reasonable approaches:

  1. Stop treating this as an assembly — author it as a single fused part (one big union, or a small number of parts joined by fastened mates with proper topology connectors) so the orphan + interpenetration criteria don't apply. ~hour of refactoring.
  2. Add fastened mates for every decorative piece (lens insert ↔ frame, camera bezel ↔ frame, etc.) and use topology-bound connectors so the rigidity check passes. ~2-3 hours given the part count.

Either way needs the offset trick from examples/kinematic/luxo-lamp.kcad.ts (SPRING_TEST_OFFSET) for the fastened mates to pass the rigidity invariant.

Spec

  • docs/specs/2026-06-01-physics-grounded-loop-design.md §criterion 4 / §criterion 2
  • docs/plans/2026-06-01-physics-loop-P3-sweep-and-demote.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    physics-loopExamples failing the physics-grounded loop (P3 sweep follow-ups)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions