Snake measuring tool (stand-alone Serpwidgets Snake Measurer)

Serpwidgets Snake Measuring Tool - Serpwidgets Snake Measurement Tool

Photo your snake from above, next to a ruler, tape measure, or object with known length. Select that picture here.

Snake Measurement Program - Snake Measuring Program

Choose your snake picture

Your browser does not allow local file reading. Try using a modern browser with JavaScript enabled.
Sorry, your browser does not support canvas drawing. Try a modern browser.

Draw the lines

Tap both ruler ends, and set ruler length

Set the ruler size

The ruler is
long.

Results

Length of snake:

-nothing yet-

Settings

Documentation - How to measure a snake

Instructions

1. Photo your snake next to a ruler. Select that picture here.

60 50 40 30 20 10
An example of an ideal photograph, taken from above, and avoiding the edges of the picture

Take a photograph of your snake (or whatever you want to measure) next to something you know the length of, and choose that picture here. For best results, take the photograph from above, with a tape measure next to them. However you take it, the snake and the object should be about the same distance away from the camera, to avoid problems with perspective. It should be on a flat surface. The tape meausre or object being used as a ruler should ideally be a similar size to the snake. If you use something very small as a ruler, then even a tiny error in how you measure its size becomes a big error when scaled up to the length of the snake.

For best results, try to have the snake lying somewhat along the tape measure (or whatever you are using). It does not matter if they curve their body around, or even if they go in a loop over themselves, as long as you can see where their body is going. It will not work if they lift their head off the ground too far, since you need their full body length to be visible from above. It helps to have someone else to help control the snake while you photograph it.

Do not use a wide angle lens (they stretch some parts of the picture much more than others), just stand further away if needed, and use your normal lens or a zoom lens. With most cameras, it is best not to have the snake near the edges of the picture where it gets stretched and blurry. For big snakes, it can be challenging to get into a good position, and you may need to stand on a stepladder to get high enough above them.

2. Select the ends of your ruler. Say how long it is.

Select "Ruler" if it did not do it automatically for you. Click/tap on the picture at each end of the tape measure (or whatever you are using), preferably close to the length that the snake takes up next to it. So if the snake lies next to the tape measure, with the left-most point of the snake next to 23 cm on the tape measure, and the right-most point of the snake next to 135 cm on the tape measure, then for best results, you should use 23 cm and 135 cm as your "ruler" (because if your camera distorts the picture, that will still be the closest to the real length). Put the length of your ruler into the box (135 - 23 = 112 cm), and select the correct units ("centimetres"). The length of the snake will be given in whatever units you have selected. For imperial measurements, it will subdivide it into the smaller units as needed. Select "units" if you do not want that.

Once you have selected the ruler points, it will automatically switch into snake measuring mode.

If you put a point in the wrong place, tap "Move", then tap on the point and move it with the buttons or drag handle, or Ctrl+arrow shortcuts. Tap "Done" to return to adding points. You can also erase the last point (Ctrl+Z, Cmd+Z or Shift+Z work too if you have a keyboard) and try again. If you needed to correct the second ruler point, you will need to select "Ruler" again before trying to erase the point.

It does not matter if the ruler goes from side to side, top to bottom, or on a slope.

3. Tap along the body of your snake.

Select "Snake" if it did not do it automatically for you. Tap down the body of the snake from nose to the tip of the tail (or the other way around), creating a few points around each curve. Follow the spine/backbone of the snake as much as possible. The tool will create a curved line based on the points you have selected. For best results, use a few points for each curve. Try to keep the gap between points a similar length to the last one. You don't have to be super consistent, but if you make a big gap, small gap, big gap, etc., it will confuse the curve, and make odd wiggles and loops. If you want to go from big gap to small gap, you need to do it in stages; big gap, a bit smaller gap, a bit smaller gap, small gap. Basically, each gap should be within about ⅔ of the last gap.

If you put a point in the wrong place, tap "Move", then tap on the point and move it with the buttons or drag handle, or Ctrl+arrow shortcuts. Tap "Done" to return to adding points. You can also erase the point (Ctrl+Z, Cmd+Z or Shift+Z work too if you have a keyboard) and try again.

Change colours and line width settings, if it helps you to see better.

If you want to zoom in (or out) to see better, use your browser's zoom feature; pinch zooming on a phone or tablet, or the main menu or View menu on computers. Most desktop browsers also let you zoom using Ctrl+plus, Ctrl+minus and Ctrl+0, or Cmd+plus, Cmd+minus and Cmd+0.

4. Get the length.

You normally want to use the curved length, not the straight lines length, since the curved length is what has followed the curves of the snake, and the straight lines length is just the dot-to-dot length, ignoring the snake's curves in between.

Other options

The advanced settings let you control the curviness of the curves; how much the line should curve when trying to turn corners. They also let you control which method is used to create the curves. By default, this uses the same curviness and curve method as Serpwidgets, and for most people, the advanced settings are best left at those defaults.

However, if you would prefer to switch to cardinal splines or different curviness, you can do so. Cardinal splines are used by some graphics editing apps, and are used by the "Snake Measure Tool" for Windows. In personal testing with real snakes, cardinal splines were normally just as usable as the Serpwidgets method, but you may need to learn to place your points a little differently. Cardinal splines increases the curve length a tiny amount with the default curviness, between 0.02% and 0.12% in personal testing, with bigger increases when you use fewer points.

The curviness makes a far bigger difference to the length, and at both ends of the scale, it drastically alters the way it curves, and makes it almost impossible to follow a real snake's spine. The default is 35%. At just 50%, there is a 0.25-1.5% increase in length with real testing, but this gets much worse as you use fewer and fewer points, and you have to be far more careful about keeping your distances between points really consistent, to avoid getting bizarre line wobbles which add to the length. "Snake Measure Tool" for Windows uses 50% curviness, and has all of these problems as a result. At higher levels of curviness, the length exaggeration reaches 10% in real testing.

The differences between Serpwidgets and cardinal splines becomes far more obvious at higher levels of curviness, with Serpwidgets being worse at turning sharp corners and cardinal splines forming more weird loops on gentle curves. There is no difference between them at 50% curviness. At really low levels of curviness, the curve methods become a little different, with Serpwidgets again being slightly worse at turning sharp corners, but with both methods, the angles are far too sharp to be natural.

These options are provided only so that people who are used to the far less convenient "Snake Measure Tool" for Windows can switch it to the settings they are more familiar with. It is best, however, not to touch these settings, as they can make some really unnatural curves that do not follow real snakes properly at all.

About
Version
1.2
Author
Tarquin Wilton-Jones
License
CC-BY 4.0
Inspired by
Serpwidgets Snake Measurer

Many of us loved the Serpentine/Serpwidgets Snake Measurer written by Charles Pritzel, and when the entire website went offline in 2025, we were left without any equivalent that worked cross platform. Sadly, it looks like the excellent Serpwidgets website is unlikely to come back online, and the measuring tool cannot be used via archive.org (though a lot of the website can). I had a modified version of the measuring tool that I used locally since 2017. But since that code was owned by Serpwidgets, I could not distribute it. So in 2025, I rewrote everything completely my own way, using a familiar set of controls and the same cubic Bézier curve formula, so that it could get the same results as before. Hopefully, both new users and users who were familiar with the old tool will find it easy enough to use.

This version has the following improvements, compared with the original Serpwidgets Snake Measurer:

The local Serpwidgets version was originally intended just for my own use, but since the original has disappeared without any replacement, I have put the rewritten version online so that others can have something to use. It has an open source license, so that the author of Serpwidgets can adapt these improvements if desired.

Because it is stand-alone, you can download it onto your computer if you want, and use it locally instead of on my website. That way it will also survive if my website ever goes offline!

Incidentally, there was also a Windows app called Snake Measure Tool by Marcin Stefański that could only be used on Windows computers, but that seems not to have been maintained since 2011, and its author seems to have abandoned it, so it is only available from a series of websites known for distributing malware. (And they can't even get the version number right, which suggests that they could be malware disguised as a software update.) The app is quite frustrating in many respects: it does not allow zooming in for accuracy, it truncates tall images so the ends of the snake cannot be seen, resizing the window to see the rest of the image or change its size causes all lines to be erased, it does not allow the units or ruler measurement to be changed without creating both ruler points again, it allows unusable ruler values to be entered without warnings, it does not show whether ruler or measurement mode is active, and it needlessly disables the measurement resetting button if the ruler mode is active. It allows line colour to be changed, but does not use different colours for different line types, so they can be easily confused. It also uses a different approach (cardinal splines) for generating curves, with a slightly unnatural or wobbly curviness, which makes it need more points around a snake's curve to keep it under control, and causes a slight exaggeration of the length. It cannot give both straight and curved line length at the same time. It does not have any useful way to work with imperial units, so anyone who measures in feet and inches is out of luck. It has a feature called adaptive precision, which makes it give a higher number of decimal places for smaller results, but it never allows more than one decimal place for lengths over 10 units, no matter what option is used. All in all, it is full of annoying problems and limitations, which will probably never be fixed. Since it cannot be used on a phone or Mac or Linux, or by most Americans, and its bugs will annoy whoever is left, it is not a good alternative to the Serpwidgets Snake Measurer.

Version history

1.2, 2025-11-28

1.1, 2025-11-27

1.0, 2025-11-26

0.9, 2025-11-22

Differences from Serpwidgets Snake Measurer:

Technology preview, 2025-11-18

Closed testing release, 2025-11-16

Pixel measurements
🐲 Drop a single image file here to use it.
This can only accept a single dropped file. Do not drag more than one file at once.