Loading...
Loading...
Use when sculpting in Blender through Python: sculpt a head, face or bust, a stylized or cartoon character, a creature or a realistic portrait; block out from primitives; cut planes, a jaw or gonial angle, cheekbones; fix a jaw or face that looks like a ball or balloon; stylized hair clumps; eyelids; an expression or smirk; plan remesh or multires resolution; reproduce Clay Strips, Crease, Draw Sharp, Scrape, Grab or mask moves without a tablet; final clay renders; or when a sculpt operator crashes headless.
npx skill4agent add scenario-labs/skills scenario-blender-sculptingscripts/bx_sculpt.pyClaybx_guinpx skills add scenario-labs/skills --skill <name>Clayplane_cutcorner_cutflattenscrape| Input | Changes | Default when silent |
|---|---|---|
| Who (sex, age, type, attitude) | gonial angle, brow, jaw width, shape language | adult male, neutral basis, stated [added] |
| Style | stylized: exaggeration table; realistic: canon + reference | stylized, "abstracted enough to not be uncanny" (Kaspar) |
| Character cues | hair, costume, props that sell the type | at least hair plus one costume signifier [added] |
| Purpose | still (vertex paint, decimate) vs game or film (retopology) | still; scenario-blender-retopology if animated |
| Delivery framing | detail frequency, expression size | bust fills a 1080 px frame [added] |
| Scale | nothing if sizes are fractions of head height H | H = 0.24 m [added] |
| Channel | headless numpy / Clay, or live GUI brushes | headless blockout; GUI for surface when the bridge is up |
G = S.head_guides(H)Claysd_round_boxunion_remeshlower_face_report(head, H)["ball"]to_object(name, symmetric=False)stage_reportremesh_stagecrease_linecorner_cutplane_cutbx_guiset_view(frame=obj)view_distancesc = S.Sculptor(head, symmetry_x=False)move_featureS.write_shape_key(head, "Smirk", sc.co)S.final_render(objs, path, direction, lens=90, res=1600)| Value | Number | Source |
|---|---|---|
| Voxel ladder | H/40 blockout, H/65 to H/110 primary, H/130 to H/235 secondary, about H/330 detail | Morren, Abbitt; example |
| Faces from voxel | about 1.5 x area / voxel^2 ( | measured, 3 % |
| Example bust faces | H/40 8k, H/110 64k, H/150 103k (with neck) | measured |
| Face gates | shape before 100k; detail about 500k | Abbitt |
| Raw remesh mirror error | max 0.67 to 0.75 voxel, mean 0.05 to 0.07 voxel (nearest vertex) | measured |
| Clay blends (head) | masses 0.08 to 0.15 H, plane clips 0.02 to 0.03 H, lids 0.012 H | example [added] |
| Jaw | bigonial 0.90 to 1.00 x bizygomatic (example 0.93); ramus-to-base angle 124 degrees in the example | Thelen; example [added] |
| Eyes (stylized) | radius 0.064 H, lids 0.012 H thick, upper margin 21 degrees above center | example; 14 degrees read sleepy |
| Hair | clumps 0.065 to 0.115 H radius, rising 0.8 x radius, from the hairline back; base 0.008 to 0.02 H | example [added] |
| Corner move that reads | about 1/8 of mouth width (8 mm on 65 mm, 0.03 H); invisible at 1/30 | measured |
| Pixels per mm | bust fills 1080 px: 2.8; bust 270 px tall: 0.75 | measured ( |
| Smooth strength | 0.2 (5.2 default 0.7) | Henning |
| Crease resolution | at least 3 to 4 vertices across the radius | Ryan King |
| Review lens | 85 to 95 mm perspective | Morren, Kaspar, Naydenov, Yan |
| Landmarks | eye line 0.5 H; nose bottom halfway brow to chin; lip parting 1/3 nose to chin; ear nose base to brow; width H/1.5; mouth corners under eye centers; canthal tilt about 8 degrees; neck about 15 degrees forward | Abbitt, Naydenov, Thelen |
S.stage_report(obj, voxel)S.lower_face_report(head, H)ballS.profile_rhythm(obj)sc.planarity(c, r)S.long_lens_renderfinal_renderbx_review.review(..., modes=("silhouette", "matcap"))mode="flat"references/critique.md| Mistake | What it looks like | Fix |
|---|---|---|
| rounded_box or ellipsoid jaw, heavy smoothing | balloon lower face: cheek, jaw, jowl one sphere | Clay jaw block with stated planes; |
| Flatten or scrape dabs to "make planes" | facets that follow the ball | stated planes: Clay clips, |
| Plane cuts on a wrong mass | gem facet with a rim, metric passes | move or rebuild the mass first, then cut |
| Jaw block with its front ahead of the mouth | a mask or slab over the lower face | jaw behind the mound; front belongs to mound and chin |
| Tall jaw block, small blend | a panel edge across the cheek | low block, 0.15 H blend upward |
| Socket wider than the lids | ring groove, eye bags | socket 1.1 x eyeball, lid blend 0.012 H |
| Lids reaching behind the eye equator | sealed pocket, 3 components | clip lids at the eye center plane |
| Uniform hair offset, or clumps on a thick cap | helmet ledge, beanie with worms | thin base, clumps make the volume |
| Clumps starting behind the hairline | bare headband over the forehead | start clumps at the hairline |
| Symmetrizing asymmetric parts | swept hair mirrored, center seam | |
| Crease projected across a grazing surface | parallel cracks | crease only surfaces facing the view; skip it |
| Smile sculpted into the basis | asymmetry cannot be removed | neutral basis, |
| Corner moved 1 to 2 mm | expression invisible | about 1/8 of mouth width, check pixels |
| No hair or costume | bald mannequin | cue list in stage 0 |
| Detail before proportions | lines on a wrong skull | stay coarse until the gates pass |
| Stroke snapped with nearest from far away | groove on the nose tip | |
| Mask survived the remesh | a region refuses every brush | |
| GUI strokes with the view zoomed out | whole mesh flattened | |
| Hairline as one tilted cut | a garrison cap from the side, vertical wall at the front | hairline as a function of azimuth (sideburn, over the ear, down to the nape), quiff ramp from the hairline over about 0.12 H [eval] |
| Mirrored eyes | no gaze, a staring or blank attitude | two aimed eyeballs; lid margin and brow angle are attitude dials (level brows for a neutral basis) [eval] |
| Feature attached at two points | a nose that floats in profile, see-through gaps | ray-grid silhouette-hole probe per view; give a big nose a side wall to the cheek; |
sculpt.symmetrizesculpt.mesh_filterpaint.mask_flood_fillsculpt.mask_filtersculpt.face_sets_createsculpt.face_sets_initobject.voxel_remeshsculpt.brush_strokesculpt.set_pivot_positionsculpt.detail_flood_fillpaint_mask_extractbrush.asset_activatemesh.symmetrizequadriflow_remeshimport openvdbFloatGrid.copyFromArrayconvertToQuadssizesculpt_toolsculpt_brush_typeshade_smooth()np.ptp(a)a.ptp()references/procedures.mdreferences/expert-notes.mdreferences/critique.mdreferences/sources.mdtests/code/blender-sculpting/stylized_head_blockout.pystylized_head/stage_N/tests/code/blender-sculpting/compare/compare_sheet.png