user: Explain S in complete detail according to the official Blender documentation.

assistant: sShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.IncreasingThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.PolygonalizationShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.PolygonalizationShader.shade)   - [(freestyle.shaders.freestyle.shaders.py2DCurvatureColorShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.py2DCurvatureColorShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyBackboneStretcherNoCuspShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyBackboneStretcherNoCuspShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyBackboneStretcherShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyBackboneStretcherShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyBluePrintCirclesShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyBluePrintCirclesShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyBluePrintDirectedSquaresShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyBluePrintDirectedSquaresShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyBluePrintEllipsesShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyBluePrintEllipsesShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyBluePrintSquaresShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyBluePrintSquaresShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyConstantColorShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyConstantColorShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyConstantThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyConstantThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyConstrainedIncreasingThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyConstrainedIncreasingThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyDecreasingThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyDecreasingThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyDepthDiscontinuityThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyDepthDiscontinuityThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyDiffusion2Shader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyDiffusion2Shader.shade)   - [(freestyle.shaders.freestyle.shaders.pyFXSVaryingThicknessWithDensityShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyFXSVaryingThicknessWithDensityShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyGuidingLineShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyGuidingLineShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyHLRShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyHLRShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyImportance2DThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyImportance2DThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyImportance3DThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyImportance3DThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyIncreasingColorShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyIncreasingColorShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyIncreasingThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyIncreasingThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyInterpolateColorShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyInterpolateColorShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyLengthDependingBackboneStretcherShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyLengthDependingBackboneStretcherShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyMaterialColorShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyMaterialColorShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyModulateAlphaShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyModulateAlphaShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyNonLinearVaryingThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyNonLinearVaryingThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyPerlinNoise1DShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyPerlinNoise1DShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyPerlinNoise2DShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyPerlinNoise2DShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyRandomColorShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyRandomColorShader.shade)   - [(freestyle.shaders.freestyle.shaders.pySamplingShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pySamplingShader.shade)   - [(freestyle.shaders.freestyle.shaders.pySinusDisplacementShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pySinusDisplacementShader.shade)   - [(freestyle.shaders.freestyle.shaders.pySLERPThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pySLERPThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyTimeColorShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyTimeColorShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyTipRemoverShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyTipRemoverShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyTVertexRemoverShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyTVertexRemoverShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyTVertexThickenerShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyTVertexThickenerShader.shade)   - [(freestyle.shaders.freestyle.shaders.pyZDependingThicknessShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.pyZDependingThicknessShader.shade)   - [(freestyle.shaders.freestyle.shaders.RoundCapShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.RoundCapShader.shade)   - [(freestyle.shaders.freestyle.shaders.SamplingShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.SamplingShader.shade)   - [(freestyle.shaders.freestyle.shaders.SmoothingShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.SmoothingShader.shade)   - [(freestyle.shaders.freestyle.shaders.SpatialNoiseShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.SpatialNoiseShader.shade)   - [(freestyle.shaders.freestyle.shaders.SquareCapShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.SquareCapShader.shade)   - [(freestyle.shaders.freestyle.shaders.StrokeTextureStepShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.StrokeTextureStepShader.shade)   - [(freestyle.shaders.freestyle.shaders.ThicknessNoiseShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.ThicknessNoiseShader.shade)   - [(freestyle.shaders.freestyle.shaders.TipRemoverShader method)](freestyle.shaders.html#freestyle.shaders.freestyle.shaders.TipRemoverShader.shade)   - [(freestyle.types.freestyle.types.StrokeShader method)](freestyle.types.html#freestyle.types.freestyle.types.StrokeShader.shade)   - [(freestyle.utils.freestyle.utils.StrokeCollector method)](freestyle.utils.html#freestyle.utils.freestyle.utils.StrokeCollector.shade) - [shade_auto_smooth() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shade_auto_smooth) - [shade_flat() (bpy.types.Mesh method)](bpy.types.Mesh.html#bpy.types.Mesh.shade_flat)   - [(in module bpy.ops.curve)](bpy.ops.curve.html#bpy.ops.curve.shade_flat)   - [(in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shade_flat) - [shade_smooth() (bpy.types.Mesh method)](bpy.types.Mesh.html#bpy.types.Mesh.shade_smooth)   - [(in module bpy.ops.curve)](bpy.ops.curve.html#bpy.ops.curve.shade_smooth)   - [(in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shade_smooth) - [shade_smooth_by_angle() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shade_smooth_by_angle) - [shadedown (bpy.types.ThemeWidgetColors attribute)](bpy.types.ThemeWidgetColors.html#bpy.types.ThemeWidgetColors.shadedown) - [shader_compilation_method (bpy.types.PreferencesSystem attribute)](bpy.types.PreferencesSystem.html#bpy.types.PreferencesSystem.shader_compilation_method) - [shader_image_load_store_support_get() (in module gpu.capabilities)](gpu.capabilities.html#gpu.capabilities.shader_image_load_store_support_get) - [shader_node (bpy.types.ThemeNodeEditor attribute)](bpy.types.ThemeNodeEditor.html#bpy.types.ThemeNodeEditor.shader_node) - [shader_script_update() (in module bpy.ops.node)](bpy.ops.node.html#bpy.ops.node.shader_script_update) - [shader_type (bpy.types.SpaceNodeEditor attribute)](bpy.types.SpaceNodeEditor.html#bpy.types.SpaceNodeEditor.shader_type) - [ShaderFx (class in bpy.types)](bpy.types.ShaderFx.html#bpy.types.ShaderFx) - [ShaderFx.type (in module bpy.types)](bpy.types.ShaderFx.html#bpy.types.ShaderFx.type) - [shaderfx_add() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shaderfx_add) - [shaderfx_copy() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shaderfx_copy) - [shaderfx_move_down() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shaderfx_move_down) - [shaderfx_move_to_index() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shaderfx_move_to_index) - [shaderfx_move_up() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shaderfx_move_up) - [shaderfx_remove() (in module bpy.ops.object)](bpy.ops.object.html#bpy.ops.object.shaderfx_remove) - [ShaderFxBlur (class in bpy.types)](bpy.types.ShaderFxBlur.html#bpy.types.ShaderFxBlur) - [ShaderFxColorize (class in bpy.types)](bpy.types.ShaderFxColorize.html#bpy.types.ShaderFxColorize) - [ShaderFxFlip (class in bpy.types)](bpy.types.ShaderFxFlip.html#bpy.types.ShaderFxFlip) - [ShaderFxGlow (class in bpy.types)](bpy.types.ShaderFxGlow.html#bpy.types.ShaderFxGlow) - [ShaderFxPixel (class in bpy.types)](bpy.types.ShaderFxPixel.html#bpy.types.ShaderFxPixel) - [ShaderFxRim (class in bpy.types)](bpy.types.ShaderFxRim.html#bpy.types.ShaderFxRim) - [ShaderFxShadow (class in bpy.types)](bpy.types.ShaderFxShadow.html#bpy.types.ShaderFxShadow) - [ShaderFxSwirl (class in bpy.types)](bpy.types.ShaderFxSwirl.html#bpy.types.ShaderFxSwirl) - [ShaderFxWave (class in bpy.types)](bpy.types.ShaderFxWave.html#bpy.types.ShaderFxWave) - [ShaderNode (class in bpy.types)](bpy.types.ShaderNode.html#bpy.types.ShaderNode) - [ShaderNodeAddShader (class in bpy.types)](bpy.types.ShaderNodeAddShader.html#bpy.types.ShaderNodeAddShader) - [ShaderNodeAmbientOcclusion (class in bpy.types)](bpy.types.ShaderNodeAmbientOcclusion.html#bpy.types.ShaderNodeAmbientOcclusion) - [ShaderNodeAttribute (class in bpy.types)](bpy.types.ShaderNodeAttribute.html#bpy.types.ShaderNodeAttribute) - [ShaderNodeBackground (class in bpy.types)](bpy.types.ShaderNodeBackground.html#bpy.types.ShaderNodeBackground) - [ShaderNodeBevel (class in bpy.types)](bpy.types.ShaderNodeBevel.html#bpy.types.ShaderNodeBevel) - [ShaderNodeBlackbody (class in bpy.types)](bpy.types.ShaderNodeBlackbody.html#bpy.types.ShaderNodeBlackbody) - [ShaderNodeBrightContrast (class in bpy.types)](bpy.types.ShaderNodeBrightContrast.html#bpy.types.ShaderNodeBrightContrast) - [ShaderNodeBsdfAnisotropic (class in bpy.types)](bpy.types.ShaderNodeBsdfAnisotropic.html#bpy.types.ShaderNodeBsdfAnisotropic) - [ShaderNodeBsdfDiffuse (class in bpy.types)](bpy.types.ShaderNodeBsdfDiffuse.html#bpy.types.ShaderNodeBsdfDiffuse) - [ShaderNodeBsdfGlass (class in bpy.types)](bpy.types.ShaderNodeBsdfGlass.html#bpy.types.ShaderNodeBsdfGlass) - [ShaderNodeBsdfHair (class in bpy.types)](bpy.types.ShaderNodeBsdfHair.html#bpy.types.ShaderNodeBsdfHair) - [ShaderNodeBsdfHairPrincipled (class in bpy.types)](bpy.types.ShaderNodeBsdfHairPrincipled.html#bpy.types.ShaderNodeBsdfHairPrincipled) - [ShaderNodeBsdfMetallic (class in bpy.types)](bpy.types.ShaderNodeBsdfMetallic.html#bpy.types.ShaderNodeBsdfMetallic) - [ShaderNodeBsdfPrincipled (class in bpy.types)](bpy.types.ShaderNodeBsdfPrincipled.html#bpy.types.ShaderNodeBsdfPrincipled) - [ShaderNodeBsdfRayPortal (class in bpy.types)](bpy.types.ShaderNodeBsdfRayPortal.html#bpy.types.ShaderNodeBsdfRayPortal) - [ShaderNodeBsdfRefraction (class in bpy.types)](bpy.types.ShaderNodeBsdfRefraction.html#bpy.types.ShaderNodeBsdfRefraction) - [ShaderNodeBsdfSheen (class in bpy.types)](bpy.types.ShaderNodeBsdfSheen.html#bpy.types.ShaderNodeBsdfSheen) - [ShaderNodeBsdfToon (class in bpy.types)](bpy.types.ShaderNodeBsdfToon.html#bpy.types.ShaderNodeBsdfToon) - [ShaderNodeBsdfTranslucent (class in bpy.types)](bpy.types.ShaderNodeBsdfTranslucent.html#bpy.types.ShaderNodeBsdfTranslucent) - [ShaderNodeBsdfTransparent (class in bpy.types)](bpy.types.ShaderNodeBsdfTransparent.html#bpy.types.ShaderNodeBsdfTransparent) - [ShaderNodeBump (class in bpy.types)](bpy.types.ShaderNodeBump.html#bpy.types.ShaderNodeBump) - [ShaderNodeCameraData (class in bpy.types)](bpy.types.ShaderNodeCameraData.html#bpy.types.ShaderNodeCameraData) - [ShaderNodeClamp (class in bpy.types)](bpy.types.ShaderNodeClamp.html#bpy.types.ShaderNodeClamp) - [ShaderNodeCombineColor (class in bpy.types)](bpy.types.ShaderNodeCombineColor.html#bpy.types.ShaderNodeCombineColor) - [ShaderNodeCombineXYZ (class in bpy.types)](bpy.types.ShaderNodeCombineXYZ.html#bpy.types.ShaderNodeCombineXYZ) - [ShaderNodeCustomGroup (class in bpy.types)](bpy.types.ShaderNodeCustomGroup.html#bpy.types.ShaderNodeCustomGroup) - [ShaderNodeDisplacement (class in bpy.types)](bpy.types.ShaderNodeDisplacement.html#bpy.types.ShaderNodeDisplacement) - [ShaderNodeEeveeSpecular (class in bpy.types)](bpy.types.ShaderNodeEeveeSpecular.html#bpy.types.ShaderNodeEeveeSpecular) - [ShaderNodeEmission (class in bpy.types)](bpy.types.ShaderNodeEmission.html#bpy.types.ShaderNodeEmission) - [ShaderNodeFloatCurve (class in bpy.types)](bpy.types.ShaderNodeFloatCurve.html#bpy.types.ShaderNodeFloatCurve) - [ShaderNodeFloatCurve.mapping (in module bpy.types)](bpy.types.ShaderNodeFloatCurve.html#bpy.types.ShaderNodeFloatCurve.mapping) - [ShaderNodeFresnel (class in bpy.types)](bpy.types.ShaderNodeFresnel.html#bpy.types.ShaderNodeFresnel) - [ShaderNodeGamma (class in bpy.types)](bpy.types.ShaderNodeGamma.html#bpy.types.ShaderNodeGamma) - [ShaderNodeGroup (class in bpy.types)](bpy.types.ShaderNodeGroup.html#bpy.types.ShaderNodeGroup) - [ShaderNodeHairInfo (class in bpy.types)](bpy.types.ShaderNodeHairInfo.html#bpy.types.ShaderNodeHairInfo) - [ShaderNodeHoldout (class in bpy.types)](bpy.types.ShaderNodeHoldout.html#bpy.types.ShaderNodeHoldout) - [ShaderNodeHueSaturation (class in bpy.types)](bpy.types.ShaderNodeHueSaturation.html#bpy.types.ShaderNodeHueSaturation) - [ShaderNodeInvert (class in bpy.types)](bpy.types.ShaderNodeInvert.html#bpy.types.ShaderNodeInvert) - [ShaderNodeLayerWeight (class in bpy.types)](bpy.types.ShaderNodeLayerWeight.html#bpy.types.ShaderNodeLayerWeight) - [ShaderNodeLightFalloff (class in bpy.types)](bpy.types.ShaderNodeLightFalloff.html#bpy.types.ShaderNodeLightFalloff) - [ShaderNodeLightPath (class in bpy.types)](bpy.types.ShaderNodeLightPath.html#bpy.types.ShaderNodeLightPath) - [ShaderNodeMapping (class in bpy.types)](bpy.types.ShaderNodeMapping.html#bpy.types.ShaderNodeMapping) - [ShaderNodeMapRange (class in bpy.types)](bpy.types.ShaderNodeMapRange.html#bpy.types.ShaderNodeMapRange) - [ShaderNodeMath (class in bpy.types)](bpy.types.ShaderNodeMath.html#bpy.types.ShaderNodeMath) - [ShaderNodeMix (class in bpy.types)](bpy.types.ShaderNodeMix.html#bpy.types.ShaderNodeMix) - [ShaderNodeMixRGB (class in bpy.types)](bpy.types.ShaderNodeMixRGB.html#bpy.types.ShaderNodeMixRGB) - [ShaderNodeMixShader (class in bpy.types)](bpy.types.ShaderNodeMixShader.html#bpy.types.ShaderNodeMixShader) - [ShaderNodeNewGeometry (class in bpy.types)](bpy.types.ShaderNodeNewGeometry.html#bpy.types.ShaderNodeNewGeometry) - [ShaderNodeNormal (class in bpy.types)](bpy.types.ShaderNodeNormal.html#bpy.types.ShaderNodeNormal) - [ShaderNodeNormalMap (class in bpy.types)](bpy.types.ShaderNodeNormalMap.html#bpy.types.ShaderNodeNormalMap) - [ShaderNodeObjectInfo (class in bpy.types)](bpy.types.ShaderNodeObjectInfo.html#bpy.types.ShaderNodeObjectInfo) - [ShaderNodeOutputAOV (class in bpy.types)](bpy.types.ShaderNodeOutputAOV.html#bpy.types.ShaderNodeOutputAOV) - [ShaderNodeOutputLight (class in bpy.types)](bpy.types.ShaderNodeOutputLight.html#bpy.types.ShaderNodeOutputLight) - [ShaderNodeOutputLineStyle (class in bpy.types)](bpy.types.ShaderNodeOutputLineStyle.html#bpy.types.ShaderNodeOutputLineStyle) - [ShaderNodeOutputMaterial (class in bpy.types)](bpy.types.ShaderNodeOutputMaterial.html#bpy.types.ShaderNodeOutputMaterial) - [ShaderNodeOutputWorld (class in bpy.types)](bpy.types.ShaderNodeOutputWorld.html#bpy.types.ShaderNodeOutputWorld) - [ShaderNodeParticleInfo (class in bpy.types)](bpy.types.ShaderNodeParticleInfo.html#bpy.types.ShaderNodeParticleInfo) - [ShaderNodePointInfo (class in bpy.types)](bpy.types.ShaderNodePointInfo.html#bpy.types.ShaderNodePointInfo) - [ShaderNodeRadialTiling (class in bpy.types)](bpy.types.ShaderNodeRadialTiling.html#bpy.types.ShaderNodeRadialTiling) - [ShaderNodeRGB (class in bpy.types)](bpy.types.ShaderNodeRGB.html#bpy.types.ShaderNodeRGB) - [ShaderNodeRGBCurve (class in bpy.types)](bpy.types.ShaderNodeRGBCurve.html#bpy.types.ShaderNodeRGBCurve) - [ShaderNodeRGBCurve.m