Skip to content

Fix room surfaces, wall openings, and paint scope#498

Merged
wass08 merged 3 commits into
mainfrom
fix/door-slab-z-fighting
Jul 15, 2026
Merged

Fix room surfaces, wall openings, and paint scope#498
wass08 merged 3 commits into
mainfrom
fix/door-slab-z-fighting

Conversation

@wass08

@wass08 wass08 commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • point wood, flooring, and roofing material presets at their KTX2 texture tiers
  • eliminate door/garage-door floor z-fighting by aligning visible geometry and extending flat-bottom wall cutouts below the wall base
  • render recessed slabs correctly against site planes and allow slab elevation controls to cross zero
  • resolve whole-room wall painting by the clicked boundary face, including connected exterior envelopes
  • preserve manually edited and split slab footprints across room reconciliation and reload
  • reduce shadow bias that visually detached wall-base shadows

Test plan

  • bun run typecheck
  • bun run build
  • 74 focused Core, Editor, Nodes, and Viewer regression tests
  • Preview deployment verified through the private-editor integration PR

🤖 Generated with Codex

wass08 and others added 3 commits July 15, 2026 16:07
…oofing finishes

All 48 remaining webp/jpg/png finish entries now reference _512.ktx2 maps
and 256px _thumb.webp previews, matching the fabric/leather/concrete/metal
convention. flipY set to false on the converted entries — compressed
textures can't be flipped at upload.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3c762e3. Configure here.

wall.start[0] + local.x * cos - local.z * sin,
wall.start[1] + local.x * sin + local.z * cos,
],
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curved wall room paint

Medium Severity

Room-scope wall painting now depends on resolveWallPaintHit, which maps the click to a plan point using a straight chord from wall.start/wall.end and mesh-local x. Curved walls use sampled polylines in boundaryFaces, so the hit point and face often miss the correct subsegment and resolveWallPaintSpace falls back to a single surface or the wrong room.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3c762e3. Configure here.

if (boundary.wallId !== wall.id || boundary.face !== wallHit.face) continue
const distance = distanceToPolyline(wallHit.point, boundary.points)
if (distance > tolerance || (best && distance >= best.distance)) continue
best = { space, distance }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Room paint tie breaks arbitrarily

Medium Severity

When two spaces share the same wall face and the click is equidistant from both boundary polylines, resolveWallPaintSpace keeps the first match and skips later ties via distance >= best.distance. The winner follows Object.values(spaces) order, so room-scope paint can target the wrong room without a stable rule.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3c762e3. Configure here.

@wass08 wass08 merged commit a524da1 into main Jul 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant