$npx -y skills add arjun988/blender-skills --skill hard-surfaceAAA hard surface modeling for sci-fi, industrial, military, vehicles, weapons, robotics, and mechanical props. Use for boolean/bevel workflows, panel lines, greebles, chamfers, and manufacturing-accurate surfaces in Blender via MCP.
| 1 | # Hard Surface Artist |
| 2 | |
| 3 | Production hard surface modeling with manufacturing logic. Readable surfaces. Clean modifier stacks. MCP-first. |
| 4 | |
| 5 | ## When to Use |
| 6 | |
| 7 | - Sci-fi consoles, spaceships, industrial equipment |
| 8 | - Weapons, vehicles, robotics, military props |
| 9 | - Mechanical assemblies with panels, vents, bolts |
| 10 | - Any asset requiring crisp edges, booleans, chamfers |
| 11 | |
| 12 | ## Design Principles |
| 13 | |
| 14 | 1. **Primary forms first** — Silhouette reads at distance |
| 15 | 2. **Manufacturing logic** — Panel breaks follow construction seams |
| 16 | 3. **Surface hierarchy** — Primary > Secondary > Tertiary > Micro (greebles) |
| 17 | 4. **Functional readability** — Every form suggests purpose |
| 18 | 5. **Edge consistency** — Uniform bevel widths per detail tier |
| 19 | |
| 20 | ## Workflow |
| 21 | |
| 22 | ``` |
| 23 | Reference → Scale Blockout → Primary Volumes → Panel Breaks |
| 24 | → Boolean Cuts → Bevel Pass → Weighted Normals |
| 25 | → Greebles (instanced) → UV Planning → Materials |
| 26 | ``` |
| 27 | |
| 28 | ## Boolean Workflow |
| 29 | |
| 30 | ``` |
| 31 | 1. Block primary forms (no booleans yet) |
| 32 | 2. Create cutter objects on separate collection COL_Booleans |
| 33 | 3. Apply scale on all operands |
| 34 | 4. Boolean Difference/Union — keep LIVE |
| 35 | 5. Fix intersection artifacts with manual cleanup if needed |
| 36 | 6. Bevel AFTER boolean in modifier stack |
| 37 | 7. Apply booleans only at export prep |
| 38 | ``` |
| 39 | |
| 40 | **Boolean rules:** |
| 41 | - Cutter objects named `SM_Cutter_[Feature]` |
| 42 | - Prefer exact solver for mechanical work |
| 43 | - Avoid booleans on curved surfaces without adequate topology |
| 44 | - Duplicate mesh before first boolean as backup |
| 45 | |
| 46 | ## Bevel Workflow |
| 47 | |
| 48 | | Detail Tier | Bevel Width | Segments | |
| 49 | |-------------|-------------|----------| |
| 50 | | Primary edges | 0.005–0.02m | 2–3 | |
| 51 | | Panel lines | 0.001–0.003m | 1–2 | |
| 52 | | Micro detail | 0.0005–0.001m | 1 | |
| 53 | |
| 54 | - Use bevel weight or edge marks for selective beveling |
| 55 | - Weighted Normal modifier after bevel (keep sharp: 30°) |
| 56 | - Never bevel entire mesh uniformly on complex assets |
| 57 | |
| 58 | ## Panel Lines |
| 59 | |
| 60 | Techniques (prefer non-destructive): |
| 61 | 1. Inset faces + slight extrude inward |
| 62 | 2. Knife cuts on flat panels |
| 63 | 3. Boolean with thin cutter boxes |
| 64 | 4. Normal map detail for distant panels |
| 65 | |
| 66 | Place panel lines at: |
| 67 | - Structural boundaries |
| 68 | - Access hatches, maintenance points |
| 69 | - Material transitions |
| 70 | - Manufacturing seam locations |
| 71 | |
| 72 | ## Greebles |
| 73 | |
| 74 | - Instance small detail meshes; never model unique unless hero |
| 75 | - Collection: `COL_Greebles` |
| 76 | - Keep greebles on separate mesh for easy toggle |
| 77 | - Budget: greebles should not dominate polycount |
| 78 | - Use array + random transform for scatter greebles |
| 79 | |
| 80 | ## Hard Edge Management |
| 81 | |
| 82 | ``` |
| 83 | Sharp edges → Mark Sharp or Bevel Weight = 1.0 |
| 84 | Soft transitions → Bevel Weight = 0.0–0.5 |
| 85 | Auto Smooth angle: 30°–45° for hard surface |
| 86 | Weighted Normal modifier: Keep Sharp enabled |
| 87 | ``` |
| 88 | |
| 89 | ## Manufacturing Reference |
| 90 | |
| 91 | | Real-World Feature | Modeling Approach | |
| 92 | |--------------------|-------------------| |
| 93 | | Sheet metal bend | Bevel + slight inset | |
| 94 | | Weld seam | Thin raised strip or normal map | |
| 95 | | Bolt pattern | Instanced cylinder, hex inset | |
| 96 | | Vent grille | Boolean cut + array | |
| 97 | | Cable routing | Curve + bevel object or geo nodes | |
| 98 | | Rubber gasket | Separate mesh, slight inset channel | |
| 99 | |
| 100 | ## Vehicle / Spaceship Specifics |
| 101 | |
| 102 | > Prefer **vehicle-artist** for cars, ships, aircraft, and mechs. Use this skill when the vehicle is primarily hard-surface sci-fi detailing under a broader HS brief. |
| 103 | |
| 104 | - Establish centerline symmetry early (Mirror modifier) |
| 105 | - Flow lines follow aerodynamic/structural logic |
| 106 | - Landing gear, thrusters as separate objects |
| 107 | - LOD: bake panel detail to normal at distance |
| 108 | |
| 109 | ## Weapon Specifics |
| 110 | |
| 111 | - Grip pivot at hand contact center |
| 112 | - Sight line alignment verified |
| 113 | - Separate moving parts (slide, magazine) as objects |
| 114 | - First-person: optimize silhouette for viewmodel |
| 115 | |
| 116 | ## MCP Integration |
| 117 | |
| 118 | Execute via MCP: |
| 119 | 1. Create blockout primitives |
| 120 | 2. Apply mirror/array modifiers |
| 121 | 3. Execute boolean operations |
| 122 | 4. Apply bevel and weighted normal |
| 123 | 5. Instance greeble collections |
| 124 | 6. Query polycount per phase |
| 125 | |
| 126 | ## Constraints |
| 127 | |
| 128 | ### MUST DO |
| 129 | - Maintain manufacturing plausibility |
| 130 | - Keep modifier stack non-destructive until export |
| 131 | - Use instancing for repeated mechanical detail |
| 132 | - Verify silhouette at 45° increments |
| 133 | - Apply scale before booleans |
| 134 | |
| 135 | ### MUST NOT DO |
| 136 | - Boolean on unsubdivided curved surfaces without support |
| 137 | - Uniform bevel on entire complex mesh |
| 138 | - Model every bolt uniquely |
| 139 | - Skip weighted normals on hard surface |
| 140 | - Exceed polycount budget with micro-detail |
| 141 | |
| 142 | ## Reference Guide |
| 143 | |
| 144 | | Topic | Refer |