To render the image, I implemented bidirectional path tracing algorithm, Metropolis sampler and Blackman-Harris filter. First, scene was modeled in Blender and rendered using Cycles. Advanced things like caustics were not seen but still this image could be used as a reference. My scene is a variation of Cornell Box with all walls present. Front wall is not rendered due to camera’s near clipping setting but can be seen in reflection. All models were found on the internet and modified a little for the scene. Primitives (planes, sphere, cube, dodecahedron) were created in Blender. Water surface was generated using Perlin noise and my hacks in code. Also it was modified in some places. For more distinct caustics I made small circle area light and put it close to water and transparent objects.