AI GENERATED
カオスな果物
by touyou
PROMPT
神々の戯れ、木々のさざめき、海の揺れ、カオスを飲み込んで調和が訪れる
- DATE
- 2026/7/24
- SOURCE
- AI GENERATED
- MODEL
- gemini-3.6-flash
- LIKES
- 0
VIEW SHADER CODE
mat2 rot(float a) {
float s = sin(a), c = cos(a);
return mat2(c, -s, s, c);
}
float hash(vec2 p) {
p = fract(p * vec2(123.34, 456.21));
p += dot(p, p + 45.32);
return fract(p.x * p.y);
}
float noise(vec2 p) {
vec2 i = floor(p);
vec2 f = fract(p);
f = f * f * (3.0 - 2.0 * f);
float a = hash(i);
float b = hash(i + vec2(1.0, 0.0));
float c = hash(i + vec2(0.0, 1.0));
float d = hash(i + vec2(1.0, 1.0));
return mix(mix(a, b, f.x), mix(c, d, f.x), f.y);
}
float fbm(vec2 p) {
float v = 0.0;
float a = 0.5;
mat2 R = rot(0.37);
for (int i = 0; i < 5; i++) {
v += a * noise(p);
p = R * p * 2.02 + vec2(1.6, 8.1);
a *= 0.5;
}
return v;
}
vec3 palette(float t, vec3 a, vec3 b, vec3 c, vec3 d) {
return a + b * cos(6.28318 * (c * t + d));
}
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = (fragCoord * 2.0 - iResolution.xy) / iResolution.y;
vec2 mouse = (iMouse.xy - iResolution.xy * 0.5) / iResolution.y;
if (iMouse.z <= 0.0) mouse = vec2(0.0);
uv += mouse * 0.15;
float t = iTime * 0.25;
float len = length(uv);
float angle = atan(uv.y, uv.x);
// Oceanic swaying foundation
vec2 p = uv * 1.4;
p += vec2(sin(p.y * 2.5 + t), cos(p.x * 2.5 + t * 0.8)) * 0.25;
// Multi-stage domain warping (Chaos)
vec2 q = vec2(0.0);
q.x = fbm(p + vec2(0.0, t * 0.4));
q.y = fbm(p + vec2(1.0, t * 0.3));
vec2 r = vec2(0.0);
r.x = fbm(p + 2.8 * q + vec2(1.7, 9.2) + t * 0.35);
r.y = fbm(p + 2.8 * q + vec2(8.3, 2.8) - t * 0.25);
float f = fbm(p + 3.2 * r);
// Harmonic sacred alignment emerging from chaos
float harmonicPulse = sin(iTime * 0.5) * 0.5 + 0.5;
float divineRays = pow(abs(sin(angle * 6.0 + fbm(uv * 2.5 + t * 0.5) * 3.0 - t)), 4.0);
float sacredRings = sin(len * 14.0 - t * 2.5 + f * 5.0) * 0.5 + 0.5;
// Theme 1: Sea Sway Palette (Deep Cyan / Indigo)
vec3 seaCol = palette(f + t * 0.08,
vec3(0.05, 0.15, 0.28),
vec3(0.12, 0.32, 0.42),
vec3(1.0, 1.0, 1.0),
vec3(0.0, 0.33, 0.67));
// Theme 2: Tree Rustle Palette (Emerald / Jade / Gold-Green)
vec3 leafCol = palette(length(r) + 0.2,
vec3(0.03, 0.22, 0.12),
vec3(0.15, 0.45, 0.25),
vec3(0.8, 1.0, 0.5),
vec3(0.1, 0.5, 0.2));
// Theme 3: Divine Harmony Palette (Amber / Celestial Gold)
vec3 divineCol = palette(divineRays + sacredRings * 0.4,
vec3(0.55, 0.42, 0.18),
vec3(0.45, 0.35, 0.15),
vec3(1.0, 0.9, 0.6),
vec3(0.05, 0.12, 0.25));
// Blending Chaos into Organic Harmony
vec3 col = mix(seaCol, leafCol, smoothstep(0.15, 0.85, r.x));
// Radiant divine light integration
float divineMask = exp(-len * 1.3) * 1.3 + divineRays * 0.45 * sacredRings;
col = mix(col, divineCol, clamp(divineMask, 0.0, 1.0));
// Celestial sparks / divinity playing in the atmospheric canopy
float sparkle = pow(fbm(uv * 12.0 + vec2(t * 1.5, -t * 1.2)), 6.0) * 6.0;
vec3 sparkleColor = vec3(1.0, 0.92, 0.75);
col += sparkleColor * sparkle * smoothstep(1.5, 0.1, len);
// Central harmonic glow
float centerCore = 0.09 / (len + 0.09);
col += divineCol * centerCore * 0.6;
// Vignette
float vig = smoothstep(1.8, 0.35, len);
col *= vig;
// Soft tonemapping & color depth enhancement
col = col / (1.0 + col * 0.55);
col = pow(col, vec3(0.88));
fragColor = vec4(col, 1.0);
}ZIP を展開して .playground を Xcode でダブルクリックし、Live View を表示して ▶ を押すとシェーダーがアニメーションします。Metal ソースは Resources/Shader.metal に独立ファイルとして入っているので、Xcode 上で直接編集できます。