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.
siraben 1 hours ago [-]
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.
senkora 2 hours ago [-]
This is awesome. Congrats on shipping!
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 :)
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 to look at js libraries now.
dicroce 3 hours ago [-]
The underlying math engine is written in typescript and is open source:
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).
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.
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.
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).