All-But-One Desmos

There is too much to like about Desmos. Really, though. The pace of innovation is gross. I am the first to admit that my sophistication with the platform is lagging behind the possibilities. I have never dabbled in Computation Layer, and I haven’t played with the Geometry. Part of my problem is the core team and the army of fellows are so darn accommodating with any questions.

One of my favourite activities remains the Marbleslides.1 They set a beautiful stage for students to stretch their imagination, and I have not yet met an activity that sponsors a need domain and range in a more organic fashion. I have used them with all secondary grade levels, and they will be a regular part of the weekly work for my undergraduate students in their mathematics methods course this Winter.

As I was prepping the challenges for my undergrads, there was one that caused me particular issues (mainly because I was trying to go above and beyond with a set of pseudo-concentric circles). My solution would consistently collect all the stars but one, and the leftover star wasn’t always the same. This got me thinking: Would it be simple to build a set of functions to purposefully collect all the stars but one?

After some playing, I became convinced that this new constraint makes things interesting. Mainly, I liked interrogating my own thought process while I decided which star I wanted to “protect”. I noticed that many of the challenges contained some types of symmetry, and that this feature makes protecting one star more difficult than expected. I also noticed that it became important to keep the balls moving quickly because they lost quite a lot of speed when they hit barriers I would set up to “protect” a specific star.

I was playing on the original “Marbleslides: Lines” activity. Because this is an introductory activity on linear functions, the initial challenges line the stars up fairly nicely–usually in straight lines. This actually made “protecting” one of the stars interesting. Initially, I left my “linear” solution intact, and built parabolas around the line in an attempt to save one star. I found myself enjoying this new challenge quite a bit. 2 I took a few videos of my initial exploits:

A linear solution.
Failed attempt to “protect” a star.
Fix #1 that “protects” a star.
Fix #2 that “protects” a star.
Manipulating the parabola to create a 1-function “solution”.

The nice part about the parabolas, is they make amazing ramps. This can be used to maintain the speed of the balls, or (as we see in the last solution) manipulate the speed to achieve our goals. Instead of overlaying parabolas into a linear solution, I decided to take the challenges from the same activity (with small modifications) and change the instructions. Students are now asked to collect “all-but-one” star using only quadratic functions. The choice of which star is up to them, and the natural symmetries in the stars from the linear activity provides an interesting environment. The modified Desmos activity can be found here.

I restricted them to parabolas (although there is nothing really restricting them outside of the instructions), because I have a specific course in mind for the activity. I am looking forward to seeing which stars are “protected” and how students made those decisions. I also think there is a natural extension question:

Can you build sets of functions that protect different stars? In other words, if you were to number the stars 1, 2, 3, …, n, could you build a solution that collects all-but-star2? all-but-star5? etc.

All in all, I believe that ideas like this reflect the personality of Desmos. They are committed to teachers and perpetually curious in their pursuit of student thinking. Sometimes it is the smallest changes that serve as tremendous triggers for mathematical activity.


  1. If you are unfamiliar with Marbleslides, get acquainted here.
  2. I did have to get used to the programmed “success” message from Desmos actually meaning that I had failed this particular challenge.

Leave a Reply

Your email address will not be published. Required fields are marked *