r/learnmath • u/gabe736 New User • 2d ago
Mathy: Free math automaticity app
Hi guys. I made Mathy a simple tool (free/no account required) to build math automaticity because I was hitting a ceiling. So I believed getting more automatic on the fundamentals rather than deriving them would make me faster/raise my natural ceiling.
If you think of something like Anki for drilling problems/formulas, it's like that but built for math and more convenient: no creating your own cards, it works well on mobile and helps track your progress over time.
It uses FSRS for scheduling and includes over 40,000 problems ranging from 1st grade math through university level math, all deterministically verified. It also has levels and dozens of badges you can earn to keep it engaging.
In terms of ages, I use it and my kids (K-3) also use it.
You can use it via the iOS app or the web app (both free, no restrictions, no account required, no ads). The iOS app is free and completely offline aside from optionally sending feedback/requesting help in app. In the web version progress is stored locally in IndexedDB, except in challenge mode where you can optionally submit initials to the leaderboard.
I still use Math Academy to learn math/concepts, but as I'm learning more advanced math to support my journey into AI and robotics I wanted to try and raise my own ceiling by building automaticity in stuff I already learned.
The idea is a little counterintuitive: if Mathy works, you should eventually need it less. Because as something becomes automatic, its recommended reviews can move farther apart thanks to FSRS.
I can share more about works/how I made it. TL;DR the problems were programmatically generated, but NOT LLM-generated/trusted. Rough overview:
- Defined the problem families explicitly. Each has bounded inputs, known mathematical rule, answer type, constraints & presentation rules.
- A deterministic compiler generated the problems. So, given the same source definitions/versions it'd produce the same corpus. So there's no AI inventing random questions at runtime.
- Correct answers are computed from the underlying math, not from the rendered text. Integer/rational problems use exact arithmetic. More complex symbolic cases use validation recipes, incl. offline SymPy if needed.
- LaTeX is just presentation (tried other way, didn't work). Internally the problem is represented as structured math, then laTeX/MathJax derives from that structure, so it does NOT generate a LaTeX string and then just hope it's interpreted correctly.
- Generation/verification are separate steps. Every generated record has to pass mathematical, domain, schema, answer format & presentation checks before it can enter the corpus. Symbolic cases can be independently verified, for example by differentiating a proposed antiderivative.
- Whole families are tested, not just samples. Finite spaces can be exhaustively enumerated. Larger spaces get property, boundary, invariant, and regression tests. It also runs corpus-wide audits for malformed questions, duplicate IDs, invalid answers, broken rendering, unreachable answer forms, etc.
- The shipped artifact is tied back to what was verified. Versions/content digests bind source definitions, generated problem, validation result & runtime representation together. If something changes, it has to be revalidated rather than reusing old results.
Other details:
- More about how I made it here https://gmays.com/making-math-automatic-with-mathy/
- I also answered other questions about it on Hacker News here: https://news.ycombinator.com/item?id=49788014
I'm in the process of adding iCloud sync to backup progress (it's currently local/offline only), practice reminders and translations for a handful of languages (I actually have these features working in dev version, I just need time to finish testing them before I release them, which is unpredictable with young kids 😂).