# Sam Driver > Articles and tutorials on game and web development. Articles are linked as Markdown. Drop the .md suffix for the page itself, which carries the interactive demos the Markdown can only describe. ## Articles - [Scroll-Driven WebGL Animation](https://samdriver.xyz/article/scroll-anim-model.md): A basic example of a scroll-driven WebGL animation. - [2D Fluid Simulation using LBM in WebGPU](https://samdriver.xyz/article/lbm-fluid.md): A simple 2D fluid simulation using the Lattice Boltzmann Method (LBM) in WebGPU. - [Absorption through a volume](https://samdriver.xyz/article/absorption-sphere.md): Handling the absorption of light passing through a medium. - [Introduction to Decal Rendering](https://samdriver.xyz/article/decal-render-intro.md): An introduction to view-space and projected mesh decal rendering. - [Refraction in a Sphere](https://samdriver.xyz/article/refraction-sphere.md): Introducing the basics of ray tracing to create a refraction effect in Unity. - [Optimising a Compute Shader](https://samdriver.xyz/article/optimise-compute-shader.md): Using RenderDoc to help find a faster compute shader for the simple lens flare effect - [From Compute Shader to Quads](https://samdriver.xyz/article/compute-shader-intro.md): Using a compute shader to add lens flare highlights in Unity's universal render pipeline - [Scriptable Renderer Feature](https://samdriver.xyz/article/scriptable-render.md): A barebones sample implementation of a scriptable renderer feature for Unity's scriptable render pipeline. - [Dungeon Tile Example](https://samdriver.xyz/article/dungeon-tiles.md): A practical example of dynamic tile selection. - [Neighbour Aware Tile Selection](https://samdriver.xyz/article/neighbour-aware-tiles.md): Automatically select the right tile from a tilesheet by examining neighbours. - [Bresenham's or Raycasting for Vision](https://samdriver.xyz/article/line-of-sight-on-grid.md): Two similar algorithms are commonly used to check for line of sight in tile-based games. Which should you use? - [Pixel Smoke](https://samdriver.xyz/article/pixel-smoke.md): A retro smoke effect created by pixel fiddling. - [Simple Procedural Gradients](https://samdriver.xyz/article/simple-procedural-palette.md): A classic way to generate a smooth series of colours. - [Complex Refractions in WebGL (WIP)](https://samdriver.xyz/article/complex-refraction.md): A technique for good-enough realtime refraction through forms with hollows.