<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/github---dicroce-wyrm-math-algebra-engine--ohdhe77js" -->

---
title: GitHub - dicroce/wyrm_math: Algebra engine. | daily.dev
description: wyrm-math is a pure TypeScript, zero-dependency symbolic algebra engine designed for interactive math interfaces where users manipulate equations through...
canonical: https://daily.dev/posts/github---dicroce-wyrm-math-algebra-engine--ohdhe77js
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: GitHub - dicroce/wyrm_math: Algebra engine. | daily.dev
og:description: wyrm-math is a pure TypeScript, zero-dependency symbolic algebra engine designed for interactive math interfaces where users manipulate equations through...
og:url: https://daily.dev/posts/github---dicroce-wyrm-math-algebra-engine--ohdhe77js
og:image: https://api.daily.dev/og/posts/OhdhE77js.png
og:image:alt: GitHub - dicroce/wyrm_math: Algebra engine.
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub - dicroce/wyrm_math: Algebra engine.

**[Hacker News](https://daily.dev/sources/hn)** · 5 min read · 0 upvotes · 0 comments

## Summary

wyrm-math is a pure TypeScript, zero-dependency symbolic algebra engine designed for interactive math interfaces where users manipulate equations through gestures. Its core design principle is that legal moves are always possible and illegal moves are impossible — equations are transformed only via rewrite rules, ensuring every reachable state is valid by construction. Conditional soundness handles edge cases like division by zero through first-class Assumptions that travel with the equation. The library includes ~25 built-in rules for linear equations, fractions, exponents, and quadratics; immutable ASTs with stable node IDs for animation; exact bigint rational arithmetic (no floating point); move enumeration with gesture anchors; and layout geometry utilities. It powers a gesture-based algebra app for iOS and Android, with the engine released under MIT.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/dicroce/wyrm_math>

## Similar posts on daily.dev

- [AsciiMath](https://daily.dev/posts/asciimath-ljtofr66n) · Hacker News · 0 upvotes · 0 comments
- [Manim-Web: 3Blue1Brown Mathematical Animations in React Tutorial](https://daily.dev/posts/manim-web-3blue1brown-mathematical-animations-in-react-tutorial-dbp7k5xoy) · SitePoint · 0 upvotes · 0 comments
- [<calc-input>, a custom input element that accepts mathematical formulas](https://daily.dev/posts/calc-input-a-custom-input-element-that-accepts-mathematical-formulas-pippkdutq) · Bram.us · 3 upvotes · 0 comments
- [⇆ bidicalc](https://daily.dev/posts/bidicalc-m7ovlrfez) · Lobsters · 0 upvotes · 0 comments

---

Tags: [#typescript](https://daily.dev/tags/typescript), [#math](https://daily.dev/tags/math)

[View this post on daily.dev](https://daily.dev/posts/github---dicroce-wyrm-math-algebra-engine--ohdhe77js)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"GitHub - dicroce/wyrm_math: Algebra engine.","url":"https://daily.dev/posts/github---dicroce-wyrm-math-algebra-engine--ohdhe77js","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/github---dicroce-wyrm-math-algebra-engine--ohdhe77js"},"datePublished":"2026-07-11T04:30:31.388Z","dateModified":"2026-07-11T04:31:27.003Z","description":"wyrm-math is a pure TypeScript, zero-dependency symbolic algebra engine designed for interactive math interfaces where users manipulate equations through...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/eaabd8ef708aee478a7e23312436de60?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/eaabd8ef708aee478a7e23312436de60?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/github---dicroce-wyrm-math-algebra-engine--ohdhe77js","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"typescript,math","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"GitHub - dicroce/wyrm_math: Algebra engine."}]}
```

