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
The interactive gui part starts at 4:08. Before that is the setup and context of the example.
If you ever move in the direction of supporting sets of equations and isolating variables, consider using colors to indicate known values and unknown values as is done in this library.
I test this library on exercises you'd find in college physics (motion, constant acceleration, projectile motion, Newton's laws, etc.) since these involve sets of equations and eliminating variables so that you have expressions in terms of known values.
The above demo uses a jupyterlite notebook, so everything runs client side in the browser. No server side kernel necessary.
To use your interactive fluid style in this library to eliminate variables, I could see the user first isolating that variable. Then dragging that variable they want to eliminate over an instance of that variable in another equation. So that's effectively the user saying "replace this variable with this expression".
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!
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...
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 to look at js libraries now.
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?
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.
Edit: it seems to create a sqrt only if I drag one of the x-s over to the other side first in order to make one side only x^2, but then I get a sqrt(8/x) which I can't do anything at all with.
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...)