 ]
 
 shared_source = ```
+	f32 sinu(f32 x) {
+		return abs(sin(x));
+	}
+
 	PARAM_BLOCK_FIXED(ColorFactors, 0) {
 		f32 rg;
 		f32 gb;

	VERT_ATTR(0) Vec2 a_pos;
	VERT_ATTR(1) Vec3 a_color;

	f32 sinu(f32 x) {
		return abs(sin(x));
	}

	MAIN {
		// frag_color = a_color;
		frag_color = Vec3(

fragment_source = ```
	FRAG_RESULT(0) Vec4 RESULT0;

	MAIN {
		Vec3 c = 1.0 - frag_color;
		RESULT0 = Vec4(c * sinu(0.60 * p_osc.time), 1.0);
