diff --git a/apps/editor/app/page.tsx b/apps/editor/app/page.tsx index d48a82e8..ee705ac8 100644 --- a/apps/editor/app/page.tsx +++ b/apps/editor/app/page.tsx @@ -6,6 +6,13 @@ import { ViewerToolbarLeft, ViewerToolbarRight, } from '@pascal-app/editor' +import { useScene } from '@pascal-app/core' + +// Dev-only: expose the scene store on window so MCP can inject a built +// scene into the running editor for visual verification. No-op in prod. +if (typeof window !== 'undefined' && process.env.NODE_ENV !== 'production') { + ;(window as unknown as { __pascalScene?: typeof useScene }).__pascalScene = useScene +} const SIDEBAR_TABS: (SidebarTab & { component: React.ComponentType })[] = [ { diff --git a/apps/editor/public/dev/casa-sol.json b/apps/editor/public/dev/casa-sol.json new file mode 100644 index 00000000..975f1789 --- /dev/null +++ b/apps/editor/public/dev/casa-sol.json @@ -0,0 +1,1305 @@ +{ + "nodes": { + "site_3ss5ro12ozrgtdbf": { + "object": "node", + "id": "site_3ss5ro12ozrgtdbf", + "type": "site", + "parentId": null, + "visible": true, + "metadata": {}, + "polygon": { + "type": "polygon", + "points": [ + [ + -15, + -15 + ], + [ + 15, + -15 + ], + [ + 15, + 15 + ], + [ + -15, + 15 + ] + ] + }, + "children": [ + { + "object": "node", + "id": "building_hhprs7o5kz0q2qo7", + "type": "building", + "parentId": null, + "visible": true, + "metadata": {}, + "children": [ + "level_9ded0vdlfag09tdt" + ], + "position": [ + 0, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ] + } + ] + }, + "building_hhprs7o5kz0q2qo7": { + "object": "node", + "id": "building_hhprs7o5kz0q2qo7", + "type": "building", + "parentId": null, + "visible": true, + "metadata": {}, + "children": [ + "level_9ded0vdlfag09tdt" + ], + "position": [ + 0, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ] + }, + "level_9ded0vdlfag09tdt": { + "object": "node", + "id": "level_9ded0vdlfag09tdt", + "type": "level", + "parentId": null, + "visible": true, + "metadata": {}, + "children": [ + "wall_vc5l8mk2b3j3ukvq", + "wall_9jaybb53j2r5j5en", + "wall_a16b1eirqz5p9f98", + "wall_yiwfcyw716g5ql5y", + "wall_9vmyxyv2kea0t2vn", + "wall_53gr0rtp1ssmxvz2", + "wall_yzuosc4u4z0a9jqo", + "wall_eeogjzcwm711gzam", + "wall_3mznfrklw8ar7jrz", + "zone_b51zjgfr0cgc7ncc", + "zone_x409m2lnw1jpmi8m", + "zone_and0s1ux5v8rexj6", + "zone_n8w3oyzr3c4ovcbu", + "zone_c1wa4cr91h215zzk", + "zone_e8e6qqmx85tockrm", + "zone_ebbidjjln9doosy5", + "zone_av8rfpjgcpmpx4pb", + "slab_tqyxze2hshzm1it3", + "fence_hnhjl6vicj3fs234", + "fence_me6wvw6rf93y2um4", + "fence_af22csiukvc7gjyf", + "fence_lp6d7gkrado9z0cc", + "fence_a09o9w183o453oqh", + "zone_gtpdocou2nceicp9" + ], + "level": 0 + }, + "wall_vc5l8mk2b3j3ukvq": { + "object": "node", + "id": "wall_vc5l8mk2b3j3ukvq", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [ + "door_v19tfw6dbg60pjka", + "door_57wgnpcft27n51ui", + "window_6lkp36vh0kpe8vsl", + "window_8klttdg0qbxw0v6h" + ], + "thickness": 0.2, + "height": 2.7, + "start": [ + -8, + 4 + ], + "end": [ + 4, + 4 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_9jaybb53j2r5j5en": { + "object": "node", + "id": "wall_9jaybb53j2r5j5en", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [ + "door_lv8wmjjs6em9ayqg", + "window_qy4pp3lwyn5cq2u1" + ], + "thickness": 0.2, + "height": 2.7, + "start": [ + -8, + -4 + ], + "end": [ + 4, + -4 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_a16b1eirqz5p9f98": { + "object": "node", + "id": "wall_a16b1eirqz5p9f98", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [ + "window_r9mc8jkp0dem9s8u" + ], + "thickness": 0.2, + "height": 2.7, + "start": [ + -8, + -4 + ], + "end": [ + -8, + 4 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_yiwfcyw716g5ql5y": { + "object": "node", + "id": "wall_yiwfcyw716g5ql5y", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [ + "window_bbmwfj9hjxfz6y7c", + "window_19otr8qt84hke69s" + ], + "thickness": 0.2, + "height": 2.7, + "start": [ + 4, + -4 + ], + "end": [ + 4, + 4 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_9vmyxyv2kea0t2vn": { + "object": "node", + "id": "wall_9vmyxyv2kea0t2vn", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [], + "thickness": 0.2, + "height": 2.7, + "start": [ + -1, + 0 + ], + "end": [ + -1, + 4 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_53gr0rtp1ssmxvz2": { + "object": "node", + "id": "wall_53gr0rtp1ssmxvz2", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [ + "door_g1ffn08lohho4vf0" + ], + "thickness": 0.2, + "height": 2.7, + "start": [ + -1, + -4 + ], + "end": [ + -1, + 0 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_yzuosc4u4z0a9jqo": { + "object": "node", + "id": "wall_yzuosc4u4z0a9jqo", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [ + "door_zuyuxee4afd5ae0o" + ], + "thickness": 0.2, + "height": 2.7, + "start": [ + -4, + -4 + ], + "end": [ + -4, + 0 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_eeogjzcwm711gzam": { + "object": "node", + "id": "wall_eeogjzcwm711gzam", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [], + "thickness": 0.2, + "height": 2.7, + "start": [ + -4, + -1 + ], + "end": [ + -1, + -1 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "wall_3mznfrklw8ar7jrz": { + "object": "node", + "id": "wall_3mznfrklw8ar7jrz", + "type": "wall", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "children": [ + "door_n4kgjkvq18a87rh0" + ], + "thickness": 0.2, + "height": 2.7, + "start": [ + -4, + -2 + ], + "end": [ + -1, + -2 + ], + "frontSide": "unknown", + "backSide": "unknown" + }, + "zone_b51zjgfr0cgc7ncc": { + "object": "node", + "id": "zone_b51zjgfr0cgc7ncc", + "type": "zone", + "name": "living-dining", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + -8, + 0 + ], + [ + -1, + 0 + ], + [ + -1, + 4 + ], + [ + -8, + 4 + ] + ], + "color": "#3b82f6" + }, + "zone_x409m2lnw1jpmi8m": { + "object": "node", + "id": "zone_x409m2lnw1jpmi8m", + "type": "zone", + "name": "kitchen", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + -1, + 0 + ], + [ + 4, + 0 + ], + [ + 4, + 4 + ], + [ + -1, + 4 + ] + ], + "color": "#3b82f6" + }, + "zone_and0s1ux5v8rexj6": { + "object": "node", + "id": "zone_and0s1ux5v8rexj6", + "type": "zone", + "name": "bedroom-2", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + -8, + -4 + ], + [ + -4, + -4 + ], + [ + -4, + 0 + ], + [ + -8, + 0 + ] + ], + "color": "#3b82f6" + }, + "zone_n8w3oyzr3c4ovcbu": { + "object": "node", + "id": "zone_n8w3oyzr3c4ovcbu", + "type": "zone", + "name": "hallway", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + -4, + -2 + ], + [ + -1, + -2 + ], + [ + -1, + -1 + ], + [ + -4, + -1 + ] + ], + "color": "#3b82f6" + }, + "zone_c1wa4cr91h215zzk": { + "object": "node", + "id": "zone_c1wa4cr91h215zzk", + "type": "zone", + "name": "bathroom-2", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + -4, + -4 + ], + [ + -1, + -4 + ], + [ + -1, + -2 + ], + [ + -4, + -2 + ] + ], + "color": "#3b82f6" + }, + "zone_e8e6qqmx85tockrm": { + "object": "node", + "id": "zone_e8e6qqmx85tockrm", + "type": "zone", + "name": "bathroom-1", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + -4, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + 0 + ], + [ + -4, + 0 + ] + ], + "color": "#3b82f6" + }, + "zone_ebbidjjln9doosy5": { + "object": "node", + "id": "zone_ebbidjjln9doosy5", + "type": "zone", + "name": "master-bedroom", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + -1, + -4 + ], + [ + 4, + -4 + ], + [ + 4, + 0 + ], + [ + -1, + 0 + ] + ], + "color": "#3b82f6" + }, + "door_v19tfw6dbg60pjka": { + "object": "node", + "id": "door_v19tfw6dbg60pjka", + "type": "door", + "parentId": "wall_vc5l8mk2b3j3ukvq", + "visible": true, + "metadata": {}, + "position": [ + 0.2, + 1.05, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_vc5l8mk2b3j3ukvq", + "width": 0.9, + "height": 2.1, + "frameThickness": 0.05, + "frameDepth": 0.07, + "threshold": true, + "thresholdHeight": 0.02, + "hingesSide": "left", + "swingDirection": "inward", + "segments": [ + { + "type": "panel", + "heightRatio": 0.4, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + }, + { + "type": "panel", + "heightRatio": 0.6, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + } + ], + "handle": true, + "handleHeight": 1.05, + "handleSide": "right", + "contentPadding": [ + 0.04, + 0.04 + ], + "doorCloser": false, + "panicBar": false, + "panicBarHeight": 1 + }, + "door_57wgnpcft27n51ui": { + "object": "node", + "id": "door_57wgnpcft27n51ui", + "type": "door", + "parentId": "wall_vc5l8mk2b3j3ukvq", + "visible": true, + "metadata": {}, + "position": [ + 0.75, + 1.05, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_vc5l8mk2b3j3ukvq", + "width": 2.2, + "height": 2.1, + "frameThickness": 0.05, + "frameDepth": 0.07, + "threshold": true, + "thresholdHeight": 0.02, + "hingesSide": "left", + "swingDirection": "inward", + "segments": [ + { + "type": "panel", + "heightRatio": 0.4, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + }, + { + "type": "panel", + "heightRatio": 0.6, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + } + ], + "handle": true, + "handleHeight": 1.05, + "handleSide": "right", + "contentPadding": [ + 0.04, + 0.04 + ], + "doorCloser": false, + "panicBar": false, + "panicBarHeight": 1 + }, + "door_lv8wmjjs6em9ayqg": { + "object": "node", + "id": "door_lv8wmjjs6em9ayqg", + "type": "door", + "parentId": "wall_9jaybb53j2r5j5en", + "visible": true, + "metadata": {}, + "position": [ + 0.65, + 1.05, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_9jaybb53j2r5j5en", + "width": 0.9, + "height": 2.1, + "frameThickness": 0.05, + "frameDepth": 0.07, + "threshold": true, + "thresholdHeight": 0.02, + "hingesSide": "left", + "swingDirection": "inward", + "segments": [ + { + "type": "panel", + "heightRatio": 0.4, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + }, + { + "type": "panel", + "heightRatio": 0.6, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + } + ], + "handle": true, + "handleHeight": 1.05, + "handleSide": "right", + "contentPadding": [ + 0.04, + 0.04 + ], + "doorCloser": false, + "panicBar": false, + "panicBarHeight": 1 + }, + "door_g1ffn08lohho4vf0": { + "object": "node", + "id": "door_g1ffn08lohho4vf0", + "type": "door", + "parentId": "wall_53gr0rtp1ssmxvz2", + "visible": true, + "metadata": {}, + "position": [ + 0.3, + 1.05, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_53gr0rtp1ssmxvz2", + "width": 0.8, + "height": 2.1, + "frameThickness": 0.05, + "frameDepth": 0.07, + "threshold": true, + "thresholdHeight": 0.02, + "hingesSide": "left", + "swingDirection": "inward", + "segments": [ + { + "type": "panel", + "heightRatio": 0.4, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + }, + { + "type": "panel", + "heightRatio": 0.6, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + } + ], + "handle": true, + "handleHeight": 1.05, + "handleSide": "right", + "contentPadding": [ + 0.04, + 0.04 + ], + "doorCloser": false, + "panicBar": false, + "panicBarHeight": 1 + }, + "door_zuyuxee4afd5ae0o": { + "object": "node", + "id": "door_zuyuxee4afd5ae0o", + "type": "door", + "parentId": "wall_yzuosc4u4z0a9jqo", + "visible": true, + "metadata": {}, + "position": [ + 0.5, + 1.05, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_yzuosc4u4z0a9jqo", + "width": 0.8, + "height": 2.1, + "frameThickness": 0.05, + "frameDepth": 0.07, + "threshold": true, + "thresholdHeight": 0.02, + "hingesSide": "left", + "swingDirection": "inward", + "segments": [ + { + "type": "panel", + "heightRatio": 0.4, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + }, + { + "type": "panel", + "heightRatio": 0.6, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + } + ], + "handle": true, + "handleHeight": 1.05, + "handleSide": "right", + "contentPadding": [ + 0.04, + 0.04 + ], + "doorCloser": false, + "panicBar": false, + "panicBarHeight": 1 + }, + "door_n4kgjkvq18a87rh0": { + "object": "node", + "id": "door_n4kgjkvq18a87rh0", + "type": "door", + "parentId": "wall_3mznfrklw8ar7jrz", + "visible": true, + "metadata": {}, + "position": [ + 0.5, + 1, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_3mznfrklw8ar7jrz", + "width": 0.7, + "height": 2, + "frameThickness": 0.05, + "frameDepth": 0.07, + "threshold": true, + "thresholdHeight": 0.02, + "hingesSide": "left", + "swingDirection": "inward", + "segments": [ + { + "type": "panel", + "heightRatio": 0.4, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + }, + { + "type": "panel", + "heightRatio": 0.6, + "columnRatios": [ + 1 + ], + "dividerThickness": 0.03, + "panelDepth": 0.01, + "panelInset": 0.04 + } + ], + "handle": true, + "handleHeight": 1.05, + "handleSide": "right", + "contentPadding": [ + 0.04, + 0.04 + ], + "doorCloser": false, + "panicBar": false, + "panicBarHeight": 1 + }, + "window_6lkp36vh0kpe8vsl": { + "object": "node", + "id": "window_6lkp36vh0kpe8vsl", + "type": "window", + "parentId": "wall_vc5l8mk2b3j3ukvq", + "visible": true, + "metadata": {}, + "position": [ + 0.3, + 0.7, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_vc5l8mk2b3j3ukvq", + "width": 2, + "height": 1.4, + "frameThickness": 0.05, + "frameDepth": 0.07, + "columnRatios": [ + 1 + ], + "rowRatios": [ + 1 + ], + "columnDividerThickness": 0.03, + "rowDividerThickness": 0.03, + "sill": true, + "sillDepth": 0.08, + "sillThickness": 0.03 + }, + "window_8klttdg0qbxw0v6h": { + "object": "node", + "id": "window_8klttdg0qbxw0v6h", + "type": "window", + "parentId": "wall_vc5l8mk2b3j3ukvq", + "visible": true, + "metadata": {}, + "position": [ + 0.45, + 0.7, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_vc5l8mk2b3j3ukvq", + "width": 1.4, + "height": 1.4, + "frameThickness": 0.05, + "frameDepth": 0.07, + "columnRatios": [ + 1 + ], + "rowRatios": [ + 1 + ], + "columnDividerThickness": 0.03, + "rowDividerThickness": 0.03, + "sill": true, + "sillDepth": 0.08, + "sillThickness": 0.03 + }, + "window_r9mc8jkp0dem9s8u": { + "object": "node", + "id": "window_r9mc8jkp0dem9s8u", + "type": "window", + "parentId": "wall_a16b1eirqz5p9f98", + "visible": true, + "metadata": {}, + "position": [ + 0.25, + 0.55, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_a16b1eirqz5p9f98", + "width": 1, + "height": 1.1, + "frameThickness": 0.05, + "frameDepth": 0.07, + "columnRatios": [ + 1 + ], + "rowRatios": [ + 1 + ], + "columnDividerThickness": 0.03, + "rowDividerThickness": 0.03, + "sill": true, + "sillDepth": 0.08, + "sillThickness": 0.03 + }, + "window_bbmwfj9hjxfz6y7c": { + "object": "node", + "id": "window_bbmwfj9hjxfz6y7c", + "type": "window", + "parentId": "wall_yiwfcyw716g5ql5y", + "visible": true, + "metadata": {}, + "position": [ + 0.25, + 0.7, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_yiwfcyw716g5ql5y", + "width": 1.4, + "height": 1.4, + "frameThickness": 0.05, + "frameDepth": 0.07, + "columnRatios": [ + 1 + ], + "rowRatios": [ + 1 + ], + "columnDividerThickness": 0.03, + "rowDividerThickness": 0.03, + "sill": true, + "sillDepth": 0.08, + "sillThickness": 0.03 + }, + "window_19otr8qt84hke69s": { + "object": "node", + "id": "window_19otr8qt84hke69s", + "type": "window", + "parentId": "wall_yiwfcyw716g5ql5y", + "visible": true, + "metadata": {}, + "position": [ + 0.75, + 0.7, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_yiwfcyw716g5ql5y", + "width": 1.4, + "height": 1.4, + "frameThickness": 0.05, + "frameDepth": 0.07, + "columnRatios": [ + 1 + ], + "rowRatios": [ + 1 + ], + "columnDividerThickness": 0.03, + "rowDividerThickness": 0.03, + "sill": true, + "sillDepth": 0.08, + "sillThickness": 0.03 + }, + "window_qy4pp3lwyn5cq2u1": { + "object": "node", + "id": "window_qy4pp3lwyn5cq2u1", + "type": "window", + "parentId": "wall_9jaybb53j2r5j5en", + "visible": true, + "metadata": {}, + "position": [ + 0.3, + 0.3, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "wallId": "wall_9jaybb53j2r5j5en", + "width": 0.8, + "height": 0.6, + "frameThickness": 0.05, + "frameDepth": 0.07, + "columnRatios": [ + 1 + ], + "rowRatios": [ + 1 + ], + "columnDividerThickness": 0.03, + "rowDividerThickness": 0.03, + "sill": true, + "sillDepth": 0.08, + "sillThickness": 0.03 + }, + "zone_av8rfpjgcpmpx4pb": { + "object": "node", + "id": "zone_av8rfpjgcpmpx4pb", + "type": "zone", + "name": "pool", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": { + "kind": "pool", + "depthM": 1.8, + "finish": "tile" + }, + "polygon": [ + [ + 5, + -1.5 + ], + [ + 10, + -1.5 + ], + [ + 10, + 1.5 + ], + [ + 5, + 1.5 + ] + ], + "color": "#3b82f6" + }, + "slab_tqyxze2hshzm1it3": { + "object": "node", + "id": "slab_tqyxze2hshzm1it3", + "type": "slab", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "polygon": [ + [ + 5, + -1.5 + ], + [ + 10, + -1.5 + ], + [ + 10, + 1.5 + ], + [ + 5, + 1.5 + ] + ], + "holes": [], + "holeMetadata": [], + "elevation": -1.8, + "autoFromWalls": false + }, + "fence_hnhjl6vicj3fs234": { + "object": "node", + "id": "fence_hnhjl6vicj3fs234", + "type": "fence", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "start": [ + -10, + 7.5 + ], + "end": [ + -1, + 7.5 + ], + "height": 1.8, + "thickness": 0.08, + "baseHeight": 0.22, + "postSpacing": 2, + "postSize": 0.1, + "topRailHeight": 0.04, + "groundClearance": 0, + "edgeInset": 0.015, + "baseStyle": "grounded", + "color": "#ffffff", + "style": "privacy" + }, + "fence_me6wvw6rf93y2um4": { + "object": "node", + "id": "fence_me6wvw6rf93y2um4", + "type": "fence", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "start": [ + 1, + 7.5 + ], + "end": [ + 10, + 7.5 + ], + "height": 1.8, + "thickness": 0.08, + "baseHeight": 0.22, + "postSpacing": 2, + "postSize": 0.1, + "topRailHeight": 0.04, + "groundClearance": 0, + "edgeInset": 0.015, + "baseStyle": "grounded", + "color": "#ffffff", + "style": "privacy" + }, + "fence_af22csiukvc7gjyf": { + "object": "node", + "id": "fence_af22csiukvc7gjyf", + "type": "fence", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "start": [ + 10, + 7.5 + ], + "end": [ + 10, + -7.5 + ], + "height": 1.8, + "thickness": 0.08, + "baseHeight": 0.22, + "postSpacing": 2, + "postSize": 0.1, + "topRailHeight": 0.04, + "groundClearance": 0, + "edgeInset": 0.015, + "baseStyle": "grounded", + "color": "#ffffff", + "style": "privacy" + }, + "fence_lp6d7gkrado9z0cc": { + "object": "node", + "id": "fence_lp6d7gkrado9z0cc", + "type": "fence", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "start": [ + 10, + -7.5 + ], + "end": [ + -10, + -7.5 + ], + "height": 1.8, + "thickness": 0.08, + "baseHeight": 0.22, + "postSpacing": 2, + "postSize": 0.1, + "topRailHeight": 0.04, + "groundClearance": 0, + "edgeInset": 0.015, + "baseStyle": "grounded", + "color": "#ffffff", + "style": "privacy" + }, + "fence_a09o9w183o453oqh": { + "object": "node", + "id": "fence_a09o9w183o453oqh", + "type": "fence", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": {}, + "start": [ + -10, + -7.5 + ], + "end": [ + -10, + 7.5 + ], + "height": 1.8, + "thickness": 0.08, + "baseHeight": 0.22, + "postSpacing": 2, + "postSize": 0.1, + "topRailHeight": 0.04, + "groundClearance": 0, + "edgeInset": 0.015, + "baseStyle": "grounded", + "color": "#ffffff", + "style": "privacy" + }, + "zone_gtpdocou2nceicp9": { + "object": "node", + "id": "zone_gtpdocou2nceicp9", + "type": "zone", + "name": "garden", + "parentId": "level_9ded0vdlfag09tdt", + "visible": true, + "metadata": { + "kind": "garden" + }, + "polygon": [ + [ + -10, + -7.5 + ], + [ + 10, + -7.5 + ], + [ + 10, + 7.5 + ], + [ + -10, + 7.5 + ] + ], + "color": "#3b82f6" + } + }, + "rootNodeIds": [ + "site_3ss5ro12ozrgtdbf" + ], + "collections": {} +} \ No newline at end of file