Simple Water Caustics using GIMP
Without using a ‘water caustics generator‘ creating images by hand can be a little tricky as the process typically relies on using specific image filters that may not be available. However, it is possible the create that stylised ‘caustics’ look using commonly available tools and filters in GIMP.
Design note: the same techniques outlined below should be applicable to other applications in the absence of the typically used voronoi noise filter/effect.
Caustics in GIMP
The basic process of creating a caustics image in GIMP relies on using the Difference Clouds filter to generate some base noise which is then altered using the Curves tool. This can then be set up for tiling using the Tile Seamless tool.
Design note: while this quick technique does generate a caustic style image it may not necessarily result in the same caustic pattern typical of caustic images created using a generator.
So, using white as the background image colour, first add the noise; from the Filters menu  select Render, Noise then Difference Clouds  – Filters » Render » Noise » Difference Clouds. This generates the initial cloud noise pattern .
Starting from a white image use the Difference Clouds filter  to add some an initial noise data …
Once the noise has been added, from the Colors menu select Curves  to open the Adjust Color Curves properties pop-up – Colors » Curves. Here, because a caustics style image is being created, click the curve to add an adjustment node at the mid-point  and drag it to the top of the aperture – essentially setting a coordinate of x:128/y:255. Next, drag the node bottom-left corner to roughly x:96/y:0  keeping it locked to the baseline. Then finally drag the node upper-right corner to x:160/y:0 , again locked to the baseline. This should result in an image approximating a caustics base image . Adjust each node to achieve the desired look.
Design note: while additional adjustment nodes can be added preference should be to limit them to three that essentially equate to low, mid and high tonal values and contrasts.
… using the Curves tool  alter the mid , low  and high  ranges affecting the initial noise data.
Important: the number of nodes, and their position relative to the curve, will vary depending on the desired outcome; the above creates a stark, contrasting image, whereas more nodes and less extreme positions will generate a softer, greyer image.
Using more nodes, and adjusting their position, changes the appearance of the caustic.
Once the caustics image is available it should be tiled so it can be repeated across a surface. To do this, from the Filters menu select Map then Tile Seamless…  to access the Tile Seamless properties pop-up – Filters » Map » Tile Seamless…. Here, adjust the Opacity  setting as needed to adjust the behaviour of the tool, leave everything else untouched then click OK once done to finish with a tile-able caustics image .
Once the caustic is made use the Tile Seamless filter  to create a tileable image.
To generate a functional caustic image, preference should be to start from white (RGB 255,255,255), mid-grey (RGB 127,127,127) or black (RGB 0,0,0) to ensure proper caustic image generation. Once this base is available it can be colour tinted by adding a new document layer  that’s colour flood-filled as needed, turquoise-blue for example (RGB:51,203,213/Hex:33cbd5). This can then be blended with the underlying caustics layer using Mode set to Hard light  to maintain the fill colour while being influenced by the caustic pattern.
Add colour to a caustic use a filled layer  that’s blended using Hard Light  (or other mode).