Thinking back over some of the most innovative Small Basic contributors of the past brings to mind Dudeson.

He came up with this very simple, but incredibly effective code for modelling smoke.  Here is a link to his first forum post for his Smoke Editor.

Import PBH865 for the example below - there are several other variants.

Basically, it just takes an image of smoke and moves, zooms, fades (transparency) and rotates it.  To create smoke, you click and move the mouse while it is held down.

The simplest methods are sometimes the best.

Quite often you see effects that look amazing in 3D games or even films and actually they are quite simple techniques that are just fantastically effective.

Here is another inspired by Dudeson, a bit more maths in it but still effective, creating dynamic moving shadows from this thread Dynamic Shadows! WOO!!, import CXM437.