{"format":"graindraft-project","version":1,"exportedAt":"2026-10-11T02:18:37.815Z","project":{"name":"Floating Shelf","snapshot":{"bodies":[{"id":"top-panel","name":"Top Panel","length":19,"width":7,"thickness":0.5,"lengthExpr":"caseWidth","widthExpr":"caseDepth","thicknessExpr":"panelThickness","position":[0,2.3125,0],"rotation":[0,0,0],"material":{"species":"Plywood ½\"","color":"#e7dfd3","grainDir":0,"costPerBF":2.2,"grainScale":1,"grainOffset":0.137,"variation":1,"sawnPattern":"Plain","finish":"Raw"},"visible":true,"color":"#e7dfd3","componentId":"carcase","layout":{"kind":"formulaPosition","xExpr":"0","yExpr":"caseHeight - panelThickness / 2","zExpr":"0"}},{"id":"bottom-panel","name":"Bottom Panel","length":19,"width":7,"thickness":0.5,"lengthExpr":"caseWidth","widthExpr":"caseDepth","thicknessExpr":"panelThickness","position":[0,0.020833333333333332,0],"rotation":[0,0,0],"material":{"species":"Plywood ½\"","color":"#e7dfd3","grainDir":0,"costPerBF":2.2,"grainScale":1,"grainOffset":0.137,"variation":1,"sawnPattern":"Plain","finish":"Raw"},"visible":true,"color":"#e7dfd3","componentId":"carcase","layout":{"kind":"formulaPosition","xExpr":"0","yExpr":"panelThickness / 2","zExpr":"0"}},{"id":"side-l","name":"Left Side Wall","length":0.5,"width":7,"thickness":28,"lengthExpr":"panelThickness","widthExpr":"caseDepth","thicknessExpr":"caseHeight","position":[-0.7708333333333334,1.1666666666666667,0],"rotation":[0,0,0],"material":{"species":"Plywood ½\"","color":"#e7dfd3","grainDir":0,"costPerBF":2.2,"grainScale":1,"grainOffset":0.137,"variation":1,"sawnPattern":"Plain","finish":"Raw"},"visible":true,"color":"#e7dfd3","componentId":"carcase","layout":{"kind":"formulaPosition","xExpr":"0 - (caseWidth / 2 - panelThickness / 2)","yExpr":"caseHeight / 2","zExpr":"0"}},{"id":"side-r","name":"Right Side Wall","length":0.5,"width":7,"thickness":28,"lengthExpr":"panelThickness","widthExpr":"caseDepth","thicknessExpr":"caseHeight","position":[0.7708333333333334,1.1666666666666667,0],"rotation":[0,0,0],"material":{"species":"Plywood ½\"","color":"#e7dfd3","grainDir":0,"costPerBF":2.2,"grainScale":1,"grainOffset":0.137,"variation":1,"sawnPattern":"Plain","finish":"Raw"},"visible":true,"color":"#e7dfd3","componentId":"carcase","layout":{"kind":"formulaPosition","xExpr":"caseWidth / 2 - panelThickness / 2","yExpr":"caseHeight / 2","zExpr":"0"}},{"id":"shelf-top","name":"Top Shelf (below 3in slot)","length":18.5,"width":7,"thickness":0.5,"lengthExpr":"shelfLength","widthExpr":"caseDepth","thicknessExpr":"panelThickness","position":[0,2.0208333333333335,0],"rotation":[0,0,0],"material":{"species":"Plywood ½\"","color":"#e7dfd3","grainDir":0,"costPerBF":2.2,"grainScale":1,"grainOffset":0.137,"variation":1,"sawnPattern":"Plain","finish":"Raw"},"visible":true,"color":"#e7dfd3","componentId":"shelving","layout":{"kind":"formulaPosition","xExpr":"0","yExpr":"shelfTopY","zExpr":"0"}},{"id":"shelf-mid","name":"Middle Shelf","length":18.5,"width":7,"thickness":0.5,"lengthExpr":"shelfLength","widthExpr":"caseDepth","thicknessExpr":"panelThickness","position":[0,1.1458333333333333,0],"rotation":[0,0,0],"material":{"species":"Plywood ½\"","color":"#e7dfd3","grainDir":0,"costPerBF":2.2,"grainScale":1,"grainOffset":0.137,"variation":1,"sawnPattern":"Plain","finish":"Raw"},"visible":true,"color":"#e7dfd3","componentId":"shelving","layout":{"kind":"formulaPosition","xExpr":"0","yExpr":"shelfMidY","zExpr":"0"}},{"id":"shelf-bot","name":"Bottom Shelf (above 2.5in slot)","length":18.5,"width":7,"thickness":0.5,"lengthExpr":"shelfLength","widthExpr":"caseDepth","thicknessExpr":"panelThickness","position":[0,0.2708333333333333,0],"rotation":[0,0,0],"material":{"species":"Plywood ½\"","color":"#e7dfd3","grainDir":0,"costPerBF":2.2,"grainScale":1,"grainOffset":0.137,"variation":1,"sawnPattern":"Plain","finish":"Raw"},"visible":true,"color":"#e7dfd3","componentId":"shelving","layout":{"kind":"formulaPosition","xExpr":"0","yExpr":"shelfBotY","zExpr":"0"}}],"components":[{"id":"carcase","name":"Outer Carcase","visible":true,"color":"#9b8d79","collapsed":false},{"id":"shelving","name":"Shelves","visible":true,"color":"#9b8d79","collapsed":false}],"joints":[{"partA":"top-panel","partB":"side-l","mating":{"axis":"x","faceA":"left","faceB":"right","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":27.5,"uMax":28,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":13.5,"uMax":14,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"BoxJoint","fingers":14,"fingerWidthIn":0.5,"bandAlignment":"contact","originBitDiameterIn":0.25,"originCornerStyle":"dogbone","id":"corner-tl","seq":1},{"partA":"top-panel","partB":"side-r","mating":{"axis":"x","faceA":"right","faceB":"left","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":27.5,"uMax":28,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":13.5,"uMax":14,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"BoxJoint","fingers":14,"fingerWidthIn":0.5,"bandAlignment":"contact","originBitDiameterIn":0.25,"originCornerStyle":"dogbone","id":"corner-tr","seq":2},{"partA":"bottom-panel","partB":"side-l","mating":{"axis":"x","faceA":"left","faceB":"right","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":0,"uMax":0.5,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-14,"uMax":-13.5,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"BoxJoint","fingers":14,"fingerWidthIn":0.5,"bandAlignment":"contact","originBitDiameterIn":0.25,"originCornerStyle":"dogbone","id":"corner-bl","seq":3},{"partA":"bottom-panel","partB":"side-r","mating":{"axis":"x","faceA":"right","faceB":"left","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":0,"uMax":0.5,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-14,"uMax":-13.5,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"BoxJoint","fingers":14,"fingerWidthIn":0.5,"bandAlignment":"contact","originBitDiameterIn":0.25,"originCornerStyle":"dogbone","id":"corner-br","seq":4},{"partA":"shelf-top","partB":"side-l","mating":{"axis":"x","faceA":"left","faceB":"right","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":24,"uMax":24.5,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":10,"uMax":10.5,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"Dado","depthIn":0.25,"widthIn":0.5,"autoWidth":true,"id":"dado-shelf-top-l","seq":5},{"partA":"shelf-top","partB":"side-r","mating":{"axis":"x","faceA":"right","faceB":"left","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":24,"uMax":24.5,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":10,"uMax":10.5,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"Dado","depthIn":0.25,"widthIn":0.5,"autoWidth":true,"id":"dado-shelf-top-r","seq":6},{"partA":"shelf-mid","partB":"side-l","mating":{"axis":"x","faceA":"left","faceB":"right","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":13.5,"uMax":14,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.5,"uMax":0,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"Dado","depthIn":0.25,"widthIn":0.5,"autoWidth":true,"id":"dado-shelf-mid-l","seq":7},{"partA":"shelf-mid","partB":"side-r","mating":{"axis":"x","faceA":"right","faceB":"left","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":13.5,"uMax":14,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.5,"uMax":0,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"Dado","depthIn":0.25,"widthIn":0.5,"autoWidth":true,"id":"dado-shelf-mid-r","seq":8},{"partA":"shelf-bot","partB":"side-l","mating":{"axis":"x","faceA":"left","faceB":"right","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":3,"uMax":3.5,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-11,"uMax":-10.5,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"Dado","depthIn":0.25,"widthIn":0.5,"autoWidth":true,"id":"dado-shelf-bot-l","seq":9},{"partA":"shelf-bot","partB":"side-r","mating":{"axis":"x","faceA":"right","faceB":"left","class":"flush","gapIn":0,"overlapIn":0,"rect":{"uAxis":"y","vAxis":"z","uMin":3,"uMax":3.5,"vMin":-3.5,"vMax":3.5},"grainA":"end","grainB":"end","throughThickIn":18,"receiveThickIn":0.5,"localA":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-0.25,"uMax":0.25,"vMin":-3.5,"vMax":3.5}},"localB":{"axis":"x","rect":{"uAxis":"y","vAxis":"z","uMin":-11,"uMax":-10.5,"vMin":-3.5,"vMax":3.5}}},"matingLock":false,"kind":"Dado","depthIn":0.25,"widthIn":0.5,"autoWidth":true,"id":"dado-shelf-bot-r","seq":10}],"kerf":0.125,"extrudeCuts":[],"sketches":[],"extrudeFeatures":[],"schema":9,"variables":{"caseWidth":19,"caseHeight":28,"caseDepth":7,"panelThickness":0.5,"shelfHousing":0.25,"innerWidth":18,"shelfLength":18.5,"totalOpeningHeight":25.5,"topSlotHeight":3,"middleOpeningHeight":10,"bottomSlotHeight":2.5,"shelfTopY":24.25,"shelfMidY":13.75,"shelfBotY":3.25},"variableExpressions":{"caseWidth":"19","caseHeight":"28","caseDepth":"7","panelThickness":"0.5","shelfHousing":"0.25","innerWidth":"caseWidth - 2 * panelThickness","shelfLength":"innerWidth + 2 * shelfHousing","totalOpeningHeight":"caseHeight - 5 * panelThickness","topSlotHeight":"totalOpeningHeight * (3 / 25.5)","middleOpeningHeight":"totalOpeningHeight * (10 / 25.5)","bottomSlotHeight":"totalOpeningHeight * (2.5 / 25.5)","shelfTopY":"caseHeight - panelThickness - topSlotHeight - panelThickness / 2","shelfMidY":"shelfTopY - panelThickness / 2 - middleOpeningHeight - panelThickness / 2","shelfBotY":"shelfMidY - panelThickness / 2 - middleOpeningHeight - panelThickness / 2"},"variableNotes":{"shelfHousing":"Dado depth into side walls."},"materialPricing":{"Neutral Wood":{"mode":"boardFoot","perBoardFoot":6,"perLinearFoot":6},"Oak":{"mode":"boardFoot","perBoardFoot":8.5,"perLinearFoot":8.5},"Walnut":{"mode":"boardFoot","perBoardFoot":14,"perLinearFoot":14},"Maple":{"mode":"boardFoot","perBoardFoot":7.5,"perLinearFoot":7.5},"Cherry":{"mode":"boardFoot","perBoardFoot":9,"perLinearFoot":9},"Pine":{"mode":"boardFoot","perBoardFoot":4.5,"perLinearFoot":4.5},"Cedar":{"mode":"boardFoot","perBoardFoot":5.5,"perLinearFoot":5.5},"Plywood ¾\"":{"mode":"boardFoot","perBoardFoot":2.8,"perLinearFoot":2.8},"Plywood ½\"":{"mode":"boardFoot","perBoardFoot":2.2,"perLinearFoot":2.2},"Plywood ¼\"":{"mode":"boardFoot","perBoardFoot":1.8,"perLinearFoot":1.8},"MDF":{"mode":"boardFoot","perBoardFoot":1.2,"perLinearFoot":1.2}}}}}