본문으로 건너뛰기
cccskills
무료GitHub에 공개

rocaille-shader

Generate Rocaille-style domain warping shaders, mouse-reactive liquid logo effects, depth-map parallax heroes (Astryx-style hover-reactive statues), and stable fluid simulations over live DOM. Four modes — rocaille, liquid-logo, astryx-statue, fluid-dom. Triggers on shader art, depth parallax, hover-reactive depth map, statue hero, fluid sim, liquid logo, WebGL visualization, procedural background, pointer-reactive fluid.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(15)

  • SKILL.md7.7 KB
  • assets/templates/interactive.html15.9 KB
  • assets/templates/liquid-logo.glsl2.8 KB
  • assets/templates/liquid-logo.html13.4 KB
  • assets/templates/p5js.js5.1 KB
  • assets/templates/shadertoy.glsl1.7 KB
  • assets/templates/threejs.js4.4 KB
  • assets/templates/vanilla-webgl.html7.8 KB
  • README.md5.0 KB
  • references/domain-warping.md4.9 KB
  • references/fluid-dom.md5.6 KB
  • references/glsl-patterns.md5.5 KB
  • references/liquid-logo.md5.7 KB
  • references/rocaille-complete.md6.0 KB
  • scripts/rocaille_generator.py45.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Rocaille Shader Skill

Generate organic, swirling light effects through progressive domain warping - a technique that creates increasingly complex patterns by iteratively displacing coordinates using sinusoidal functions.

Core Technique

The Rocaille effect builds complexity through repeated application of:

v += sin(v.yx + t) / amplitude;

Where:

  • v is a 2D coordinate vector
  • v.yx swaps x/y components creating characteristic swirl
  • t is time for animation
  • amplitude controls warp intensity (1.0 = strong, 4.0 = subtle)
  • Each iteration adds more organic complexity

Quick Reference

WarpsEffectUse Case
1-2Subtle waveBackgrounds, subtle motion
3-5Organic flowMusic visualizers, hero sections
6-9Complex swirlPsychedelic effects, main attraction
10+ChaoticExperimental, glitch art

Usage

To generate a shader, specify:

  1. Warp count (1-15): Number of displacement iterations
  2. Color mode: basic, rainbow, monochrome, neon, or custom RGB
  3. Output format: shadertoy, threejs, webgl, p5js

Generate Custom Shader

Run the generator script:

python3 scripts/rocaille_generator.py --warps 5 --color rainbow --format shadertoy

Options:

  • --warps N - Number of warp iterations (default: 5)
  • --color MODE - Color mode: basic, rainbow, monochrome, neon (default: rainbow)
  • --format FMT - Output format: shadertoy, threejs, webgl, p5js, all (default: shadertoy)
  • --amplitude N - Warp intensity divisor (default: 2.0)
  • --speed N - Animation speed multiplier (default: 1.0)
  • --demo - Generate interactive HTML demo page

Asset Templates

Pre-built templates available in assets/templates/:

TemplateDescription
shadertoy.glslShadertoy-compatible fragment shader
threejs.jsThree.js ShaderMaterial with uniforms
vanilla-webgl.htmlPure WebGL2, no dependencies
p5js.jsP5.js shader mode integration
interactive.htmlFull demo with controls
liquid-logo.glslShadertoy liquid-logo reference (reads iChannel0)
liquid-logo.htmlStandalone liquid-logo runtime (drop logo.png beside it, or pass ?logo=…)

Implementation Patterns

Minimal Shadertoy

void mainImage(out vec4 fragColor, in vec2 fragCoord) {
    vec2 uv = (fragCoord - 0.5 * iResolution.xy) / iResolution.y;
    vec2 v = uv;

    for(int i = 0; i < 5; i++) {
        v += sin(v.yx + iTime) / 2.0;
    }

    float d = 1.0 / length(v);
    fragColor = vec4(vec3(d * 0.1), 1.0);
}

Three.js Integration

const material = new THREE.ShaderMaterial({
    uniforms: {
        uTime: { value: 0 },
        uWarpCount: { value: 5 },
        uAmplitude: { value: 2.0 }
    },
    vertexShader: vertexCode,
    fragmentShader: fragmentCode
});

// In animation loop
material.uniforms.uTime.value = performance.now() / 1000;

Customization

Base Shape Variations

Replace 1.0 / length(v) with:

  • length(v) - Inverted (dark center)
  • sin(length(v) * 10.0) - Ripple rings
  • abs(v.x) + abs(v.y) - Diamond shape
  • max(abs(v.x), abs(v.y)) - Square shape

Color Mapping

// Rainbow based on angle
vec3 color = 0.5 + 0.5 * cos(atan(v.y, v.x) + vec3(0, 2, 4));

// Neon glow
vec3 color = vec3(d * 0.2, d * 0.05, d * 0.3);

// Temperature gradient
vec3 color = mix(vec3(0.1, 0.2, 0.8), vec3(1.0, 0.3, 0.1), d);

Liquid Logo Mode

Apply the domain-warp family to a texture instead of a procedural distance field. A pointer-driven radial warp + chromatic aberration makes a static image or SVG logo ripple, bend, and refract around the cursor, with an optional Lissajous idle breathing when the pointer is inactive. Use for hero sections, brand reveals, loading moments, or any hover state where the logo should feel alive.

Generate a self-contained HTML

python3 scripts/rocaille_generator.py \
    --mode liquid-logo \
    --input path/to/logo.svg \
    --output liquid.html

The output embeds the image as a base64 data URI — the generated HTML is a single file with no external dependencies.

Tuning parameters

FlagDefaultEffect
--distortion0.40Peak UV pull toward the cursor
--radius0.25Gaussian falloff radius (smaller = tighter ripple)
--decay3.0Release decay rate (higher = snappier relax)
--chroma0.015RGB-channel UV split magnitude
--idle / --no-idleonLissajous idle breathing when cursor is still

The runtime respects prefers-reduced-motion (halves distortion and idle amplitude) and pauses its RAF loop on visibilitychange, so the effect consumes zero GPU when the tab is hidden.

For the shader math (radial Gaussian falloff, UV pull direction, cursor-aligned chromatic offset), see references/liquid-logo.md.

Reference Documentation

For deeper understanding:

  • references/rocaille-complete.md - Full 8-step shader breakdown
  • references/domain-warping.md - Theory from Inigo Quilez
  • references/glsl-patterns.md - Common GLSL patterns used
  • references/liquid-logo.md - Liquid logo math (falloff, pull, chromatic offset)
  • references/fluid-dom.md - Stable fluid sim over live DOM (Navier-Stokes pipeline, VFX-JS lineage)

Combining Effects

Layer with other techniques:

  • Bloom: Apply gaussian blur to bright areas
  • Grain: Add fract(sin(dot(uv, vec2(12.9898, 78.233))) * 43758.5453)
  • Vignette: Multiply by 1.0 - length(uv) * 0.5
  • Chromatic aberration: Sample RGB at slightly offset UVs

Attribution

  • Rocaille domain-warp technique — the core v += sin(v.yx + t) / amplitude formula and the theory behind it come from Inigo Quilez's domain warping article (iq / Shadertoy).
  • Liquid Logo mode — inspired by LiquidLogo by Gustav WF (@gustavwf / gustavwf.supply), a free Framer component. The liquid-logo shader here is reimplemented from scratch from first principles (radial Gaussian falloff, UV displacement, cursor-aligned chromatic offset) — it is not a port of Gustav's code and does not redistribute any of his files. If you want a drop-in Framer component, get it directly from him; if you want a standalone HTML file or a Shadertoy-compatible shader, this skill generates one.
  • Astryx-statue mode — pattern studied from Astryx (Framer + Unicorn Studio). The depth-parallax shader technique descends from Robin Delaporte's CodePen (the universal ancestor of web depth-parallax heroes). Production reference: DepthFlow by BrokenSource (AGPL, reference only — not a dependency).
  • Fluid-DOM mode — pattern studied from Amagi's "Stable Fluid on VFX-JS" CodePen. Shader lineage: Pavel DoGreat's WebGL-Fluid-Simulation (MIT). Theory: Jos Stam, "Real-Time Fluid Dynamics for Games" (GDC 2003).

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Search academic papers, build literature reviews, and synthesize research findings — combines Exa search (publication category, domain and date filters) with arxiv-mcp-server for paper discovery, download, and deep analysis. Triggers on academic paper, literature review, research synthesis, arxiv, find papers, scholarly search.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 20일 업데이트

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 20일 업데이트

This skill should be used when creating, auditing, or maintaining AGENTS.md files and Codex CLI configuration for any project—including initializing AGENTS.md for cross-agent compatibility (Codex, Cursor, Copilot, Devin, Jules, Amp, Gemini CLI), generating config.toml or .rules files, scaffolding .agents/skills/, converting CLAUDE.md to AGENTS.md, or auditing existing agent configs for bloat and staleness. Complementary to codex-orchestrator (which executes subagents; this skill creates the config files they consume).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 20일 업데이트

Academic research skill for Biblical Hebrew, Semitic linguistics, cuneiform studies, and comparative Ancient Near Eastern research. Provides Sefaria API for Hebrew Bible, CDLI/ORACC for cuneiform databases, and web discovery via Omnisearch, Exa, Firecrawl, and Obscura for finding scholarly sources across JSTOR, Perseus, Persée, Google Scholar, and academia.edu. Triggers on Hebrew quotes, cuneiform, Sefaria, ANE research, Minoan, search for scholarship, find papers, literature review, scholarly search, academic search, Genesis/Tehom, Ugaritic, Talmudic sources, extract from PDF, OCR academic.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 20일 업데이트

Build comprehensive ARCHITECTURE.md files following matklad's canonical guidelines — bird's-eye views, ASCII/Mermaid diagrams, codemaps, invariants, and layer boundaries. Triggers on document the architecture, create ARCHITECTURE.md, map this codebase, architectural overview.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 20일 업데이트

Generate physically-based atmospheric scattering shaders — sky domes, planetary atmospheres, LUT-optimized pipelines, depth-aware post-processing. Four modes — sky-dome, atmosphere-post, planet, lut. Triggers on atmospheric scattering, sky shader, sunset rendering, planet atmosphere, Rayleigh scattering, Mie scattering, volumetric sky, sky dome, atmosphere post-processing, aerial perspective, transmittance LUT, sky rendering, realistic sky, planetary rendering.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 20일 업데이트

tdimino의 스킬 모두 보기

이 스킬의 문제 신고