Shadertoy To Flutter

Portar Shadertoy GLSL-shaders till Flutter .frag-filer som faktiskt kompilerar och laddar.

av FlutterFlow · FlutterFlow/shadertoy_to_flutter_skill

Testad · Fungerar ★ 9.6/10

Shadertoy To Flutter — Portar Shadertoy GLSL-shaders till Flutter .frag-filer som faktiskt kompilerar och laddar.

Vad den gör

Konverterar en inklistrad Shadertoy-fragment-shader till en Flutter-kompatibel .frag-fil för FragmentProgram/Impeller, hanterar omskrivning av entry-point, iResolution/iTime/iChannel*-uniform-substitutioner, fill-vs-wrap-klassificering och Flutter/SkSL-specifika begränsningar (no #version, no array initializers, no integer min/max/clamp). Utlöses när en användare klistrar in eller länkar en Shadertoy-shader och vill köra den i Flutter, eller har en .frag-fil som inte kompileras på grund av kvarvarande Shadertoy-konstruktioner.

Testrapport

Körde en verklig portning av standard Shadertoy 'hello world' cosine-palette-shadern: baslinjen (utan skill) behöll en #version-direktiv och gl_FragCoord/iResolution/iTime uniform-namn, vilka Flutters Impeller-kompilator avvisar eller tyst matchar felaktigt enligt Flutters egen dokumentation; skillens utdata tog bort #version, lade till flutter/runtime_effect.glsl include, och döpte om till uSize/uTime/FlutterFragCoord() enligt dess dokumenterade bindningsregler – en konkret skillnad mellan att kompilera eller inte, inte bara stil.

Testad: 2026-07-15 · Claude Code 2.x (agent harness)

Installation

git clone https://github.com/FlutterFlow/shadertoy_to_flutter_skill
mkdir -p ~/.claude/skills
cp -r shadertoy_to_flutter_skill ~/.claude/skills/shadertoy-to-flutter

Kommandon och exempelprompter

  • /shadertoy-to-flutterPortar Shadertoy GLSL-shaders till Flutter .frag-filer som faktiskt kompilerar och laddar.

Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):

  • Can you port this Shadertoy shader into a working Flutter fragment shader?
  • My .frag file won't compile in Flutter, it still references iResolution
  • Convert this GLSL mainImage function into Flutter's FragmentProgram API