[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"site-chrome":3,"i-lucide:sparkles":70,"i-lucide:pencil-ruler":74,"cms-page:\u002Fdocs\u002Fshape-building":76,"i-lucide:arrow-right":161,"i-lucide:layout-grid":163},{"nav":4,"footer":25},{"id":5,"brand":6,"links":7},1,"CubbyCAD",[8,13,17,22],{"id":5,"sort":5,"label":9,"href":10,"external":11,"visibility":12},"Home","\u002F",0,"always",{"id":14,"sort":14,"label":15,"href":16,"external":11,"visibility":12},2,"Explore","\u002Fexplore",{"id":18,"sort":19,"label":20,"href":21,"external":11,"visibility":12},5,4,"Docs","\u002Fdocs",{"id":19,"sort":18,"label":23,"href":24,"external":11,"visibility":12},"Enhanced Plan","\u002Fpricing",{"id":5,"tagline":26,"version_label":27,"links":28},"A browser-based 3D modeler for designing parts you can actually print.","v0.1",[29,34,37,40,43,47,52,59,65],{"id":5,"sort":30,"group":31,"label":32,"href":33,"external":5,"visibility":12},10,"Use","Open the editor","\u002Feditor\u002F",{"id":14,"sort":35,"group":31,"label":36,"href":16,"external":11,"visibility":12},11,"Explore parts & workspaces",{"id":38,"sort":39,"group":31,"label":20,"href":21,"external":11,"visibility":12},3,12,{"id":19,"sort":41,"group":31,"label":42,"href":24,"external":11,"visibility":12},13,"Pricing",{"id":18,"sort":44,"group":31,"label":45,"href":46,"external":5,"visibility":12},14,"Slicer","\u002Fslicer\u002F",{"id":48,"sort":49,"group":31,"label":50,"href":51,"external":11,"visibility":12},6,15,"Credits","\u002Fcredits",{"id":53,"sort":54,"group":55,"label":56,"href":57,"external":11,"visibility":58},7,20,"Account","Your workspaces","\u002Faccount","signed-in",{"id":60,"sort":61,"group":55,"label":62,"href":63,"external":11,"visibility":64},8,21,"Sign in","\u002Flogin","signed-out",{"id":66,"sort":67,"group":55,"label":68,"href":69,"external":11,"visibility":64},9,22,"Make an account","\u002Fsignup",{"left":11,"top":11,"width":71,"height":71,"rotate":11,"vFlip":72,"hFlip":72,"body":73},24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":11,"top":11,"width":71,"height":71,"rotate":11,"vFlip":72,"hFlip":72,"body":75},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 7L8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13m1-7l2-2m8 12l2-2m-3-3l4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4\"\u002F>",{"id":19,"title":77,"permalink":78,"status":79,"meta_title":80,"meta_description":81,"og_image":82,"blocks":83},"Shape building","\u002Fdocs\u002Fshape-building","published","Shape building · CubbyCAD docs","Drop primitives onto the grid, mark each as solid or hole, group them, and let Manifold boolean CSG fuse them into one watertight part.",null,[84,91,98,106,139,145],{"id":49,"sort":14,"collection":85,"item":86},"block_hero",{"id":19,"eyebrow":87,"headline":77,"subhead":81,"figure":88,"note":82,"tone":89,"buttons":90},"Whip something up *fast*","","sky",[],{"id":92,"sort":19,"collection":93,"item":94},16,"block_richtext",{"id":38,"eyebrow":82,"heading":82,"body":95,"align":96,"variant":97,"tone":97},"\u003Cp>Shape building is the core of CubbyCAD: you assemble a model out of simple primitives — boxes, spheres, cylinders, cones, and more — then combine them with boolean operations. Every shape is either a \u003Cstrong>Solid\u003C\u002Fstrong> (it adds material) or a \u003Cstrong>Hole\u003C\u002Fstrong> (it carves material away), so you can rough out a body and then drill, slot, and pocket it without ever leaving the parametric scene.\u003C\u002Fp>\n\u003Cp>Reach for this whenever you want precise, editable geometry. Because shapes are combined with the Manifold engine, the result stays a clean, watertight mesh you can keep tweaking — change a primitive's size and the whole assembly rebuilds.\u003C\u002Fp>","left","default",{"id":99,"sort":18,"collection":100,"item":101},78,"block_media",{"id":18,"image":102,"image_path":82,"alt":103,"caption":104,"heading":82,"body":82,"layout":105,"tone":97,"video":82,"video_path":82},"43fbeed9-9183-4b5f-a553-0452fec2134f","Shape building: various primitives","**Overview.** A few primitives on the grid being grouped into a single watertight part.","text-left",{"id":107,"sort":48,"collection":108,"item":109},17,"block_steps",{"id":60,"eyebrow":82,"heading":110,"intro":82,"tone":89,"image":111,"image_path":82,"video":82,"video_path":82,"alt":112,"caption":113,"items":114},"How to use it","6c6a8c47-b4a6-452d-862d-6c2e4f00ef5c","The Role section: Solid vs Hole","**In the editor.** A hole primitive cutting a solid inside a group, with the Properties panel’s Role toggle.",[115,119,123,127,131,135],{"id":116,"block_steps":60,"sort":5,"title":117,"body":118},52,"Add a primitive","\u003Cp>Drag a tile (such as \u003Cstrong>Box\u003C\u002Fstrong>, \u003Cstrong>Sphere\u003C\u002Fstrong>, or \u003Cstrong>Cylinder\u003C\u002Fstrong>) from the shapes palette and drop it onto the grid or an existing face. You can also run the command-palette command \u003Cspan class=\"menu\">Add Box\u003C\u002Fspan> (or \u003Cspan class=\"menu\">Add Sphere\u003C\u002Fspan>, \u003Cspan class=\"menu\">Add Cylinder\u003C\u002Fspan>, etc.) to drop one at the origin.\u003C\u002Fp>",{"id":120,"block_steps":60,"sort":14,"title":121,"body":122},53,"Position and size it","\u003Cp>Select the shape and use the move\u002Frotate gizmo, or edit its dimensions (Radius, Height, and so on) in the \u003Cstrong>Properties\u003C\u002Fstrong> panel.\u003C\u002Fp>",{"id":124,"block_steps":60,"sort":38,"title":125,"body":126},54,"Choose add or remove","\u003Cp>With the shape selected, open the \u003Cstrong>Role\u003C\u002Fstrong> section of the \u003Cstrong>Properties\u003C\u002Fstrong> panel and click \u003Cstrong>Solid\u003C\u002Fstrong> (adds material) or \u003Cstrong>Hole\u003C\u002Fstrong> (subtracts it). The same toggle is available as the \u003Cspan class=\"menu\">Make solid\u003C\u002Fspan> and \u003Cspan class=\"menu\">Make hole\u003C\u002Fspan> commands and in the Object menu.\u003C\u002Fp>",{"id":128,"block_steps":60,"sort":19,"title":129,"body":130},55,"Group the shapes","\u003Cp>Select the shapes you want to combine, then choose \u003Cspan class=\"menu\">Group\u003C\u002Fspan> (\u003Ckbd>Ctrl\u002FCmd\u003C\u002Fkbd>+\u003Ckbd>G\u003C\u002Fkbd>) from the Object menu or command palette. Grouping is what tells the app to run the boolean — holes inside the group cut the solids in that group.\u003C\u002Fp>",{"id":132,"block_steps":60,"sort":18,"title":133,"body":134},56,"Inspect the result","\u003Cp>The group rebuilds automatically into a single combined body. Adjust any child primitive's parameters and the boolean re-evaluates live.\u003C\u002Fp>",{"id":136,"block_steps":60,"sort":48,"title":137,"body":138},57,"Ungroup to undo","\u003Cp>To break a combination apart again, select the group and choose \u003Cspan class=\"menu\">Ungroup\u003C\u002Fspan> (\u003Ckbd>Ctrl\u002FCmd\u003C\u002Fkbd>+\u003Ckbd>Shift\u003C\u002Fkbd>+\u003Ckbd>G\u003C\u002Fkbd>).\u003C\u002Fp>",{"id":140,"sort":60,"collection":93,"item":141},18,{"id":18,"eyebrow":82,"heading":142,"body":143,"align":96,"variant":97,"tone":144},"Tips","\u003Cul>\n\u003Cli>Booleans happen inside a \u003Cstrong>group\u003C\u002Fstrong>. A loose Hole sitting next to a Solid won't cut it — they must be children of the same group for the subtraction to apply.\u003C\u002Fli>\n\u003Cli>The shapes palette has fuzzy search: type \"cube\" or \"square\" to find \u003Cstrong>Box\u003C\u002Fstrong>, \"ball\" for \u003Cstrong>Sphere\u003C\u002Fstrong>, \"donut\" for \u003Cstrong>Torus\u003C\u002Fstrong>, \"ramp\" for \u003Cstrong>Wedge\u003C\u002Fstrong>, and so on.\u003C\u002Fli>\n\u003Cli>A new shape defaults to \u003Cstrong>Solid\u003C\u002Fstrong>; switch it to \u003Cstrong>Hole\u003C\u002Fstrong> whenever you want it to carve rather than add.\u003C\u002Fli>\n\u003Cli>By default a group's combine \u003Cstrong>Style\u003C\u002Fstrong> is \u003Cstrong>Sharp\u003C\u002Fstrong> — exact, crisp boolean edges via Manifold. Switch it to Blended for rounded joins (see \u003Ca href=\"\u002Fdocs\u002Fsmooth-blends\">Smooth blends\u003C\u002Fa>).\u003C\u002Fli>\n\u003Cli>Turn on a group's \u003Cstrong>Multicolor\u003C\u002Fstrong> option to keep each part's own colour in the combined shape instead of one flat group colour — useful for coloured parts and required for colour export.\u003C\u002Fli>\n\u003C\u002Ful>","mint",{"id":146,"sort":30,"collection":147,"item":148},19,"block_cta",{"id":38,"heading":149,"body":150,"note":82,"align":151,"tone":152,"buttons":153},"Try it in your browser","Open CubbyCAD and put Shape building to work — it runs in the browser, no install.","center","lilac",[154,157],{"id":66,"sort":5,"block_cta":38,"block_hero":82,"label":32,"href":33,"icon":155,"trailing":5,"external":11,"variant":156},"i-lucide-arrow-right","primary",{"id":30,"sort":14,"block_cta":38,"block_hero":82,"label":158,"href":21,"icon":159,"trailing":11,"external":11,"variant":160},"Browse guides","i-lucide-layout-grid","outline",{"left":11,"top":11,"width":71,"height":71,"rotate":11,"vFlip":72,"hFlip":72,"body":162},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":11,"top":11,"width":71,"height":71,"rotate":11,"vFlip":72,"hFlip":72,"body":164},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"14\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"14\" y=\"14\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\"\u002F>\u003C\u002Fg>",1782830974025]