There is a mobile game called DragonBox. It sort of tricks you into learning algebra by starting with very abstract manipulations of a puzzle that must follow rules... gradually the game teaches you more and more rules and also strips out the more abstract elements until on the last levels you are finally solving real equations. I loved it, it taught my kids algebra.... and it was just fun. Over the years I often thought that there should be a calculator for Algebra that works this way... something where you can drag terms around and cancel & distribute with gestures, but most importantly enter your own problems. It should also do more kinds of problems than DragonBox allowed. So I finally decided to build it.
I watched the video. I think I've been wanting something like this recently but there's not really a name for this sort of thing that I know of.
Relatedly, I've been working on a step-by-step solver/calculator but I just use sympy (via pyodide) + mathlive. But I'm starting to see the limitations of running Python in the browser and am starting look at js libraries now.
Probably it's most important feature for applications like this is that the id's of elements in the equations are stable (meaning, if an X has an id of 123 and a transformation moves it to the other side of the equals sign, it still has id 123... this allows you animate between states if you wish).
I tried the demo. One thing I've noticed is it's sometimes hard to know what operation clicking or dragging something will do (or has done sometimes). I'm not sure what would help other than showing like a pie menu before carrying out the operation.
On the library. It's sounds really cool. I'm going to look at it pretty soon.
The nearest thing that I've heard of is Wolfram Alpha's step-by-step solution solvers, but the worry with those is always that it's too easy for the student to just keep clicking next step and not learn anything.
I appreciate how this frames algebra as a puzzle instead of a problem :)
This is very cool! I'd like to see a version for theorem proving/equational reasoning as well because I think the ideas behind reasoning about functional programs and proving properties about them are just many cases of rule-applying but people don't staring at equations or jump straight to a theorem prover, whereas a visual interface might make the transition a lot easier.
What a fun idea. I can see this being one of those casual "games" that you fiddle with when you're bored. It feels more productive than doom scrolling or playing games. Thanks for sharing!
It uses https://capacitorjs.com/ and I'm super happy with this choice. I think it feels fast simply because solving simple algebra problems is very light work these days (and of course its all on device... so no waiting on the network).
Bought the app, this is great. Can I make a feature request? I’d love for it to include a sequence of “levels” or existing equations to try and solve in order of increasing difficulty, and maybe a way to generate a random interesting one. Would love to use this to teach others with a mechanism for regular practice.
DragonBox Algebra has a similar concept but gamified. It has a cool progression: you get a new "power" each chapter, like factoring or negating. And it starts out with monster cards then gradually transitions to "x" and numerals. My kids have loved it, but it's hard to tell how much they learn when you can only make legal moves. When my older one learned the basic rules of algebraic manipulation and went back to it, it worked great at giving him a visual model to follow.
That said, the game doesn't let you do arbitrary equations, so you cap out when you beat the game. Excited to try this app out!
Based. I tend to think of algebra as movement of terms, as opposed to only thinking in terms of operations. This could be really good for building intuition.
Yup. The goal was guide rails.... it'll still let you do non optimal things... just not totally illegal things. Hopefully if you do it enough you can take the guide rails off and still know what to do.
It doesn't seem like roots can be performed in the web version. Specifically, both x^3=8 and (x^2)x=8 seem unsolvable.
It keeps trying to either subtract x^3, or divide by x. I can't get it to create a sqrt no matter what I drag or where.
In x^-1=2, I can get to 1=2x but I can't get it to simplify any further. (Edit: I was able to end up with a fraction of -1/-2 which I guess is correct...)
I updated the underlying engine (and its live on the web version here: https://dicroce.github.io/wyrm/home.html). There is some new powers examples in the drop down. Irrational roots are a potential next step.
27 comments
[ 0.75 ms ] story [ 38.3 ms ] threadhttps://dicroce.github.io/wyrm/home.html
I also decided to open source the underlying math engine so others could build on it.
https://github.com/dicroce/wyrm_math
My goal for the engine btw is to build it all the way up to Calculus.
Relatedly, I've been working on a step-by-step solver/calculator but I just use sympy (via pyodide) + mathlive. But I'm starting to see the limitations of running Python in the browser and am starting look at js libraries now.
https://github.com/dicroce/wyrm_math
Probably it's most important feature for applications like this is that the id's of elements in the equations are stable (meaning, if an X has an id of 123 and a transformation moves it to the other side of the equals sign, it still has id 123... this allows you animate between states if you wish).
On the library. It's sounds really cool. I'm going to look at it pretty soon.
The nearest thing that I've heard of is Wolfram Alpha's step-by-step solution solvers, but the worry with those is always that it's too easy for the student to just keep clicking next step and not learn anything.
I appreciate how this frames algebra as a puzzle instead of a problem :)
The Wolfram thing: https://www.wolframalpha.com/examples/pro-features/step-by-s...
Specifically this one: https://www.wolframalpha.com/input?i=find+t+for+t%5E2+%2B+3t...
Here's a demo of a library for interactively eliminating variables from sets of equations:
https://youtu.be/7ysUdxTfKhU?is=lE5o9Besk1XNnggP
Source:
https://github.com/dharmatech/combine-equations.py
Just curious... Did you implement each app natively? I.e. Swift and Kotlin? Or were you able to use a cross platform framework like Flutter?
That said, the game doesn't let you do arbitrary equations, so you cap out when you beat the game. Excited to try this app out!
It keeps trying to either subtract x^3, or divide by x. I can't get it to create a sqrt no matter what I drag or where.
In x^-1=2, I can get to 1=2x but I can't get it to simplify any further. (Edit: I was able to end up with a fraction of -1/-2 which I guess is correct...)