cinight/MinimalCompute
cinight/MinimalCompute has 1,529 GitHub stars and 145 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-06 07:15 UTC. Last push 2026-03-24.
Minimal test scenes contains compute shaders, compute buffers etc Playing with the transport between CPU <-> GPU
Measured star growth
- in 24h
- +1
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalMinimal Compute Shader Examples
Minimal test scenes contains compute shaders, compute buffers etc Playing with the transport between CPU <-> GPU
Unity version : 6000.3 (Unity 6.3), contains both BuiltinRP and Universal Render Pipeline (URP) scenes
See branches for older Unity versions
Tested with : Win DX11
| Scene | Image | Description |
|---|---|---|
| 🔷 01_Compute_Texture 🔷 | ||
01_1_Basic |
![]() |
The most basic one, edit texture with compute shader, shader takes the texture for rendering |
01_2_FallingSand |
![]() |
Example of using compute to animate texture pixels |
01_3_Fluid_2D |
![]() |
GPU Fluid. Ref to Scrawk/GPU-GEMS-2D-Fluid-Simulation |
01_4_Fluid_3D |
![]() |
A 3D version based on above GPU Fluid |
| 🔷 02_StructuredBuffer 🔷 | ||
02_1_StructuredBufferNoCompute |
![]() |
ComputeBuffer can also be used in Shader, not just ComputeShader. The folder contains implementation of unlit vert-frag, surface shader and unlit URP shader |
02_2_ComputePaintTexture |
![]() |
Paint the texture by sending object positions to compute shader with StructuredBuffer |
02_3_RotatingCircles |
![]() |
Similar to above, just another playground scene |
02_4_ComputePaintTexture_DFT |
![]() |
Similar to above but drawing with Epicycles using Discrete Fourier Transform. Ref to The Coding Train's youtube video |
02_5_ComputeParticlesDirect |
![]() |
GPU Particle, drawing fixed no. of particles |
02_6_ComputeSketch |
![]() |
Draw quads on the screen with color filled by compute shader |
02_7_ShimmerSphere |
![]() |
Pass spheres position and radius to quad material for a fake shimmer effect |
| 🔷 03_GPU_to_CPU 🔷 | ||
03_1_StructuredBufferWithCompute |
![]() |
Another basic one, use compute to calculate some data and send back to CPU |
03_2_AsyncGPUReadback |
![]() |
Similar to StructuredBufferWithCompute, but use AsyncGPUReadback to get array data back to CPU |
03_3_AsyncGPUReadbackTex |
![]() |
Result is same as ComputeUAVTexture, but this scene uses AsyncGPUReadback to get texture data back to CPU, and CPU send the texture data to Shader for rendering |
03_4_AsyncGPUReadbackMesh |
![]() |
Update mesh vertices with compute + AsyncGPUReadback to get the vertex data back to CPU for physics |
03_5_AsyncGPUReadbackMesh_NewMeshAPI |
![]() |
Same as above but using the new Mesh API |
03_6_PixelPercentage |
Count the filled pixel percentage | |
03_7_ColorPalette |
Find the top colors and replace them | |
| 🔷 04_Indirect 🔷 | ||
04_1_IndirectCompute |
![]() |
Simple indirect compute (indirect dispatch) and CopyCount |
04_2_ComputeParticlesIndirect |
![]() |
GPU Particle, drawing dynamic no. of particles, no need to read back to CPU! |
04_3_ComputeParticlesIndirect_VFX |
![]() |
Implementation of above scene with VFX graph |
04_4_IndirectReflectedStar |
![]() |
Draw stars on the screen only if the pixels are bright enough |
| 🔷 05_Shader_to_CPU 🔷 | ||
05_1_UAVInShader |
![]() |
Read some data back to CPU from fragment shader |
05_2_ShaderBakeToTexture |
![]() |
Bake shader pixel result to texture |
| 🔷 06_Compute_Mesh 🔷 | ||
06_1_ComputeVertex |
![]() |
Replace vertex buffer with StructuredBuffer and drive vertex displacement by compute |
06_2_ComputeVertexLit |
![]() |
A usecase of above, with different shader passes share the same vertex data |
06_3_SkinnedMeshBuffer_SameMesh |
![]() |
Blend the vertex data from 2 SkinnedMeshRenderer vertex buffer and render it with MeshRenderer |
06_4_SkinnedMeshBuffer_DiffMesh |
![]() |
Similar to above but blending 2 different SkinnedMeshes. The blended triangles are drawn with DrawMeshInstancedIndirect() |
06_5_VFXGraphMeshDeform |
![]() |
Using VFX Graph to deforming mesh (particle as vertex) |
Disclaimer: The stuff here might not be the best practice / optimized :'(. But at least they works. Play them for fun.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,411 starspublic-apis/public-apis
A collective list of free APIs
496,745 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
437,863 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,063 stars
























