From c717c0c13d59af415e285c840e6c4bb125eb16fe Mon Sep 17 00:00:00 2001 From: Wassim SAMAD Date: Tue, 16 Jun 2026 12:43:13 -0400 Subject: [PATCH] fix(shelf): tuck cubby cell dividers into the boards they meet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cubby per-cell dividers landed exactly flush on the board below and under the board above — coplanar faces that shimmer and read as merged into the shelf. Extend each divider 1mm into both boards (centre unchanged) so it tucks under the top board and onto the bottom board with a solid, seam-free join. Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/nodes/src/shelf/geometry.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/nodes/src/shelf/geometry.ts b/packages/nodes/src/shelf/geometry.ts index 12bc208c..a3cc1acc 100644 --- a/packages/nodes/src/shelf/geometry.ts +++ b/packages/nodes/src/shelf/geometry.ts @@ -350,7 +350,13 @@ function buildCubby(group: Group, node: ShelfNode, materials: ShelfSlotMaterials for (let c = 1; c < node.columns; c++) { const x = -innerWidth / 2 + c * colStep const divider = stampShelfSlot( - new Mesh(new BoxGeometry(node.thickness, dividerHeight, node.depth), materials.frame), + // Extend 1mm into the boards above + below (centre unchanged) so the + // divider tucks under the top board and onto the bottom board instead + // of meeting them on a coplanar face (which shimmers / reads merged). + new Mesh( + new BoxGeometry(node.thickness, dividerHeight + 2 * BOARD_INSET, node.depth), + materials.frame, + ), 'frame', ) divider.name = `shelf-divider-${r}-${c}`