# SBC Miniatures Four 32mm character miniatures built from the SBC Season 3 "The New Crew" poster. Each is a single watertight solid with a flat sole and an integrated round base. **Version 2 supersedes version 1 at the same URLs.** If you already have links, they now serve the improved geometry: regenerated heads plus a smoothing pass. ## Delivered files Primary set, smoothed (recommended): | model | triangles | volume | height | base dia | roughness vs unsmoothed | |---|---|---|---|---|---| | Mark, quokka | 330,748 | 2.452 cm3 | 33.65 mm | 23.3 mm | -14.9% | | Mike, kakapo | 512,642 | 4.446 cm3 | 33.66 mm | 25.7 mm | -15.9% | | Dustin, naked mole rat | 329,662 | 2.155 cm3 | 33.56 mm | 22.8 mm | -15.0% | | Sascha, red panda | 387,750 | 2.558 cm3 | 33.64 mm | 22.2 mm | -15.5% | `Unsmoothed/` holds the same four figures before the Laplacian pass, in case you prefer maximum surface detail over surface finish. See the trade-off below. Renders, in `../Renders/`: `FaceFixSheet.png` (old heads vs new), `SmoothSheet.png` (before vs after smoothing), `HeroSheet.png`, `BlenderFullSheet.png`, `BlenderHeadSheet.png`. ## What changed in version 2 1. **Regenerated heads.** The first pass gave readable bodies and unreadable faces. The references were regenerated with deliberately simplified or covered faces: Mark and Sascha got plain closed eyes and a smooth muzzle, Mike's aviator goggles are now worn DOWN over his eyes so there is no face left to melt, and Dustin got thick solid glasses plus two large separate incisors. All four faces now read, and Mike's goggles and Dustin's glasses and teeth come out as distinct forms. 2. **Surface smoothing.** A volume-preserving Laplacian pass (8 iterations, lambda 5) on the figure only, with the base excluded via a vertex group so the sole stays flat, then re-seated on the bed. ## The smoothing trade-off, stated plainly Measured mean surface roughness drops 15% (vertex deviation from the neighbour centroid, normalised by edge length). The visual change is much larger than 15% suggests, because the loss is concentrated in the highest frequencies, which is exactly where the marching-cubes stair-stepping lives. That stair-stepping would print as fuzz at 35-50 micron resin XY, so removing it is the right call for a printed part. It does also soften genuine fine detail: the mole rat's hair spikes are blunted and the kakapo's surface loses its texture. Everything structural survives, meaning limbs, silhouette, glasses, teeth, goggles and base edges. Smoothing strength is not a dial you can turn gently. Below about 8 iterations at lambda 5 the modifier does almost nothing measurable, and above it the result plateaus at the same 15%. The real choice is unsmoothed or smoothed; there is no useful middle setting. Both are provided. ## Print settings Slicers read STL as millimetres, so **do not scale**. The base is integrated: no raft, no separate base model. Resin, Anycubic Photon Mono M5s: - Layer height 0.03 to 0.05 mm, about 670 layers at 0.05. - Exposure, lift and retract: use your resin's own chart. Those are chemistry and I have never run this printer, so I will not invent numbers for it. - Orientation: base flat on the plate. Arms hang near vertical and overhangs are shallow, so supports are minimal. Check the red panda's tail and the quokka's backpack straps in the slicer preview. - The mesh floor is about 0.2 mm (0.1 mm voxel plus smoothing). Resin resolves far finer, so the mesh is the limit, not the printer. FDM, for a 50 to 75 mm display version: - Scale up in the slicer (75 mm is about 2.2x). Detail is sized for resin, so bigger is better; under 50 mm the faces stop reading. - 0.2 mm nozzle: 0.06 to 0.08 mm layers. - Not modelled for support-free FDM. Expect supports under the arms and tail, or split at the waist. ## Deliberate changes from the poster The poster is a group composition, so it is not directly convertible. These changes were made so the models are printable at all: - Each character was regenerated as an isolated, single-subject, full-body reference on a plain background, because overlapping neighbours fuse into one blob otherwise. This happened for real to Dustin: the original crop contained part of the kakapo and the resulting mesh welded the two together. - Poses were normalised to a neutral A-pose with arms clear of the torso and hands empty. The poster has a raised waving arm, crossed arms and two raised wrenches, which are thin limbs hanging in space that want supports and snap. - Thin or held props were removed from the reference: Mark's cable garland and flip phone, Mike's tablet and microphone boom, Dustin's wrenches and the junk pile, Sascha's duffel bag. Signature props are better printed separately and glued, at their own scale and colour. - Dustin is a full figure, not the poster's vignette. The original plan was a bust on a junk pile because his legs are hidden behind the debris in the poster; once he was regenerated as a clean full-body reference the legs existed and the vignette was no longer needed. ## Known limitations - **Faces now read, but they are stylized, not portrait-accurate.** The fix was to simplify or cover them at the reference stage, which is why it worked. Do not expect likeness. - **Best of the four is Sascha** (cleanest silhouette, thick tail, well-defined muzzle). **Mike is the weakest** as a sculpt (densest surface, head blends into the torso), though his goggles now read. - Texture and colour from the source art are not in these STLs. Geometry only. They are meant to be painted. ## How this was made ``` # 1. one clean isolated full-body reference per character, plain background, # faces deliberately simplified or covered # 2. image to mesh, CPU only, about 40s per character .venv/bin/python TripoSR/run.py Reference/Mini2/*.png --device cpu \ --output-dir OutputMini2 --mc-resolution 384 --model-save-format glb # 3. mesh to printable solid, with gates .venv/bin/python RemeshPrint.py OutputMini2//mesh.glb Final2//mesh \ --height 32 --voxel 0.1 # 4. smoothing, base excluded, re-seated on the bed blender -b --factory-startup --python SmoothBlender.py -- \ Final2//mesh.stl Final2S//mesh.stl 2.6 8 5.0 # 5. acceptance gate, then renders .venv/bin/python Verify.py 'Final2S/*/mesh.stl' blender -b --factory-startup --python RenderBlender.py -- WORKBENCH *.stl ``` Tools: `RemeshPrint.py` (remesh, base and gates; `--selfcheck`), `SmoothBlender.py` (Laplacian with base mask and re-seat), `RenderBlender.py` (Workbench and EEVEE rigs), `Verify.py` (acceptance gate), `Roughness.py` (surface-noise metric; `--selfcheck`), `MeshStats.py`, `RenderViews.py` (the original software renderer, superseded by Blender), `DiagnoseFill.py`, `StitchSheets.py`, `StitchSheetsV2.py`.