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
2022 update: There is now a book using these methods:Make:Calculus!
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 for self-learners, people who simply learn better hands-on, or the visually impaired. When Isaac Newton developed calculus in the 1600s, he tied 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. 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, with a second volume in late spring 2017.  Each chapter explains a scientific or mathematical principle, and then develops 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.

We now want to take this to the next level and figure out how to restructure learning a math subject completely, aiming at self-learning and at supporting learners who do much better at a subject if they can make and hold something. There are a lot of one-off projects to demonstrate a particular concept (and we have those in our books) but now we want to see how to think differently given the tools available to us.

Here is our video summarizing the project so far:

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.

Kepler's laws in plastic- 3D printed orbitsKepler's laws in plastic- 3D printed orbits

As an example, our project image is “Kepler’s Laws in Plastic." The models are available for download at our publisher's page (linked above) for the 2016 3D Printed Science Projects book. They depict 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 want to bring many people those insights and make math as natural as using construction toys.  We have been surprised at the emotional response this project has generated in many people (see our narrative in our logs) and we are excited about where this might go.

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...

Read more »


STL (3D printable file) of a visualization of the math behind a PID that converges (Log #9.) License CC-BY-SA 4.0,, credit Rich Cameron (aka Whosawhatsis). See more in the "Details" section of this project.

Standard Tesselated Geometry - 77.13 kB - 08/16/2017 at 05:45



STL (3D printable file) of a visualization of the math behind a PID that does not converge (Log #9.) License CC-BY-SA 4.0,, credit Rich Cameron (aka Whosawhatsis). See more in the "Details" section of this project.

Standard Tesselated Geometry - 405.69 kB - 08/16/2017 at 05:45



Derivative/integral pair- visualizing the fundamental theorem for sinusoids (log #5). License CC-BY-SA 4.0,, credit Rich Cameron (aka Whosawhatsis). See more in the "Details" section of this project.

Standard Tesselated Geometry - 1.04 MB - 08/16/2017 at 05:41



Derivative/integral pair- visualizing the fundamental theorem for x squared and x cubed (log #5 and #7). License CC-BY-SA 4.0,, credit Rich Cameron (aka Whosawhatsis). See more in the "Details" section of this project.

Standard Tesselated Geometry - 1.15 MB - 08/16/2017 at 05:40



STL (3D printable) design for limit comparison. (Log #4.) License CC-BY-SA 4.0,, credit Rich Cameron (aka Whosawhatsis). See more in the "Details" section of this project.

Standard Tesselated Geometry - 4.13 MB - 08/16/2017 at 05:08


View all 8 files

  • Log #20: epub3 version of Make: Calculus

    Joan Horvath09/24/2022 at 01:35 0 comments

    From the beginning we wanted to make our math explanations as accessible as possible. It turns out that it's pretty challenging to preserve the math in a form readable by screen-readers. Thanks to heroic efforts by Make's production team,  there is an epub3 version of Make:Calculus at  The Thorium epub3 reader is recommended. (The link gives you a pdf for visual reading, too.) Of course if you like paper, that's available at and the usual other retailers.

  • Log #19: Make: Calculus up for preorder!

    Joan Horvath06/26/2022 at 03:10 0 comments

    Well, it has been a long and winding road... but @Whosawhatsis and I are excited to announce that our book, "Make: Calculus" is now up for preorder in the Maker Shed. Things went in a lot of unexpected directions over these five years(!) but it worked out in the end! For more, see

  • Log #18: Video of our Supercon talk is up

    Joan Horvath02/16/2019 at 17:46 0 comments

    If you missed our talk at Supercon, there's now a good writeup on Hackaday, with video of the talk embedded. Here's the link:

  • Log #17: Supercon presentation & Make Magazine

    Joan Horvath10/07/2018 at 18:14 0 comments

    For those of you following along with our progress, you'll be glad to know that we are doing a Hackaday Supercon presentation! We are scheduled as the first talk on Sunday morning, Nov. 4 (10 AM). Supercon tickets still available at

    Also, we have a writeup about our math and science modeling in general in the new issue (Oct/Nov 2018) of Make magazine. Check it out!

  • Log #16: New repository is up - presentation 6/15

    Joan Horvath06/08/2018 at 18:55 0 comments

    Rich has now organized our relatively-mature models into a Github repository. Let us know if you try them out! Details in the repository notes.

    We've updated the predator-prey time model to create a surface that can be viewed a little better than the previous model.  You could turn the earlier model (Log #12) to do this, but we think the new one is more intuitive.

    We encourage experimentation and the Github repository should facilitate that.  Meanwhile work continues apace on our book and other ideas... stay tuned, and contact us via this site or's "contact us" link if you have ideas.

    We'll also be presenting this next week at the American Association for Advancement of Science (AAAS) Pacific Division Meeting in Pomona. On Friday Rich and I will be chairing a Scientific Maker event and  Open Source Hardware Science Workshop - come on out if you are in the area. (Registration fee required.)

    Predator prey: time series of prey view
    Predator prey: time series of prey view
    Predator prey: time series of predator view
    Predator prey: time series of predator view
    Predator prey: predator/prey phase space (looking down time axis)
    Predator prey: predator/prey phase space (looking down time axis)

  • Log #14: Talk at UC Berkeley April 2nd

    Joan Horvath02/24/2018 at 05:07 0 comments

    If you're in the Berkeley (CA) area and interested in this, we're giving a talk at the Berkeley Graduate School of Education about Hacker Calculus on April 2nd. They've posted it now Hope to see some friends there! 

  • Log #13: updated video

    Joan Horvath10/07/2017 at 04:04 0 comments

    We decided to update our project video to make a few things a little clearer and to add some bits. Check it out! (Linked in the project video slot, and also embedded in the Details section.)

  • Log #12: A taste of differential equation models

    Joan Horvath10/06/2017 at 00:41 0 comments

    We were going to start shifting  over to a site more oriented toward learning calculus (rather than our musings about how we are doing the development) but we thought we would put up just one more idea here first to get some feedback. It's a little preliminary, so we're not posting the models yet- but we would love some thoughts on the ideas!

    Our PID controller model is really a model of a two-dimensional system- a signal and its variation with time. We made it a three-dimensional piece by showing the derivative and integral of the system to show how each of these contributes to the final solution on a PID controller. But in some ways, you could do that with multiple lines on a traditional graph.

    So, instead, we said: what if you could model a truly 3D system, where you are showing how, for instance, two things are varying with time? We hunted around a bit and asked some folks for good candidate equations, and our mathematician friend Niles Ritter suggested we look into the predator-prey equations.

    These equations model how two populations, one of which eats the other one, vary over time. Populations will swell and contract as first the prey have a population boom and then the predators catch up and overtake.  (Often the example used is rabbits and foxes, if this is starting to sound dimly familiar!)

    The equations for this are called the Lotka-Volterra equations, and they come up in a variety of other contexts as well.  Their basic form is a pair of equations like this, where x = predators, y = prey, t = time, and a, b, c and d are constants:

       dx/dt  = ax – bxy

       dy/dt = cxy – dy

    We approximated dx/dt in the most simple-minded way possible:

       dx/dt = x at the current time – x at the previous time/time difference

    creating a standard time step and solving for x and y at each time step by using x and y at the previous time step.  There are many more sophisticated ways of doing this, but we wanted something simple we could toss into OpenSCAD and mess with.

    It turns out (see the Wikipedia article linked above) that if a=2/3, b=4/3, c=d=1, that there is stable oscillatory behavior of the two populations. They grow and sink together. (Another stable state is that both populations go extinct after some wild variation, but what fun is that?)

    Our first attempt to plot the three-dimensionally, messing around a bit with a,b,c,d and the starting values for the population, had time coming up from the platform, and looked like this. The numbers of rabbits and foxes are the x and y axes respectively, and time is coming up toward you. 

    Expanding Lotke-Volterra equations solutionExpanding Lotke-Volterra equations solution

    However, the particular set of equations we were trying out were not supposed to expand like that (although it looked cool.) Joan remembered her graduate school math and realized we needed to use either a smaller time step size or a more sophisticated way of modeling the derivative or both (we went with a smaller time step.)

      Rich also decided to try printing with different axes “up” in the print. So here is what the correct version looks like, printed with time going toward the top of the  the picture but with each one printed with a different pair of axes on the build platform of the 3D printer:

    Three versions of the visualization, printed with different axis "up"Three versions of the visualization, printed with different axis "up" during printing.

    It's also cool to note that two of these fit into each other.  The one above that looks like a toilet paper tube is the equivalent of the one that expanded, but with the numerical instability corrected.

    Two versions fit into each other

    Two versions fit into each other

    The version we find the most explanatory is the one below. Imagine the line in space describing the rabbits, foxes and time running along the top surface of this, making a spiral.  Time goes left to right, rabbits are in the vertical axis, and foxes are toward you in this orientation.

    Best orientation predator prey visualization

    Best orientation predator prey visualization

    And if...

    Read more »

  • Log #11: The making of our video

    Joan Horvath08/30/2017 at 04:40 0 comments

    We pulled together a few fun bits of video to make a prize video. It's posted in "Details,"  in the appropriate submission spot, and on YouTube of course, but we wanted to point out a few features.

    One of the fun things we realized was that our Log #1 accelerometer would turn green (show zero acceleration in x and y) if it was falling freely. We didn't want to drop our creation very far which meant that we needed a fast video. It turned out that an iPhone 6s in "slo mo" was perfectly fine for capturing the effect. (We dropped it just a few feet into a very big soft pillow - we don't recommend doing anything more drastic than that to your poor Circuit Playground and battery.) 

    We also felt validated that the objects really do make more sense when we can move them around and talk about them. We hope a lot of readers will make their own, which is even better than watching a video!

    One other note: the 3D printed piece showing x^3 versus x^2 curve (derivative and integral) has the two curves scaled differently from each other to make the shape of both curves clear. Scaling for these curves and avoiding unprintable pointy or very thin parts is proving to be tough! Another research area for us! 

  • Log #10: Now what?

    Joan Horvath08/17/2017 at 19:15 0 comments

    This project is a little different from many of the other Hackaday project, since we are not focused on building one thing, but rather on coming up with an approach to solve a problem that is made possible with technologies like 3D printing.

    Now that this has generated a lot of energy and interest, we have to stop and think where we will take it beyond this prize entry. A lot of people ask us if we have a "3D printing curriculum." By that they (usually) mean a few models they can download and plug into an existing curriculum.

    Although we appreciate that an incremental approach has its power (and our books support that approach) we think the thing to do now is to go back to our original thought: how can calculus in particular and math in general be taught differently if one starts with the "interesting stuff" and then gradually walks in the calculation part?

    Several people suggested we read "The Mathematicians Lament," by Paul Lockhart, (available in a variety of places depending on what online databases you have access to search on the title and name). Lockhart was (and apparently still is) a K-12 math teacher in New York. His premise is that if we taught art the way we teach math, the first few years would be all about creating the perfect brush stroke, and everyone would hate art.  He suggests finding ways to show the beauty and application of math first, and teaching the routine stuff later. We agree!

    As we have explored this space with this project so far, it has become clear to us that we need to teach calculus in a very different order than it normally is taught. Therefore, we will need to create a new end-to-end system of teaching (and learning) the subject, and we are currently thinking hard about what that system looks like and what it should include.

    Not everything has worked out. The "derivative machine" was more complex than expected, and so it violates our design rule that anything we put out there should be build-able by a good student or a time-pressed teacher. Rich is going to continue to tinker with it to see if a simple version might emerge, but as far as this project is concerned going forward we are going to focus on 3D printing and maybe a few more  Circuit Playground applications as a good lowest common denominator.

    How Far Can This Go?

    So, we see our challenge as finding a good way to lay out all of calculus (whatever that winds up meaning)  with physical intuition at its core. We have been gratified with how many people have encouraged us and made suggestions, in some cases getting quite energetic about it. 

    In the coming months we will be thinking about how to scale this, finding good groups to collaborate with, and seeing how far we can stretch the premise here. Can we usefully go beyond the PID example (in which everything is a function of time) to more-complex systems in which several things are varying at once? Can we use these parts to help us think about differential equations? Or should we be looking at how to start with these ideas and move back the other direction toward geometry, algebra, and the notorious algebra II?

    Stay tuned, and follow the project or contact us to keep in touch with its ultimate incarnation. Thanks for coming along for the ride so far!

    3D printed fundamental theorem models: sinusoids and exponentialsSinusoids and exponentials

View all 19 project logs

  • 1
    Sensor pod from Log 1

    For the sensor pod introduced in Log 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

    (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):

    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

    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:


  • 2
    Creating the 3D printable files in the integral/derivative logs

    In some cases, our 3D printable  files are derived from models in our books. If so, we have provided a link to our publisher's site, where these models are available for noncommercial use.  In other cases, for models developed here, we are providing a few representative STLs so that you can try them without necessarily learning OpenSCAD. 

View all instructions

Enjoy this project?



Lee Djavaherian wrote 06/13/2018 at 07:54 point

I appreciate what you're trying to do with the physical geometry and hope that you make further progress.

As an example for you, I was one of those students that struggled linking Algebra, Trigonometry, and Calculus concepts fast enough to pass the 50-minute tests and ended up having to take pre-Calculus twice, Calculus I four times, and Calculus III twice before I was able to find a way to pass them.

I almost thew in the towel on my 4th attempt at Calculus, but one summer in the early 1990's, a retired dean of mathematics from an engineering college was upset at how it had been taught to us.  Since the classes were 2+ hours in length, he had enough time to speak about things outside of the textbook, such as his joy of mathematics, and he even brought in plastic blocks and assembled them so that we could visualize the dimensional progression, including the 4th dimension, and explained how this progression to even higher dimensions was the same.  He even discussed mysterious concepts like the possible quantization of time.  This gave me the motivation I needed to go on.

I gave up four classes later, though, when I hit Differential Equations, due to the abstract, complex language and patterns, but have recently taken a modern class in complexity science with a qualitative approach that skips the complex differentiation, so that I could see patterns that were never shown to me.

I absolutely agree that making these patterns accessible at the very start is extremely important in inspiring people like me to proceed.  If you're goal-oriented, you are often motivated to learn difficult concepts needed to reach that goal if you are certain the goal is worthwhile, but placing an algebraic minefield in front of us without showing us what is on the other side of that hill will have obvious results.

Here are some of the difficulties that have to be surmounted to learn Calculus as an English speaker:

First one has to learn "mathematical English", the meanings for the same words differing between common English, philosophical English, and mathematics.  This can be even more confusing (which it was in some of my cases) if your instructor is not strong in common English.

Then one has to learn algebraic expressions, which are very compressed and have shape-shifting forms, assigning different meanings to the same symbols, depending on context, which gets highly abstract, and then you have to "decompress" it into mathematical English for class discussion.

And then this problem is worsened by the various notations for differentiation:

As I would repeat the coursework, my different books/professors switched between Leibniz, Lagrange and its variations without consideration of what I had used before.  Most of the mental difficulties are in overcoming layers of memorizing/decompressing trivial abstractions that are not related to the mathematical patterns under study.

It would be wonderful if you could find a way to simplify the algebraic issues, as this was the primary issue for me and is a requirement for any testing/advancement.

I tutored someone in College Algebra at an accredited college in recent years and was shocked to find that the teaching style where I live in the US had not improved in 30 years.  In fact, it was worse.  Not only did the student have to surmount the language hurdles I just mentioned, they had to feed online learning systems with correct keyboard input over unreliable Internet connections, wasting time just trying to figure out how to enter mathematical notation correctly through an idiosyncratic Javascript interpreter.  And the scoring system wasn't intelligent enough to give partial credit or evaluate the method the student used to derive the answer.

  Are you sure? yes | no

Tom Meehan wrote 09/05/2017 at 04:57 point

Keep up the great work, what you are doing is fantastic - making math make sense!

  Are you sure? yes | no

Joan Horvath wrote 09/05/2017 at 05:18 point

Thank you - all suggestions welcome! 

  Are you sure? yes | no

Morning.Star wrote 08/30/2017 at 06:58 point

Brilliant work, I love it. One of those damn, I wish I'd thought of that moments ;-))

  Are you sure? yes | no

Joan Horvath wrote 08/30/2017 at 14:42 point

Thank you!  We teach people how to use various maker technologies, and we realized that the algebra and theory need to come LAST (if at all) for many people, rather than "something you need someday."  I've found I learn a lot thinking about how to create these projects, and now the meta project is to capture THAT... :-)

  Are you sure? yes | no

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.

  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