The first step was of course to make the tree, which was done using the TomTree macro. I wanted a tree with a somewhat "oakish" character. The texture of the bottom (near the sea surface) was made somewhat paler that the rest of the tree, and a bit greenish, since it is often in contact with sea water.
Next, the essential challenge I had to meet was the placement of the bottles. I have used blossom in the the tree to get the positions of the bottles (which are written in a file). By default, TomTree places the blossom near the tip of the small branches, which is quite unrealistic for heavy glass bottles. So I modified the transformations that TomTree applies to the blossom, to put the blossom somewhere along the branches. The eventual collision between the bottles and the tree is checked for each bottle individually, and the colliding bottles are removed from the file giving the bottle positions.
The bottles are simple lathe object, transformed to a mesh object with Ingo's makemesh macros. Each bottle has a random color, between pure "clear" and bottle-green. Each bottle is attached to its branch by a small own-made blob-twig, which has the same texture as the branch to which it is attached. This twig continues inside the bottle, and becomes the cork. The message inside the bottles was easily made using Rhino3D (I did not find a way to get a good message with CSG).
The sea was made using C. Hormann's waves.inc file. The function defined in this include file is used to get a height-field, which is tiled to make a large sea at low cost (this tiling method was taken from the sea demo scene of G.Tran MakeCloud macro- the sea color was taken from there also). One detail : to get both very small and very large spatial frequencies in the sea shape, the function used for the height-field is in a fact a superposition of several scaled instances of the waves.inc function.
The sky is obtained from a bozo mix of grey and deep blue, plus one cloud made with G.Tran MakeCloud macro.
There is one light source in the scene (which uses radiosity), to simulate light from the moon in a relatively clear sky. To enhance the message-in-the-bottle visibility, I have added a light-group for the messages, which increases the light source intensity for them.