Face.thicken()
July 1, 2026 ยท View on GitHub
Builds a new closed solid by offsetting the face and stitching side walls.
Usage
const thickened = face.thicken(2, { name: 'ThickenedFace' });
Signature
face.thicken(distance, options = {})
Parameters
distance(number) - Signed offset distance used to build the thickened solid.options(object, optional) - Naming, source metadata, normal smoothing, splitting/culling, and diagnostics options.
Common Options
name(string, optional) - Result solid name and fallback feature ID.featureId(string, default derived fromname,face.name, or'THICKEN') - Feature/source ID used for generated face labels and metadata.sourceFaceName(string, default derived from the face label) - Source face label used for cap/sidewall naming.sourceFaceNames(string[], optional) - Source face labels when thickening a grouped face set.sourceFaceMetadataByName(Map | object, optional) - Source metadata copied onto generated faces.weldTolerance(number, optional) - Tolerance used while extracting/welding face surface points.manifoldWeldTolerance(number, optional) - Tolerance used when welding generated solid vertices.equalAdjacentBoundaryNormals(boolean, defaultfalse) - Uses equal/shared normals across adjacent boundaries.sharedBoundaryNormalMode(string, optional) - Set to'equal'to enable equal adjacent boundary normals.disableAdjacentBoundaryNormals(boolean, default depends on boundary-normal mode) - Disables adjacent boundary normal blending.adjacentNormalDotThreshold(number, optional) - Normal-dot threshold for using adjacent boundary normals.adjacentNormalWeightScale(number, optional) - Weight scale for adjacent boundary normal contribution.
Cleanup And Debug Options
trianglePrismUnion(boolean, defaultfalse) - Use triangle-prism union construction instead of stitched shell construction.repairBoundaryCaps(boolean, defaulttrue) - Add repair caps for eligible open/intersection boundaries.skipTriangleSplit(boolean, optional) - Skip or force triangle splitting during cleanup.splitSnapTolerance(number, optional) - Snap tolerance passed to self-intersection splitting.snapTolerance(number, optional) - Fallback snap tolerance.splitDiagnostics(boolean, defaultfalse) - Enable split diagnostics.diagnostics(boolean, defaultfalse) - General diagnostic flag used by cleanup passes.skipInternalCull(boolean, defaultfalse) - Skip internal-triangle removal.internalCullMethod('winding' | 'raycast' | string, optional) - Internal-triangle culling method.windingOptions(object, optional) - Options passed to winding-based internal culling.raycastCullOptions(object, optional) - Options passed to raycast-based internal culling.orientationRepairDistanceLimit(number, optional) - Distance limit for small-thickness orientation repair.orientationRepairMaxPasses(number, optional) - Maximum orientation repair passes.
Returns
Solid - A new closed thickened solid.
This is the face-level entry point into faceThicken.js.