Close
0%
0%

Hacker Calculus

Isaac Newton was a hacker. Let's take calculus back to its roots and make it accessible to everyone.

Similar projects worth following
Many hackers are self-taught and avoid powerful math tools that might let them take creations to the next level. We aim to create a structured set of modules consisting of hands-on 3D printing and electronics projects, with thorough text documentation and minimal supporting algebra. These modules will teach calculus in this hacker style both for self-learners and others, like the visually impaired, who need hands-on learning. When Isaac Newton developed calculus in the 1600s, he was trying to tie together math and physics in an intuitive, geometrical way. But over time math and physics teaching became heavily weighted toward algebra, and less toward geometrical problem-solving. However, many practicing mathematicians and physicists will get their intuition geometrically first and do the algebra later. We want to let people get to that point directly without passing through (much) algebra, particularly people who learn best by making something. NOTE: Read oldest logs first.

For the last two years, we have explored how to create hands-on models to help people learn math and science. Our book, 3D Printed Science Projects, was published by Apress in 2016, and a second volume will be published later this year. Each chapter explained a scientific or mathematical principle, and then developed 3D printable models, many of which can be changed to demonstrate different cases. We found that creating these models was difficult and required both deep knowledge of the science and of the best ways to create a 3D printable model.

Our project image is “Kepler’s Laws in Plastic” - the models (from our 2016 3D Printed Science Projects book) are of orbits (Earth, Venus, Mercury in one set, Halley’s Comet to a different scale in the other) with the height being the velocity of the body at that point in its orbit. Kepler developed his Laws about these relationships in about 1609, without benefit of computers, 3D printers (or calculus.) He had to rely on a purely geometrical approach. Although Joan was a JPL rocket scientist for 16 years, when we created this model both of us developed new insights.

We talk to many self-taught hackers who are excellent intuitive engineers, but for whatever reason never took calculus. Calculus is a gateway to a deep understanding of physics and more advanced mathematics. There are online classes which can be taken, in some cases for free, but they are traditional algebra-heavy classes as far as we have seen. What is out there for learning advanced math and physics using 3D printing and open source electronics?

There are databases of 3D printable objects but these are not curated and the quality can be uneven. The science or math in free database models can be just plain wrong. Most commonly 3D printable math models are esoteric “math zoos” that look awesome but give no insight into how the model fits into a bigger picture. The lack of curated, rationally-organized 3D printable math and science models, and the difficulty of creating them, has held back use of 3D printing as an educational tool, even where it might be very effectively applied. Electronics projects are even more scattershot in this way.

What Will Our Project Do?

We have gone back and looked at the oldest roots of calculus as we know it - Isaac Newton’s Philosophiae Naturalis Principia Mathematica, usually called Principia. Pages of Newton’s copy with his notes on it (with his papers at Cambridge University in England) can be seen here. Kindle versions of English translations are available starting at 99 cents.

One thing that struck us was that the entire work has only geometry. The emphasis on algebraic forms came later on. There were good reasons for this, but our idea is this:If we go back to the source, knowing what we know now, can we create a mashup across three and a half centuries that Newton himself might have appreciated? We want to find good intuitive starting points to teach calculus-as-physics and then find hackerish ways to teach them in a hands-on way.

Initially we need to define a set of core concepts that best lend themselves to this approach, and organize them into one or more sets that naturally build on each other, to avoid the problem of existing databases that do not lead a user through a good learning path. Then we will create the 3D printable models and/or electronics project, and write supporting text.

For the Hackaday project, we plan to create several modules composed of electronic and mechanical parts, and of course some 3D prints. A module will contain a concept, directions to create a physical model, and various applications of the concept involved.

In the first log entry, we create a simple demonstrator out of an Adafruit Circuit Playground, a rechargeable battery and an (optional) 3D printable case. In the next log entries, we will lay out our progress on a mechanical device for finding the tangents to a curve.

In the longer run, we want to see what kind of structure we...

Read more »

  • Log #6: Sources

    Joan Horvath05/16/2017 at 20:04 0 comments

    We've been asked quite a bit about places to read more. We've gathered all of the interesting ones so far into one web page on our site, so that we can update it easily. Check it out at:

    http://www.nonscriptum.com/hacker-calculus-sources

  • Log #5: The Fundamental Theorem in 3D!

    Joan Horvath05/16/2017 at 03:26 0 comments

    So far, we saw that derivatives measure the slope of a curve and tell us how fast things are changing along that curve. We also saw that an integral is just the area under a curve. One of Newton's big insights was that taking the derivative of a curve and finding the integral are what a mathematician would call an inverse operation- they undo each other, just like addition and subtraction. (Purists will note some details here where that is not quite true, but we will get to that later. There is a constant floating around we will need to deal with.)

    This insight goes by the grand name of The Fundamental Theorem Of Calculus. We spent some time thinking about how to show this in a hands-on way. We decided to do some specific examples.

    3D graph of straight line and parabola

    So if I started with a derivative, and integrated it, I would get back the original curve.

    If I started with an integral function and took its derivative, I would get back the original curve.

    We can look up in tables of integrals and derivatives (we will walk through some common examples in a later log) that the integral of a straight line is a parabola. Or to put it another way, the area under a straight line builds up in a way that turns out to be a parabola. The picture above shows this.

    Or, the slope (derivative) of a parabola is a straight line - the slope is negative when the parabola is headed downward to its minimum, and is positive when it is headed up.

    Thus, the 3D model above shows a curve and its integral, or a curve and its derivative, depending on which way you want to think about it. This curve could be printed flat, more or less like it is lying on the table here.

    Here is an animation (also done in OpenSCAD) of the integral of the area under the line building up as a parabola.

    animation of the integral under a line building up as a parabola

    Next, here is a sinusoidal case to think about. Sines and cosines are special in that their derivatives and integrals are other sinusoids, with some fussing around with the signs.

    If we think of the vertical curve as the original curve (say, a sine wave starting at 45 degrees) then the slope is the cosine wave shown in the horizontal curve.

    If we think of the horizontal (cosine) curve as the original curve, the vertical curve is its integral (sine). With sines and cosines, the signs flip with the integral so we have to be careful about orientation. Here's the animation:

    Sine and cosine waves, showing how one is the integral of the other

    We printed the sine and cosine waves here with the same amplitude, but if we were plotting sin(a*x), the derivative would be a*cos(ax), and the integral would be (-1/a) * cos (ax). To make it printable, we ignored this scaling (or you can think of it that we plotted the derivative and integrals with respect to a scaled and offset value.) This print was created vertically, with the side of the model on the left side of this picture on the platform. We used a brim to hold it down.

    Lastly, we decided to print a special function, the exponential. The function takes the number e (2.71...) and raises it to the power x, which we can write as e^x. Exponentials have the property that their integrals and derivatives are also exponentials, with some scaling factors thrown in for some cases. We decided to print that as four copies of the exponential- if you keep turning it , you can keep integrating or taking the derivative. It just repeats! (x =0 is at the top of the picture.)

    Exponential function - four copies, one on each axis (sort of looks like a rotor.)

    All these prints were created with a small OpenSCAD model which takes two functions and plots them at right angles to each other (with a bit of modification for the last model.) We will post this after we do a little cleanup.

  • Log #4: Integrals: the Other Half of Calculus

    Joan Horvath05/04/2017 at 05:50 0 comments

    We have been talking about differential calculus- the study of how something is changing. There’s another half, though – called integral calculus. Loosely speaking, integral calculus is the process of reversing what you do with differential calculus. You can start with a derivative, and figure out what the original curve was. Think of it like addition and subtraction being inverses of each other. It’s just a little bit more complicated here.

    As you can see in the picture here, Joan had to party like it was 1979 with her old MIT Calculus 1 book to be sure what we're saying here is right... note the heavily-used eraser, which is always a key tool in algebraic calculus.

    Old, battred Calculus 1 text, a pad with scribbles, and a 3D print of a math function

    Integrals

    let's look at what an integral is. Most simply, in two dimensions it is a way of figuring out the area under a curve. Suppose we wanted to find the area under the curve from 1 to 2 on the horizontal axis. At point 1, the curve has the value A. At point 2, it is B. As 1 and 2 get closer together, a line drawn along the curve approximates the line more and more closely.

    Suppose we wanted to find the area under the curve between the two vertical arrows marked A and B. If the red line was EXACTLY the curve, then the area would be C times the average of A and B. As the distance C gets smaller and smaller, the red line gets closer and closer to being the same as the curve. We could use a rectangle of height equal to the average of heights A and B to get the same area as finding the area under the triangle plus rectangle we'd need to figure out otherwise. You can see the diagram of this from Newton's own copy of Principia.

    Suppose we also drew a line parallel to the red line. Newton found that you can always draw a line parallel to this line which is tangent to the curve. This is called the Mean Value Theorem. We will come back to that later when we talk about tying together integral and differential calculus.

    The Surface

    The surface we will use as an example here is called a swallowtail catastrophe. It is a surface that has some special properties that you can look into and think about a little based on what you know already, and we will use it as an example for more things to come.

    The basic swallowtail equation we used was

    f(x,y) = offset + ( x^5 + a * y * x^3 + b * x^2 + c * x ) / scale

    Where "x^5 " means multiply x times itself five times (or, if you prefer, raising x to the 5th power), " * " means multiply, and the height of the surface is a function of two other variables, x and y. a, b, c and d are constants, and a has to be negative. For the examples we show you here, a = -10, b = c = 1.

    Depending on how many data points there were, we needed to fuss around a bit with scaling and offsets so that the values of the function were always positive, since otherwise the bottom of the model would not have been a plane.

    Besides having a cool name, the swallowtail is a relationship that comes up often in nature for systems that are chaotic -- acutely sensitive to initial conditions. It was also the basis for Salvadore Dali's last painting, The Swallow's Tail. (Thanks go to our mathematician friend Niles Ritter, who did his PhD thesis on related mathematics and suggested it would be a fun surface to play around with in our endeavors. Everyone else uses a paraboloid- what fun is that?)

    First we will print this as smoothly as possible. It was printed with the equation printer in Chapter 1 of our 3D Printed Science Projects book; the OpenSCAD model is CC-SA-NC and available at the pubisher's repository at the same link. The surface is shown printed just in free space, and also as a surface covering a volume.

    Swallowtail function freestanding, and covering a volume over a plane.

    Volumes Under Surfaces

    If we can get an area under a curve, it's not surprising we can do the same thing to computer the volume under a surface. Suppose we wanted to try approximating a surface by a series of rectangular solids in three dimensions and get the volume under a surface by adding up the volume of each of these rectangles. We have demonstrated this by creating...

    Read more »

  • Log #3: Research and Experiments

    Joan Horvath05/01/2017 at 00:12 0 comments

    In this log, we will capture some of the background research we have done so far to think about this project.

    We first researched a little whether Newton had created devices himself to help him conceptualize, since he was known as a tinkerer. We have not come across any yet, but we hope to find more as we research more deeply in parallel with our experiments. There is some historic material online, but a trip to the Pasadena Public Library was required (and a bit of Amazon browsing, of course.)


    The Next Device

    Before we started creating the next hands-on calculus devices, we wanted to look into whether anyone had done this already. After all, for the first 200+ years of calculus' existence, there weren't any general-purpose computers. We thought we could re-create calculation aids from the 1700s or 1800s using open-source hardware and the occasional 3D printed part.

    The first thing of this type we wanted to create is a device that would let the user follow a curve by hand while the device drew the derivative curve, or a mechanical differentiator. We thought there must have been mechanical devices to draw the line of the derivative of a curve, sort of the calculus equivalent of a slide rule. Surprisingly, we did not find many, or much written about using that type of device.

    Here are a couple pictures of early experiments in our development of a mechanical differentiator, with 3D printed parts and pieces that will be familiar to 3D printer developers.

    Pile of iterative designs of 3D printed parts for the integrator

    Initially we thought the device would have mostly 3D printed parts, but as it evolved it has started to look more like a chunk of a 3D printer than a 3D-printable device. As with many things, it also turned out to be harder than it looks. We will be evolving this and other devices this summer as we continue to build out this project.We'll start giving details and build instructions when our path is a little clearer - stay tuned!

    Test parts for mechanical differentiator


    We found 1921 and 1967 patents and some descriptions in the math literature, and some interesting linkages from the late 1800s by the French mechanical designer Myard that people mentioned as a good basis for such a device, but very little about the devices.

    Our conclusion is that people probably solved the problems by finding the equations for the derivative and then calculating with whatever the tools of the day were. The availability of low-cost, general-purpose computers rendered most mechanical calculating tools obsolete. But doing it that way requires you have to do the algebra before you get the intuition, which we are trying to avoid. For our purposes of building intuition, though, we think this will be the way to go, if the build doesn't get too complicated for a lot of people to make on their own.

    Books, books, books

    We found a version of Principia translated into modern English with commentary on what Newton would have been aware of at the time. This translation is by I.B. Cohen and A. Whitman, listing Newton as the author (University of California Press, 1999.)

    Next we did some browsing to find physics or calculus taught in a similar way to what we had in mind. Not surprisingly Caltech's master physics teacher, Richard Feynman, did some lectures in the mid-1960s which were captured by the BBC and then later republished as a small book entitled The Character of Physical Law. We used the MIT Press, 24th printing in 2001, but it is available in many versions including an audiobook. It has little hand-drawn sketches and almost no algebra, and focuses mostly on gravitation. It is in many ways a modern descendant of Principia.

    There is a movement generally to re-think math education in the United States. A book laying out an approach that is broadly similar to the one we suggest here is Stanford professor Jo Boaler's Mathematical Mindsets (Jossey-Bass, 2016, and summarized on the linked website.)

    We are also grateful for the encouragement and ideas we're getting informally through various channels - all ideas are appreciated!...

    Read more »

  • Log #2: Derivatives: Calculating Changes

    Joan Horvath04/30/2017 at 19:10 0 comments

    Calculus is all about figuring out how something is changing (or how it has accumulated changes to this point). There is a lot of terminology with this that scares people off… derivatives, differential equations, integrals … but the concepts that these are shorthand for are not all that hard. We want to make this readable for people who have never seen these concepts before, and make it possible to find more online. When we define a word we think you'll want to know more about later, we'll make it a link so you can can go and read more elsewhere if this is all new to you.

    The ideas apply to all kinds of changes, like pressure going up or down in a gas or stock prices rising and falling. But Newton mostly talked about actual, physical motion. Since that’s the easiest to think about for most people, that’s what we will talk about here.

    Our next build (in the next few logs) will be a mechanical device that will let you graph how something is changing, which calculus would call the derivative. The process of calculating a derivative is often called differentiation. This log ties together the acceleration detector in Log #1 and our “mechanical differentiator” that we are working on in the next few logs. Later on, we are going to figure out ways to use 3D prints to visualize more complicated systems. But for now, we will go back to some very basic stuff.

    Slope of a Curve

    Imagine that you are running somewhere and that you always run at the same speed. You might go a tenth of a mile in a minute, have gone two-tenths in two minutes, and so on. Your distance traveled would look like this, but your speed is constant (because we said to walk that way) as we draw in the graph that follows:

    Two graphs. Top one is a straight line constantly increasing left to right, vertical axis labeled as distance and horizontal as time. Second graph is a constant line, vertical axis labeled velocity, horizontal axis as time.

    If we asked you how fast you were running you might say “a tenth of a mile per minute” or maybe “six miles per hour.” This is the change in distance (a tenth of a mile) per change in time (a minute). Mathematicians would call this the slope of the line in the first picture – or, alternatively, the derivative of the curve in the first picture. In this case (constant speed) the slope of the whole curve is a constant and the derivative is a straight line. Let’s visualize when they are not, which was where Newton pulled together some old and new insights to create some powerful tools.

    Instantaneous Slope

    The example above is so easy that you are probably rolling your eyes. But suppose that the curve isn’t so simple. Look at these next two animations (done in OpenSCAD).

    Notice the little line moving along the top curve. That is the instantaneous slope of the curve (it is also a line that is tangent to the curve). The bottom line is the value of that slope, just like our previous graph in this log. The little line on the bottom curve is showing that the slope is calculated from the past and current behavior of the top curve. We can't talk about change of a curve without having at least two points, although we want those points to get closer and closer together to make the slope more and more instantaneous. (There are many ways to calculate slope, but just think of this simple two-point way for now).

    This first example is what it would look like if someone started out away from their house, and moved toward it and past it such that their velocity increased as shown in the lower graph. (Negative velocity we will interpret as toward the house, in this case). At the minimum point they arrive at the house, then move away again. The distance (the top line) is then a parabola.

    Paraboloa with an animated tangent line showing an instantaneous slope. A second line below shows  the slope of the first curve. In this case, the slope is a straight line.

    In this next case, someone is running back and forth, say to the right and then the left of a starting point, with their speed varying in a way we call a sinusoidal wave. The slope of a sinusoid is another sinusoid, offset in time (and sometimes scaled bigger or smaller.)

    Sinusoid with an animated tangent line showing an instantaneous slope. A second line below graps he slope of the first curve. In this case, the slope is a sinusoid, too.

    Newton’s big insight was that if he looked at the instantaneous slope on a complicated curve (how the curve is changing if we drew a shorter and shorter slope line) he could come...

    Read more »

  • Log #1: Visualizing Acceleration

    Joan Horvath04/27/2017 at 18:31 0 comments

    Calculus is a set of math techniques that allow us to analyze how things are changing. A lot of the explanations in Newton's original work are about how he thought about calculating relationships among a moving object's distance, speed and time.

    Each of our modules will have an open-source electronics and/or 3D printing project which will help the user to learn a calculus concept, either in the build itself or by playing with the resulting object. Our first project is intended to help you get some intuition about the difference between moving at a constant speed and acceleration (speeding up, slowing down, or being affected by gravity). This first module is built around an Adafruit Circuit Playground (an Arduino-based processor with onboard sensors and programmable LEDs) to visualize interactions between gravity and a moving object.

    Photo of Circuit Playground and battery in 3D printed case.

    From here, we will build up more complicated ideas from module to module. will create different Arduino sketches to run on the hardware components described in this module.

    The Concept

    Calculus was invented by Newton to help him think about the motion of the planets relative to each other. One of the key things to realize if you want to understand the intuition behind calculus is that it is predominantly a way of encoding physics.

    If you are standing on a planet, the force of gravity is pulling down on you. If suddenly there is no floor below you, that force opposing gravity is gone. You will start to accelerate (on earth, anyway) at 9.8 meters per second per second - so after 1 second you are going 9.8 meters per second, after two, 19.9, and so on.

    These forces are what are called vectors - they have a direction. So if I am accelerating downward and also trying to speed up forward and back, I treat those separately. A device that measures that is called an accelerometer, which usually measures up and down, right and left, and front and back separately.

    We wanted to design a little device that would let you play with the difference between moving at a constant speed (which does not require you to exert force) or accelerating (which does.)

    The Build

    We took an Adafruit Circuit Playground, an Ares Rescue Charge Card battery, and a 3D printed case (developed by Rich, available under a CC-BY-SA license) to hold them together to create our acceleration visualizer. (Case printed in PETG for translucency). The Arduino sketch (microcontroller program) is available, also CC-BY-SA, in Rich's Github repository.

    If you are new to this type of build,see the Instructions page.

    The Circuit Playground has (among other things) a three-axis accelerometer, a buzzer, and programmable LEDs. Here is a picture of the 3D printed case, the Circuit Playground, and the battery.

    Components - an Adafruit circult playground board, battery, and 3D printed case

    Assembly

    The Circuit Playground fits snugly into the round part of the case, lights pointing out. The battery slides in after and locks the Playground in place.

    The Arduino sketch is designed so that if the lights are pointed upward, the program will ignore gravity and only measure acceleration and deceleration in the forward-and-back and left-and-right directions. It will stay lit up green as long as you have it perfectly level. You can even (cautiously) spin it around its vertical axis and it will stay green.

    Playing with Acceleration

    The device will light up red and beep as soon as you turn away from level. The red lights will "fall" to the bottom of the device when it turns away from level, and small deviations from level are shown by dimming of the lights on one end. (The tolerance is a parameter in the Arduino sketch.) You can use this to anticipate that you are off-level and/or accelerating other than in the up and down direction. The device ignores vertical acceleration (that is, accelerations perpendicular to the Circuit Playground board.) This means you can accelerate and fake it out - think about how to carefully dynamically angle it to get away with that. The videos that follow show the device being moved side to side with the light...

    Read more »

View all 6 project logs

  • 1

    For the sensor pod introduced in Unit 1:

    First obtain the battery and Adafruit Circuit Playground boards (as noted in the Components section.)

    Next, if you have never programmed an Arduino before, you will need to download the Arduino IDE (Integrated Development Environment.) A good way to do that is to use Adfruit's custom IDE, available at https://learn.adafruit.com/introducing-circuit-playground/arduino-1-dot-6-x-ide

    (If you are using Windows, you will need to install a driver first. See the Adafruit tutorial menu items for these downloads.)

    Next connect your Circuit Playground to your computer and get the board talking to your computer, as described in the linked tutorial.

    Once that is working, load the software from this repository onto your computer and then onto the Circuit Playground (see Adafruit tutorial for how to load software onto a board): https://github.com/whosawhatsis/circuit_playground_level

    When the software has loaded successfully (it should be turning red and green and beeping when red) you can disconnect your computer. Slide the Circuit Playground into the round area on the 3D printed cover (or if you don't have a cover, just keep it connected to your computer for now.) If you do have the battery or cover, align the Circuit Playground lights-outward into the round part, with the microUSB in the notch. Then slide the battery into its slot and connect the microUSB to lock it in. Turn it on and it should work.

    To create the case, 3D print the file at https://www.youmagine.com/designs/circuit-playground-pod

    If you are using a different battery than the one recommended here, you will need to go into the OpenSCAD 3D printable model at the same link and change the dimension parameters. The model is designed in OpenSCAD, which you can download and get a manual for here: www.openscad.org.

    ~~~~~~~~~

View all instructions

Enjoy this project?

Share

Discussions

dangerousfood wrote 05/02/2017 at 14:13 point

I love this project. I am of the mindset that calculus is introduced too late. Once people realize how accessible calculus actually it becomes much easier to learn. I was struggling in Cal 1 and it wasn't until I reached Calc 2 that my professor looked at me and said, "We're doing this to calculate the area under the curve.". I've since graduated with a BS in math but, if it wasn't for that small with held statement I would've been lost for much longer.

  Are you sure? yes | no

Joan Horvath wrote 05/02/2017 at 17:35 point

Thank you for the note. This project grows out of experiences just like that (both on the students and faculty side of the ah-ha moment). Some people flourish with symbols and work that way, some people don't.  But I think that is getting recognized more and more, and maybe we can help push it a bit here and beyond...  

  Are you sure? yes | no

technologiclee wrote 03/29/2017 at 03:55 point
I suggest designing a set of 3D printable cups of different shape and equal volume with the formula labeled on the side. Children could play with them at bath time and pour water from one cup to another and see intuitively that they hold the same amount. These could also be used as a hands on activity for science or math demonstrations. The simplest shapes would be a tall thin cylinder and a shorter and wider cylinder. Many other shapes can be used.

  Are you sure? yes | no

Joan Horvath wrote 03/29/2017 at 04:04 point

Thanks! Actually we did that very thing for our Hackaday project last year. This year we are thinking about the next level... Here's the constant-volume objects. https://www.youmagine.com/designs/fixed-volume-objects

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates