How I designed, built, and found beauty in a robotic fish

Clarity, my employer, has list of innovation projects that challenge us to learn new skills while making really interesting things. We can work on them during normal business hours, time permitting, and in this case I chose to make a robotic fish. The project seemed interesting: The robot would need to realistically emulate a fish’s natural motion, and I’d need to push my knowledge of microprocessors, actuators and CAD design.

Nature & Design

The first thing I needed to do was to find out how a fish swims, so I studied the motor function and anatomy of various aquatic animals.

Looking at this spinal segments of fish and the relationship of articulation form joint to joint, I realized that the golden ratio was (yet again) the master behind it. The golden ratio is often found in nature and, being inherently beautiful, is often used in art and design. The golden ratio is used with phase limits (or max allowable angle), forcing the natural arc to switch direction when limits are reached, creating the “S” curve which generates thrust. This very “S” curve is the foundation of how a snake can traverse terrain without appendages.

2 Golden Ratio arcs converged by a limit (pink line)

Software & Mechanics

Since a fishes’ motor function is produced with a simple and elegant design, it was clear that I would not need all the robotics I thought I might need, except a few linear servos and some batteries. A linear servo would work well to rotate each segment of our fish in concert with some simple timing. I selected Particle Photon for a microprocessor, so that updates could be pushed over WiFi while testing in the water.

The fish would also need to be able to detect potential collisions to avoid aimlessly bouncing off the fish tank corner for hours — which I will admit would be both funny and embarrassing. To avoid that, we elected to use optical IR sensors that would be retrofitted to the fish’s head.

Solidworks renders of Nemo 2.0

Solidworks CAD Design

I used Solidworks, an industry leading CAD suite, to model and test the skeletal system articulation. With that, I created models of the servos and the microprocessor allowing verification for both fitment and functionality of any design before 3D printing.

From there, I began modelling the skeletal structure, and quickly realized that a key consideration would need to be how to fit all of the needed components inside of Nemo. After some iterative development, the skeletal model were 3D printed on Clarity’s Makerbot and assembled for testing .

Can it swim?

We needed a method to waterproof Nemo to keep the damaging water from killing our electronics. While there are many long term solutions that involve sealants applied via brushing or spraying, we needed something temporary and easily removable while we make adjustments and tweaks. We opted to make use of a clear prophylactic tied off at the tail that wouldn’t interfere with the optical IR sensors used for detecting collisions.

Neutral buoyancy — neither rising or sinking in water — is critical capability for most aquatic life, and the same was true for Nemo. In order to achieve neutral buoyancy, we would need to add equal weight for the water Nemo displaced. To preserve its (his?) freedom of movement, we used modelling clay and automotive wheel weights to disperse the weight evenly across Nemo.

Nemo 1.0, 1.1, 1.2 …

Let’s say that it was an *ahem* iterative development process:

It took some fine-tuning to get the weighting just right.

A tad too heavy

And we needed to play around with how fast his tail moved.

Someone turned Nemo up to 11

And we needed to fine tune collision detection.

Clumsy Nemo

We also quickly discovered that he needed dorsal fins (his only fins), to counteract the movement of his tail.

Nemo 2.0

After getting through those revisions and tweaks Nemo really looked like a fish in the water! Check out the video below — he didn’t have a tank yet so we used the next-best thing, Clarity’s dish sink.


Nemo would probably enjoy a larger pool to swim in, and obstacles to navigate, since his sensors and programming enable him to move around more than shown in the sink. And, were he were to be equipped with mini wireless-charging batteries, he could greet guests from a big fish tank in Clarity’s reception area.

Thanks to Dan Gardiner for help with the soldering and testing!