After their long journey to explore faraway lands, the day has come to an end and the crew of The MS Floating Point sets sail to return to their homeland.

Let me start off by saying that my experience in the area of modelling is quite limited to say the least. After experimenting with Blender for half an hour, I decided that this shall remain so for the rest of my life - which left me with no option but to design my scene using nothing but code. Despite this obstacle I was able to come up with something I find quite decent - and which highlights some of my favorite aspects of computer graphics. My scene consists of mainly four elements:


Travel fascinates me. Roads can take you far, but nothing expresses freedom as much as ships do.


I wanted a shot that is wide-angled and feels open. The terrain allows me to create this perspective.


The glue between the elements of my composition. Shiny, warped reflections never fail to impress.

Environment map

It may be just a backdrop, but this is what gives my composition the atmosphere I am striking for.


There are not many elements that constitute my image, but I have tried to pay a lot of attention to smaller details.
In this section, I would like to give you some overview over the work that went into creating this image.

Long story short, my entire composition (except for the ship) is just noise.

  • The backdrop is an environment map consisting of a gradient from orange to blue with two layers of noise on top (dark clouds and bright clouds). There's also some high frequent thresholded noise to model stars.
  • The terrain uses noise as heightmap which I filtered to be below sea-level in the center of the frame and above sea-level at the edges. I wrote a kD-tree inspired traversal routine to be able to render the terrain efficiently.
  • The water is an infinite plane with glass material. For the bump mapping I apply to this plane I use - you guessed it - perlin noise (but there is also some equations that simulate a water trail behind the ship). I have extended my SampleReflectance struct to make it possible to dampen light exponentially as it passes through a medium. This allows me to tint everything below the water blue.
  • The sun is a sphere (with emitting Lambertian material). The primary light for my scene is an area light right in front of it. There is only one additional light in my scene (a point light far above the terrain) which serves as fill light.
  • The ship is about the only thing in my scene not made out of noise. It is a lovely model of the HMS victory, a 250 year old ship that used to be one of the flagships of the Royal Navy.
  • The bevy of seagulls is procedurally generated from a sphere and six triangles which are non-uniformly scaled using the instancing feature of my renderer. It is not very detailed, but helps establish a sense of motion in my composition.
  • As post-processing I do some vignetting (darkening of the corners) and render a procedurally generated sun-flare. I also add a bit of bloom (a soft glow for highlights) so that the image looks more inviting.

I also experimented with adding other elements to my scene but decided that it would become to overcrowded this way
so I sticked to the basics. For more details, take a look at the screenshots below.


Within my project I have made use of some great assets provided by other people. These are listed here.

HTML Template



Lines of code

708 M


89 min

Rendering time


Ships sunk