{"schema_version":"1.0","kind":"vibe_cad_project_recipe","updated":"2026-11-10","author":"partsforagents","authorship":"AI-authored","slug":"paintbrush-horizontal-rest","title":"How to make a paintbrush horizontal rest with vibe CAD","summary":"Give craft paintbrushes a temporary horizontal resting place with handle-sized saddles and space beneath the bristles for a removable liner.","category":"Craft","difficulty":"Beginner","measurements":["Measure handle diameters at the points that will touch the rest.","Measure the longest bristle projection beyond those contact points.","Record the desired number of brushes and spacing between loaded brush tips.","Measure the liner footprint and choose saddle gaps through a small sample."],"prompt":"Build a brush rest with handle_diameters, saddle_pitch, support_height, bristle_projection, liner_width and liner_depth. Support handles only and leave bristles clear of the body. Ask for brush sizes and the intended removable liner. Use open rounded saddles without claiming chemical resistance or a universal handle fit.","steps":[{"title":"Place the bristle envelope","detail":"Draw the brushes in side view using the actual support points. Reserve an open region below and beyond the bristles for the liner."},{"title":"Build the handle saddles","detail":"Create two low rails with broad rounded notches at matching positions. Keep the spacing adjustable so different handle tapers can be accommodated."},{"title":"Make cleanup accessible","detail":"Keep the rest open beneath the bristle area and avoid hidden paint-catching cavities. Add a separate liner outline as a reference, not as a supplied accessory."}],"checks":["Use a cardboard side profile with clean brushes to check handle contact and bristle clearance.","Inspect the top view for brush-tip overlap when every saddle is occupied.","Plan a saddle sample and check it with the real handles before deciding the final notch gaps."],"pitfall":"Measuring only the ferrule ignores handle taper and bristle length; locate the actual contact points before setting support height.","scope":"An unvalidated craft-bench rest for brush handles, not a protective container or a claim about paint compatibility.","materialNotes":"PLA or PETG may be considered for the rest. Use a removable liner and check the paint maker’s cleanup guidance; chemical resistance is not established by this recipe.","links":{"html":"https://partsforagents.com/vibe-cad/paintbrush-horizontal-rest","markdown":"https://partsforagents.com/vibe-cad/paintbrush-horizontal-rest/guide.md","json":"https://partsforagents.com/vibe-cad/paintbrush-horizontal-rest/guide.json","catalog":"https://partsforagents.com/vibe-cad/catalog.json","order":"https://partsforagents.com/for-humans?project=paintbrush-horizontal-rest#workspace","agent_handoff":"https://partsforagents.com/guides/cad-to-print#connect","full_mcp":"https://partsforagents.com/api/mcp","free_advice_mcp":"https://partsforagents.com/api/advice/mcp","tool_schemas":"https://partsforagents.com/tools.json"},"design_status":{"physical_validation":"not_physically_validated","cad_assets":[],"exact_customer_cad_required":true,"note":"This is a modeling recipe. Any illustration shows the concept; it is not the exact CAD file for an order."},"order_handoff":{"label":"Order this part now","url":"https://partsforagents.com/for-humans?project=paintbrush-horizontal-rest#workspace","ready_cad_action":"Upload the customer-approved exported CAD and submit a manufacturing request.","no_cad_action":"Use the measurements and prompt to create editable CAD, inspect it, then export the exact file to be made.","required_inputs":["Authorized exact CAD file","Declared units","Material family and requested grade/color","Quantity","Intended use and critical fit requirements","Contact email","Destination country and postal code"],"current_firm_production_scope":"Reviewed PLA/PETG jobs for eligible contiguous-US/DC delivery.","submission":{"new_request_status":"pending_review","binding":false,"payment_due_at_submission":false,"next":"The exact reviewed offer and payment link follow when the job and payment channel are ready."},"agent_steps":[{"tool":"upload_cad_request","instruction":"Get authorization to store/process the exact exported file, then use its bytes and approved intake fields. Save the returned request ID and file SHA-256."},{"tool":"get_cad_preflight","instruction":"Read measured geometry and unknowns for that uploaded file."},{"tool":"set_manufacturing_specification","instruction":"Save the customer-approved manufacturing choices and returned specification fingerprint."},{"tool":"place_order","instruction":"Submit order_type manufacturing with the real request ID, exact specification fingerprint, acknowledge_nonbinding true and a saved unique idempotency key. Include this guide URL in review_notes along with the approved requirements."},{"tool":"get_order_fulfillment","instruction":"Use the returned order ID to read the authoritative offer and manufacturing progress. A recipe URL alone never identifies an order."}],"retry_policy":"Reconcile an uncertain result before retrying. Reuse identical arguments and the same idempotency key; never submit a second request just because its payment link is pending.","tool_schema_url":"https://partsforagents.com/tools.json"}}