		const life = lifeTime.div( lifeRange );

				const fakeLightEffect = positionLocal.y.oneMinus().max( 0.2 );

				const textureNode = texture( map, rotateUV( uv(), scaledTime.mul( rotateRange ) ) );

				const opacityNode = textureNode.a.mul( life.oneMinus() );

				const smokeColor = mix( color( 0x2c1501 ), color( 0x222222 ), positionLocal.y.mul( 3 ).clamp() );

				// create particles

				const smokeNodeMaterial = new THREE.SpriteNodeMaterial();
				smokeNodeMaterial.colorNode = mix( color( 0xf27d0c ), 