procedural water and caustics

i’d like to code a “little” app with objects resting on the bottom of a pool. Now the problem is how to make the water effect.
What do u think? is better having a moving mesh or just a flat surface vertex and fragment programmed?
I’d like to add some nice caustics too, anyone has a link pointing to some useful resources?

Thanks all, the gunslinger

about water,caustics and other effects:
(the article is called “Deep-Water Animation and Rendering”)

about caustics only:

another interesting link is this:
(there is also a demo with sourcode)

Here is a new paper for rendering water surface :