diff --git a/app/canvas/[id]/model3d/page.tsx b/app/canvas/[id]/model3d/page.tsx index 87d2fcaec..85c0a73aa 100644 --- a/app/canvas/[id]/model3d/page.tsx +++ b/app/canvas/[id]/model3d/page.tsx @@ -650,6 +650,8 @@ export default function CanvasModel3DPage() { const viewport = useCanvasStore(canvasSelectors.viewport); const addNode = useCanvasStore((state) => state.addNode); + const nodes = useCanvasStore(canvasSelectors.nodes); + const deleteNode = useCanvasStore((state) => state.deleteNode); const getCanvasState = useCanvasStore((state) => state.getCanvasState); const [workspaceMode, setWorkspaceMode] = useState("model"); @@ -2032,6 +2034,15 @@ export default function CanvasModel3DPage() { const y = (stageHeight * 0.45 - viewportY) / viewportZoom - targetHeight / 2; + if (isWorldTask) { + const worldNodeIds = nodes + .filter((node) => node.type === "world3d") + .map((node) => node.id); + for (const nodeId of worldNodeIds) { + deleteNode(nodeId); + } + } + addNode( isWorldTask ? {