What problem does it solve? Building convincing 3D smoke effects in Godot requires coordinating a billboard particle shader, a particle process material, and a controller script — a combination with many silent failure modes like clamped scale curves, missing shader includes, and incorrect CUSTOM attribute reads. ## Core Features & Use Cases - Complete smoke recipe: Provides a ready-to-use spatial shader with FBM noise, a @tool GDScript controller for GPUParticles3D, and exact MCP wiring steps to add the node to any scene. - Named cookbook variants: Ships tuned parameter sets for chimney smoke, black fire smoke, steam vents, rocket trails, and fog banks. - Pitfall documentation: Covers anti-patterns like using blend_add, forgetting cull_disabled, and reading CUSTOM in fragment() instead of vertex-stage INSTANCE_CUSTOM. - Use Case: After placing a campfire in a scene, ask the agent to add rising smoke above the flame — it writes the shader and controller files, adds the GPUParticles3D node, and verifies with a screenshot. ## Quick Start Add a smoke plume rising above the campfire in my main scene using the vfx-smoke recipe.