{"id":28328675,"url":"https://github.com/memergamer/cuda-fluid-simulation-with-interactive-visualization","last_synced_at":"2026-05-18T01:02:09.850Z","repository":{"id":295267502,"uuid":"989647494","full_name":"MemerGamer/CUDA-Fluid-Simulation-with-Interactive-Visualization","owner":"MemerGamer","description":"A real-time fluid dynamics simulation implemented in Python using CUDA for GPU acceleration, featuring interactive ASCII visualization and automated movement patterns.","archived":false,"fork":false,"pushed_at":"2025-05-24T14:51:40.000Z","size":71,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-02T17:29:11.240Z","etag":null,"topics":["colab-notebook","cuda","liquid-simulations","navier-stokes"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MemerGamer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-24T14:32:51.000Z","updated_at":"2025-05-24T14:51:43.000Z","dependencies_parsed_at":"2025-05-24T15:57:42.367Z","dependency_job_id":null,"html_url":"https://github.com/MemerGamer/CUDA-Fluid-Simulation-with-Interactive-Visualization","commit_stats":null,"previous_names":["memergamer/cuda-fluid-simulation-with-interactive-visualization"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MemerGamer/CUDA-Fluid-Simulation-with-Interactive-Visualization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MemerGamer%2FCUDA-Fluid-Simulation-with-Interactive-Visualization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MemerGamer%2FCUDA-Fluid-Simulation-with-Interactive-Visualization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MemerGamer%2FCUDA-Fluid-Simulation-with-Interactive-Visualization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MemerGamer%2FCUDA-Fluid-Simulation-with-Interactive-Visualization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MemerGamer","download_url":"https://codeload.github.com/MemerGamer/CUDA-Fluid-Simulation-with-Interactive-Visualization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MemerGamer%2FCUDA-Fluid-Simulation-with-Interactive-Visualization/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263984988,"owners_count":23539769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["colab-notebook","cuda","liquid-simulations","navier-stokes"],"created_at":"2025-05-26T08:16:24.229Z","updated_at":"2026-05-18T01:02:04.785Z","avatar_url":"https://github.com/MemerGamer.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CUDA Fluid Simulation with Interactive Visualization\n\nA real-time fluid dynamics simulation implemented in Python using CUDA for GPU acceleration, featuring interactive ASCII visualization and automated movement patterns.\n\n## ✨ Features\n\n### 🚀 High-Performance Computing\n- **CUDA GPU Acceleration**: Leverages GPU parallel processing for real-time fluid simulation\n- **80x80 Grid Resolution**: High-resolution simulation with 6,400 fluid cells\n- **Real-time Physics**: Implements a stable, semi-Lagrangian approximation of the Navier-Stokes equations for incompressible fluids\n\n### 🎮 Interactive Controls\n- **Manual Control**: Arrow keys and buttons for cursor movement\n- **Force Application**: Add directional forces and density sources\n- **Multiple Input Methods**: Button interface + keyboard shortcuts\n- **Real-time Interaction**: Immediate response to user input\n\n### 🎨 Advanced Visualization\n- **Three Display Modes**:\n  - **Density Mode**: Blue gradient showing fluid concentration\n  - **Velocity Mode**: Rainbow arrows showing flow direction and speed\n  - **Combined Mode**: Dynamic switching between density and velocity visualization\n- **Enhanced Color Schemes**: 10+ color gradients for better visual clarity\n- **ASCII Art Rendering**: Monospace character-based fluid representation\n\n### 🎬 Automated Animations\n- **6 Movement Patterns**:\n  - 🎲 **Random Walk**: Chaotic Brownian motion with random forces\n  - 🌀 **Spiral**: Expanding spiral with tangential forces\n  - ∞ **Figure-8**: Smooth parametric figure-eight pattern\n  - ⚽ **Bouncing Ball**: Physics-based collision simulation\n  - 🌪️ **Vortex Dance**: Multiple moving vortices interaction\n  - 🎯 **Random Pattern**: Randomly selected pattern\n- **100 Frame Sequences**: Extended animations for pattern analysis\n\n## 🔧 Technical Implementation\n\n### Physics Engine\n```\nNavier-Stokes Equations Implementation:\n- Velocity diffusion with viscosity\n- Density advection and diffusion  \n- Pressure projection for incompressibility\n- Boundary condition enforcement\n```\n\n### CUDA Kernels\n- `add_source`: Density injection\n- `diffuse`: Heat equation solver\n- `advect`: Semi-Lagrangian advection\n- `project`: Pressure Poisson solver\n- `apply_force`: Force field application\n- `clear_fields`: Memory reset\n\n### Memory Management\n- GPU memory allocation for all field variables\n- Efficient device-to-host transfers\n- Automatic cleanup on exit\n\n## 🎮 Controls Reference\n\n### Keyboard Shortcuts\n| Key | Action |\n|-----|--------|\n| `↑↓←→` | Move cursor \u0026 add directional force |\n| `Space` | Add density at cursor position |\n| `S` | Single simulation step |\n| `A` | Toggle auto-update mode |\n| `C` | Clear simulation (reset all fields) |\n| `M` | Cycle through display modes |\n\n### Button Interface\n- **Navigation**: Arrow buttons for precise movement\n- **Simulation Control**: Step, Auto, Clear, Mode, Quit\n- **Force Control**: Directional forces and density injection\n- **Animation Control**: 6 automated movement patterns\n\n## 📊 Display Modes\n\n### 1. Density Mode 💧\n- **Purpose**: Visualize fluid concentration and distribution\n- **Colors**: Blue gradient (dark blue → light blue → yellow → orange → red)\n- **Characters**: ` .·:;!|▪▫▪■` (increasing density)\n\n### 2. Velocity Mode 🌊  \n- **Purpose**: Show flow direction and speed\n- **Colors**: Rainbow gradient (green → yellow → orange → red)\n- **Characters**: Directional arrows `→↘↓↙←↖↑↗`\n\n### 3. Combined Mode 🌀\n- **Purpose**: Dynamic visualization switching\n- **Logic**: Shows velocity arrows when flow \u003e threshold, otherwise density\n- **Benefit**: Comprehensive fluid state visualization\n\n## 🎬 Animation Patterns\n\n### Random Walk 🎲\n- **Behavior**: Chaotic movement with random directional forces\n- **Physics**: Brownian motion simulation\n- **Parameters**: Random force magnitude (1.0-3.0), density (20-60)\n\n### Spiral 🌀\n- **Behavior**: Expanding spiral with tangential forces\n- **Mathematics**: $r \\space = \\space frame \\cdot 0.1$, $\\spaceθ = frame \\cdot 0.3$\n- **Forces**: Perpendicular to radius for circulation\n\n### Figure-8 ∞\n- **Behavior**: Smooth parametric motion\n- **Mathematics**: $x \\space = \\space scale \\cdot \\sin(t)$, $\\space y \\space = \\space scale \\cdot \\sin(t) \\cdot \\cos(t)$\n- **Pattern**: Classical Lissajous curve\n\n### Bouncing Ball ⚽\n- **Behavior**: Physics-based collision with walls\n- **Features**: Velocity damping, realistic bouncing\n- **Physics**: Elastic collision with energy loss\n\n### Vortex Dance 🌪️\n- **Behavior**: Three moving vortices creating complex flow\n- **Pattern**: Orbital motion with phase shifts\n- **Interaction**: Multiple vortex interference patterns\n\n## 🔬 Scientific Applications\n\n### Fluid Dynamics Research\n- **Educational Tool**: Visualize Navier-Stokes equation solutions\n- **Pattern Analysis**: Study vortex formation and decay\n- **Boundary Effects**: Observe wall interaction effects\n\n### Computational Methods\n- **GPU Programming**: CUDA kernel optimization examples\n- **Numerical Methods**: Finite difference schemes\n- **Real-time Simulation**: Interactive parameter exploration\n\n## 🚀 Performance Specifications\n\n### System Requirements\n- **GPU**: CUDA-compatible graphics card\n- **Memory**: 2GB+ GPU memory recommended\n- **Software**: Python 3.7+, PyCUDA, Jupyter/Colab\n\n### Performance Metrics\n- **Grid Size**: 80×80 = 6,400 cells\n- **Update Rate**: ~5-10 FPS (depending on hardware)\n- **Memory Usage**: ~50MB GPU memory\n- **Precision**: 32-bit floating point\n\n## 🔮 Future Enhancements\n\n### Potential Improvements\n- [ ] 3D visualization support\n- [ ] Variable viscosity and diffusion\n- [ ] Particle tracking overlay\n- [ ] Video export functionality\n- [ ] Real-time parameter adjustment\n- [ ] Multiple fluid interaction\n- [ ] Texture rendering options\n\n### Advanced Features\n- [ ] Lattice Boltzmann method\n- [ ] Free surface tracking\n- [ ] Heat transfer simulation\n- [ ] Magnetic field effects\n\n## 📚 References\n\n### Scientific Background\n- **Navier-Stokes Equations**: Foundation of fluid dynamics\n- **Jos Stam's Method**: \"Real-Time Fluid Dynamics for Games\" (1999)\n- **Semi-Lagrangian Advection**: Stable numerical scheme\n- **Pressure Projection**: Helmholtz-Hodge decomposition\n\n### Implementation Resources\n- **CUDA Programming**: NVIDIA CUDA Toolkit Documentation\n- **Numerical Methods**: \"Numerical Recipes\" computational techniques\n- **Interactive Visualization**: Jupyter widgets and HTML5\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemergamer%2Fcuda-fluid-simulation-with-interactive-visualization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemergamer%2Fcuda-fluid-simulation-with-interactive-visualization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemergamer%2Fcuda-fluid-simulation-with-interactive-visualization/lists"}