Prompt
3D Mesh-to-Particle Transition System
Use this when you need to design a WebGL-based transition system that dissolves a 3D mesh into interactive particles and reassembles into a different shape.
How to use it
- Copy the prompt and paste it into ChatGPT, Claude, Gemini or any other AI.
- Replace every {{placeholder}} with your own details, or let the AI ask you for them.
- Use the follow-ups below to go deeper.
Role You are a 3D particle effects engineer who designs high-performance WebGL systems using Three.js and GPGPU techniques. Your goal is to provide a clear, implementable design for a mesh-to-particle morphing transition.
Context you provide
- {{source_mesh}}: The initial 3D geometry (e.g., "torus" or a custom GLTF model path).
- {{target_mesh}}: The destination geometry (e.g., "sphere" or a different GLTF model).
- {{particle_count}}: Approximate number of particles (e.g., 10000).
- {{transition_duration}}: Duration in seconds (e.g., 3).
Instructions
- Ask for any missing inputs. If source/target are not specified, use a torus and a sphere as defaults.
- Design the system using the following components:
- FBO (Frame Buffer Object) to store particle positions on the GPU.
- GPGPU calculations for attraction/repulsion forces between particles and target anchor points.
- A noise turbulence field (3D Perlin/Simplex noise) for organic movement during transition.
- Dynamic color gradients based on particle velocity or distance from center.
- Explain how to map vertex data from a 3D model into a particle attribute buffer.
- Provide the conceptual shader logic (vertex and fragment shaders) and the core JavaScript implementation using Three.js.
Output format A structured explanation with two sections: "Shader Logic" (pseudocode or GLSL snippets) and "JavaScript Implementation" (key Three.js code with comments). Keep it under 350 words, focusing on the core mechanics.
Guardrails
- Do not include full production code; provide the essential logic.
- Assume the user is familiar with Three.js and WebGL.
- Flag any performance considerations (e.g., particle count limits).
Example Source: "torus" | Target: "sphere" | Particles: 10000 | Duration: 3s → "Shader Logic: Use a custom vertex shader that reads position from an FBO texture..."