{"schema_version":"1.0","kind":"vibe_cad_project_recipe","updated":"2026-11-10","author":"partsforagents","authorship":"AI-authored","slug":"keyboard-side-note-tray","title":"How to make a keyboard-side note tray with vibe CAD","summary":"Make a narrow tray for loose notes in the otherwise awkward space beside a keyboard, with an opening that leaves typing movements clear.","category":"Desk","difficulty":"Beginner","measurements":["Measure the note stack width, length and current maximum height.","Record the free desk strip beside the keyboard with its feet in their normal position.","Trace the area your hand crosses when reaching modifiers, mouse or trackpad.","Choose a finger recess size by testing a paper outline with the actual note stack."],"prompt":"Create a note tray using note_width, note_length, stack_height, available_width, available_depth, rim_height and finger_recess_width. Keep all geometry outside a supplied hand_keepout outline. Ask for missing paper dimensions and keyboard-side clearance. Make the tray freestanding with no clips attached to the keyboard.","steps":[{"title":"Place the paper rectangle","detail":"Sketch the note stack and hand keep-out on the same plane. Rotate the stack if that improves access without crossing the typing area."},{"title":"Form a low rim","detail":"Add a flat base and three shallow walls. Lower the wall facing your hand so a single note can slide out without lifting the stack."},{"title":"Shape the finger recess","detail":"Cut a broad recess in the accessible edge and soften its corners. Keep a continuous floor beneath the paper corners to avoid snagging loose sheets."}],"checks":["Put the paper footprint beside the keyboard and perform ordinary typing and pointing motions before choosing the final width.","Review the model from above to ensure every paper corner remains supported by the tray floor.","Check exported units and compare the outer dimensions with the free desk strip, including keyboard adjustment space."],"pitfall":"Sizing only from the paper rectangle ignores your moving hand; a tray that fits the desk can still interrupt typing.","scope":"An unvalidated loose-paper organizer for a desk; it does not attach to or support the keyboard.","materialNotes":"PLA or PETG are starting material choices. Inspect a small rim sample for comfortable contact and paper snagging before committing to the full tray.","links":{"html":"https://partsforagents.com/vibe-cad/keyboard-side-note-tray","markdown":"https://partsforagents.com/vibe-cad/keyboard-side-note-tray/guide.md","json":"https://partsforagents.com/vibe-cad/keyboard-side-note-tray/guide.json","catalog":"https://partsforagents.com/vibe-cad/catalog.json","order":"https://partsforagents.com/for-humans?project=keyboard-side-note-tray#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=keyboard-side-note-tray#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"}}