Micro Weight Calculator
Welcome to the Micro Weight Calculator! Input the weight you would imagine a one-centimeter-tall person to be, and same for a five-centimeter-tall one; then hit Calculate, and here you go! Feel free to check out the sections below to learn about the problem that this calculator tackles, as well as how to use its functionalities and read its results.
Resulting cubic function
\(y = \) \(x^3\) + \(x^2\) + \(x\)
Compute specific values
cm yields g. | |
g is yielded by cm. |
Customize inputs
Compute 1^{st} weight at (cm) | |
Compute 2^{nd} weight at (cm) | |
Compute 3^{rd} weight at (m) |
Unit converters
g is oz. | |
cm is in. |
oz is g. | |
in is cm. |
Is the square–cube law wrong?
The square–cube law is a very well-known concept in science fiction. It expresses the intuitive observation that, whenever we have—say—a cube and we want to build another one that encompasses twice as much volume, this is not as easy as simply building a second cube whose side is twice as long as that of the original. Trying that will land you with a cube that is eight times larger than before! Indeed, some people from 430 BC Greece know that all too well.
The explanation for this fact lies in the mathematics behind how we compute volumes, and is connected to the idea of dimension. You already know that a simple line is one-dimensional; a flat surface is two-dimensional; and finally a solid is three-dimensional. Now look at the image above, and let us focus solely on segments \((1\text{D})\), squares \((2\text{D})\) and cubes \((3\text{D})\). To compute the area of a square of side \(x\) you would do \(x^2\) \((x\) squared, i.e. the side multiplied by itself, \(x\cdot x),\) meaning that doubling the side would bring us to an area of \[(2x)\cdot(2x) = 4x^2,\] which is four times bigger than before; and likewise, since the volume of a cube of side \(x\) is computed as \(x^3,\) a similar calculation shows that the volume of another cube with doubled side length is \[(2x)\cdot(2x)\cdot(2x) = 8x^3.\] This is why the square–cube law is often stated in this form: volumes increase cubically with respect to the scaling factor. In this case the linear scaling factor is \(2,\) but the volume increases by \(2^3 = 8.\)
So far we have only touched on the mathematics: but what is the significance of the square–cube law that allows it to be as ubiquitous as it is in popular culture? The answer is that, physically speaking, masses correlate to volumes rather than to lengths: a cube whose side is doubled—as we saw—will see its volume increase eightfold, and thus it will weigh eight times more. Growing and shrinking are obvious applications for this law in science fiction, where it is used to compute the final mass of an object after its size has been altered; but for those of us who work with tiny people specifically, this can sometimes be a problem!
Consider an average person who is \(1.70\text{ m}\) tall \((5'\,7'')\), weighing \(70\text{ kg}\); if this person were to be shrunk to the size of \(5\text{ cm}\) \((\approx 2\text{ in, }\)i.e. at a scale of \(1\colon 34),\) by the square–cube law their weight would have to be cut down by a humongous factor of \(34^3 = 39,304,\) resulting in a weight of \[\approx 1.8\text{ grams!}\] Thus a five-centimeter person would weigh just as much as one or two paperclips, while we'd intuitively feel like they should weigh a little more than that.
What can be done about it?
To answer the title of the previous section, clearly this does not mean that the square–cube law is wrong; it is ultimately a mathematical rule and, as such, reflective of a self-evident truth. The point is that pure shrinking, the way we imagine it, is infeasible in the physical world: an ideal rescaling would indeed result in a five-centimeter person weighing less than two grams—it just cannot happen in reality.
But, more importantly, this becomes true only if we assume that everything about our subject, including their body structure and internal organs, will rescale perfectly like a resized image on a computer. And yet the truth is that there could be some biological constraints to take into account, like a minimum functioning size for their internal organs, that require the shrinking not to be perfect; and this is even truer for those narrative universes in which some people are born small. Feeling that two grams is not enough is, after all, based in nature: other creatures that size do not weigh that little, which shapes our intuition as to what a five-centimeter-tall person should weigh regardless of the value that a perfectly proportional shrinking would yield by the square–cube law.
Therefore, enter the Micro Weight Calculator! The tool in this page allows you to define the weight of a tiny person at a few fixed heights in a way that conforms to your intuition of how body mass should work at low scales, and from there to obtain a personalized variation of the standard cubic function that you can then use to compute weights at any other height in a way that is consistent with your own view.
How it works, and how to use
Before the calculator is used, what you can see in yellow is the standard cubic curve—the one foreseen by the square–cube law. Being a pure cubic, it is defined by only two points which are \((0, 0)\), because obviously at zero height you would expect no mass, and \((170, 70\,000)\), if you assume a normal-size height of \(1.70\text{ m}\) and a weight of \(70\text{ kg}\) (all inputs and outputs are in centimeters and grams, unless otherwise stated). A pure cubic \(y = ax^3\) that is constrained to pass through these two points yields a value for \(a\) that is \[ 70\,000 = a\cdot 170^3 \implies a \approx 0.0142, \] and indeed the curve pictured in yellow corresponds to \(y = 0.0142x^3\). If the normal-size height or weight are altered (as explaned below, all the heights at which the inputs are computed can be changed through the Customize inputs panel), the yellow curve will change in turn to reflect what the square–cube law would predict for these new values.
Now, to define a custom cubic function \[ y = ax^3 + bx^2 + cx + d \] you would generally need four points; and as much as I would not mind going into the details of why that is true, math is kinda–not–easy, which leaves me only with the option of sharing a Wikipedia link for the interested. However, these four points are in reality just two: this is because the aforementioned constraints of \((0, 0)\) and of normal-size height and weight are still present and valid, which explains why the calculator asks for exactly two more data points—that we choose to give at micro size since that is the part of the graph that interests us the most. As the constraint of passing through the origin can be expressed by simply setting \(d = 0,\) the widget's job reduces to finding the parameters \(a, b, c\) for a curve of the form \[ y = ax^3 + bx^2 + cx \] so that it passes through the two micro-size weight data points, and the normal-size weight data point.
Once you hit Calculate, those coefficients will be computed and a new blue curve will be added to the graph: that's your custom function! Its shape tells you how weight has to evolve with respect to size in order to follow the custom data points that you have given as an input; there where the blue curve lies above the yellow curve, you are predicted to get heavier weights than the ones that follow from the standard square–cube law, and there where it lies below, they will be lighter. The Resulting cubic function section will give you the mathematical expression of the custom cubic that has thus been calculated, in the \(y = ax^3 + bx^2 + cx\) form that we have just seen, for whatever purpose you may need it!
The additional tools
The calculator comes with three additional tools for your conveniente:
- the Compute specific values tool allows you to write down a height in centimeters after you have computed your custom function, so you can have it evaluated at that value to obtain the corresponding weight in grams; this also works in reverse, from grams to centimeters;
- the Customize inputs tool allows you to customize the heights at which the weight data points are computed, including the \(1.70\text{ m}\) one for the normal-size reference point: once you have filled in any of these fields, click on Calculate again and you will see that the heights in the top-left part of the widget will be updated to the values that you have selected;
- the Unit converters tool is a utility tool that lets you convert from SI units to imperial units on the fly: this does not affect the calculator, but it is useful to keep everything in one page without juggling between the widget in one tab and some other unit converter (or Google) in another.
The grading system
Each time you generate a new curve, this will get a score ranging from C score to A+ score that is thought to represent how good the curve is at describing the weight of a small person for narrative purposes, so there are a few aspects that will make the score go down:
- you will get a bad penalty if your function becomes negative at any point between zero and the normal-size height: your function cannot be physically significant if it predicts a negative weight at some point!
- you will get a lower penalty if your function is not monotonic—in particular if it is not always increasing: this is not as serious as before since the function will be physically significant, although being non-increasing means having some heights smaller than others for which the weight is heavier, and vice versa; this may or may not be what you want for your story, so in that case you can tweak the function a little more;
- you will get the lowest penalty if
- there are sections of your function that lie below the yellow curve (as explained before, this just means that for some heights your function will yield weights that are even lighter than those computed via the standard square–cube law function; but again, this may or may not be what you actually intend to do), or if
- your curve changes concavity (the standard square–cube law function comes with positive concavity, causing the increase in weight to be faster the more you move up with the height; the concavity becoming negative means that the function will still rise up, but the rate of increase will actually be slower as you move up the curve).
FAQs
Does this problem arise with giant characters as well?
As said earlier, this is not exactly a “problem” as much as it is a matter of aligning the square–cube law to our everyday expectations and intuitions. A biological argument might be made for very large creatures as well to argue that further modifications to the square–cube law might be needed at those sizes too, but weights of that kind are way outside of our common experience for any variation to be significant; on the other hand compare this to the case of a tiny character, where a fluctuation of even a few grams can influence whether a person of a certain size is able to break the surface tension of water and, therefore, is capable of swimming or not.
Why does it say that my curve is not increasing, when it is clearly going upwards?
A function can be non-increasing even just in a little interval, which is why this is more of a general warning rather than a hard rejection. For example, using \(1\) and \(2\) as micro-size inputs will land you with a blue curve that triggers that message while seemingly going upwards: but if you take the function that defines that curve, which in this case would be \[ y = 0.016x^3 - 0.244x^2 + 1.228x, \] and paste it into WolframAlpha, you will see a tiiiiiny inflection around \(5.\) Indeed, this function attains a local maximum at \(\approx 4.58\) and a local minimum at \(\approx 5.59,\) between which it slides down—an interval too small to be displayed, but it is still there!
To what precision are the results exact?
The results are mathematically correct to the precision of the machine that is running the computation, which in most cases means several digits after the decimal point. Keep in mind that the numerical form of the function that is displayed in the widget truncates the coefficients at the third decimal digit, so a (very small) loss of precision may be involved if one wants to compute weights directly from that expression; but the Compute specific values tool employs the full, untruncated function and as such its results are exact to the precision of the machine.
Using for example the function from the previous question, \[ y = 0.016x^3 - 0.244x^2 + 1.228x, \] its evaluation at \(5\) yields \(2.04\) which is \(2\%\) off from the real figure of two grams that was given in the input: but if you use the Compute specific values tool and give it \(5\) as an input, you will see that it correctly gives out a precise \(2.00\) as its output in grams.