Build Your Own Wave Tank

Wave tanks are cool, but it’s likely you don’t have one sitting on your coffee table at home. They’re more likely something you’ve seen in a documentary about oil tankers or icebergs. That need no longer be the case – you can build yourself a wave generator at home!

This build comes to use from [TVMiller] who started by creating a small tank out of acrylic sheet. Servo-actuated paddles are then placed in the tank to generate the periodic motion in the water. Two servos are controlled by an Arduino, allowing a variety of simple and more complex waves to be created in the tank. [TVMiller] has graciously provided the code for the project on We’d love to see more detail behind the tank build itself, too – like how the edges were sealed, and how the paddles are hinged.

A wave machine might not be the first thing that comes to mind when doing science at home, but with today’s hardware, it’s remarkable how simple it is to create one. Bonus points if you scale this up to the pool in your backyard – make sure to hit the tip line when you do.

23 thoughts on “Build Your Own Wave Tank

    1. Hello everyone,

      I am looking for missing wave tank links on how to build it and code from this page, but I cannot find anything in the directory when I access it.

      Can anyone help me retrieve such information?, since I am trying to build my own wave tank using yours as a reference.

      Thank you,

      Please do contact me on

  1. “but with today’s hardware, it’s remarkable how simple it is to create one”
    ehmmm… do you really need servo’s and an arduino to rotate a motor at a variable but continuous speed?
    A normal geared DC-motor (windshield wiper motor) and a well chosen set of resistors and a solid power supply (car battery) also does the trick and is much simpler that the arduino style, isn’t it?

    The really interesting part (as mentioned in the article) does indeed lies in how the tank itself was made, please tell me more as my tanks or tank-like project always seem to leak somehow (eventually).

    A very interesting tank is for example:
    This one uses a dampening material to make the tanks appear like it’s infinite, which can be very useful as the reflections might otherwise be causing havoc in your simulation, depending on what you are trying to achieve offcourse.
    This is fun stuff, playing with water most likely always is.

    Watertank like both of these are in a lot of cases a great example for demonstrating the fundamentals of wave propagation and could/should be used in classes more to demonstrate the effect of radio waves. The problem is the size of such a tank, fortunately… the teacher can always show a video these days, so one good tank could create an abundance of videos showing lot’s of possible scenarios.

    Regarding wave propagation, it really, really , really like the video shown on this hackaday item:

    1. Re: servos — more complicated than a motor and a cam, but then you can make fun-shaped wavefronts / excitation pulses (without re-cutting the cam, that is).

      Re: the wave demo you linked. One of the awesomest things ever. The different length rods explaining impedance matching is the part that I found most impressive. It’s one thing to know that there’s a mechanical analog(y) for the spooky electromagnetic stuff, but it’s another to watch it go. This is teaching at its finest, IMO.

      1. Servo or motor — from my experience, the length of the tank and water height relative to the paddle is the most CRUCIAL part. Servos permitted ease of variance as you said but again, you are further limited by tank — which is why this gentleman’s tank in the video augments the waves very well but reduces liklihood of sharper waves as my model does. Reflection and compression — really it’s a great project for physically understanding waves and how the space they occupy contributes.

        I built this micro version for the FLP contest and best I could do was a surge.

    1. Thats cool, but ima 1up you with dutch ones now:

      A overview of virtually all the dutch test facilities: (use the light blue menu top-right for seeing other locations)

      And then we have one from 2015 thats large af just because why not: (that one is specifically made to study tsunami’s)

  2. Hi, thanks for your work. I built similar setup for research/experimental purpose. I found it difficult to control the amplitude and frequency of the waves independently. I need to keep all parameters the same such as the waves’ frequency and wavelength and only change the amplitude (the slope of the wave). Do you have any idea of how i can do that given that your code is pretty similar to mine? From what i found, changing the swinging angle of the servos varies both frequency and amplitude. The delay between each swing also does the same. I added another delay at the end of each full cycle which seems to have the same effect but different manner. If you have any suggestion please let me know.


Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.