<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw" -->

---
title: Keplearn: Extract Equations from Data in Seconds | daily.dev
description: Keplearn is a deterministic symbolic regression engine written in Rust that recovers closed-form equations from tabular data. It reads CSV or TSV from stdin...
canonical: https://daily.dev/posts/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Keplearn: Extract Equations from Data in Seconds | daily.dev
og:description: Keplearn is a deterministic symbolic regression engine written in Rust that recovers closed-form equations from tabular data. It reads CSV or TSV from stdin...
og:url: https://daily.dev/posts/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw
og:image: https://api.daily.dev/og/posts/lZJmZbidw.png
og:image:alt: Keplearn: Extract Equations from Data in Seconds
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.

# Keplearn: Extract Equations from Data in Seconds

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

## Summary

Keplearn is a deterministic symbolic regression engine written in Rust that recovers closed-form equations from tabular data. It reads CSV or TSV from stdin and prints candidate equations as JSON, usually resolving exact laws in milliseconds. On SRBench, it solves 64.7% of the noise-free Feynman suite, beating the previous best (AIFeynman at 55.8%) with far less compute. On the 138 black-box datasets without known closed-form answers, median test R2 is near zero, since the tool targets exact laws rather than general curve fitting. It ships as a single binary for macOS, Windows, and Linux, with the Linux build fully static.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/owls-on-wires/keplearn>

## Questions this post answers

### What symbolic regression rate does Keplearn achieve on the SRBench Feynman benchmark?

Keplearn solves 64.7% of the 116-dataset noiseless Feynman suite, measured by SRBench's sympy equivalence check at one trial per dataset with a 60 second per-fit budget. That beats the previous best published rate, AIFeynman's 55.8%, with the next closest group of methods near 27%, while using far less compute per fit.

_Comparing symbolic regression tools against SRBench benchmarks is easier with results tracked on daily.dev._

### How fast does Keplearn find an exact symbolic equation from a dataset?

Exact laws typically resolve in milliseconds, and on the noise-free Feynman benchmark suite the median fit time is 1.3 seconds with 55 of 116 fits finishing under a second. A `--timeout` flag caps harder cases, defaulting to a 60 second budget in the benchmark runs; solved cases exit early rather than running to the cap.

_Developers evaluating fast symbolic regression tools can follow benchmarking updates like this on daily.dev._

### How does Keplearn verify that a fitted constant should snap to a value like pi or sqrt(2)?

Fitted constants snap to nearby rationals or multiples of pi, e, and sqrt(2), but only when a verification pass confirms the snapped model still scores as well on both holdout data and the full dataset. The reported r2 is computed by evaluating the final printed equation string, never carried over from an internal fitting stage.

_Developers building numeric fitting pipelines can track techniques like constant-snapping on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 10 comments across hackernews (as of 2026-10-29).

**TL;DR:** Most of the discussion drifts into a tangent about Kepler's own history and unrelated physics tangents, with only light direct engagement on the tool itself, some of it questioning whether the post was AI-generated.

**Sentiment:** 30% positive · 50% mixed · 20% skeptical

**The case for**

- One person called it fun to think about and build, offering simple appreciation.
- One commenter found the related ideas cool after checking it out.

**The pushback**

- Some suspect the writing or account is AI/bot-generated rather than genuinely human.
- The discussion largely veers off into historical and unrelated technical tangents rather than evaluating the tool itself.

**By community**

- hackernews (mixed): Engagement is thin and mostly tangential, split between historical trivia about Kepler, unrelated physics side projects, and brief suspicion that the post is AI-generated.

**Hottest debate:** Whether the post (or an account in the thread) is genuinely human-written or AI/bot-generated.

**Highlights**

> Is this a bot account? The unicode everywhere and comments indicates this was 100% vibe-coded...
> — [moussore on hackernews](https://news.ycombinator.com/item?id=50296176)

> Looks like it was written by human. Crazy
> — [kamilstaszewski on hackernews · 2 comments](https://news.ycombinator.com/item?id=50291161)

> Yup, I checked it out, some cool ideas in there. Owl and I were talking about our deterministic algos for SR under another recent HN post on SR, which seems to be having a small moment. https://news.ycombinator.com/item?id=50171936
> — [verdverm on hackernews](https://news.ycombinator.com/item?id=50294750)

> I bet this was fun to think about and build. Thank you for sharing!
> — [joshmarlow on hackernews](https://news.ycombinator.com/item?id=50294562)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=50289590) · 83 points · 10 comments

## Similar posts on daily.dev

- [13 Models and 4 Agents on SWE Tasks: Go, Java, Python, Rust, TS](https://daily.dev/posts/13-models-and-4-agents-on-swe-tasks-go-java-python-rust-ts-ithomlqxu) · Hacker News · 2 upvotes · 0 comments
- [okf-rs: A New Rust Tool for Turning Codebases into AI-Readable Knowledge Bases](https://daily.dev/posts/okf-rs-a-new-rust-tool-for-turning-codebases-into-ai-readable-knowledge-bases-hfzjhvvd6) · Medium · 6 upvotes · 0 comments
- [Build an Agent That Thinks Like a Data Scientist: How We Hit \#1 on DABStep with Reusable Tool Generation](https://daily.dev/posts/build-an-agent-that-thinks-like-a-data-scientist-how-we-hit-1-on-dabstep-with-reusable-tool-genera-0g6uoyl1s) · Hugging Face · 1 upvotes · 0 comments

---

Tags: [#machine-learning](https://daily.dev/tags/machine-learning), [#data-science](https://daily.dev/tags/data-science), [#rust](https://daily.dev/tags/rust)

[View this post on daily.dev](https://daily.dev/posts/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw)

```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":"Keplearn: Extract Equations from Data in Seconds","url":"https://daily.dev/posts/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw"},"datePublished":"2026-10-29T19:57:18.252Z","dateModified":"2026-10-29T21:35:44.925Z","description":"Keplearn is a deterministic symbolic regression engine written in Rust that recovers closed-form equations from tabular data. It reads CSV or TSV from stdin...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a3e4e3c4f3ffcb92606a00436a02fa2b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a3e4e3c4f3ffcb92606a00436a02fa2b?_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/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"machine-learning,data-science,rust","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":"Keplearn: Extract Equations from Data in Seconds"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/keplearn-extract-equations-from-data-in-seconds-lzjmzbidw#faq","mainEntity":[{"@type":"Question","name":"What symbolic regression rate does Keplearn achieve on the SRBench Feynman benchmark?","acceptedAnswer":{"@type":"Answer","text":"Keplearn solves 64.7% of the 116-dataset noiseless Feynman suite, measured by SRBench's sympy equivalence check at one trial per dataset with a 60 second per-fit budget. That beats the previous best published rate, AIFeynman's 55.8%, with the next closest group of methods near 27%, while using far less compute per fit. Comparing symbolic regression tools against SRBench benchmarks is easier with results tracked on daily.dev."}},{"@type":"Question","name":"How fast does Keplearn find an exact symbolic equation from a dataset?","acceptedAnswer":{"@type":"Answer","text":"Exact laws typically resolve in milliseconds, and on the noise-free Feynman benchmark suite the median fit time is 1.3 seconds with 55 of 116 fits finishing under a second. A `--timeout` flag caps harder cases, defaulting to a 60 second budget in the benchmark runs; solved cases exit early rather than running to the cap. Developers evaluating fast symbolic regression tools can follow benchmarking updates like this on daily.dev."}},{"@type":"Question","name":"How does Keplearn verify that a fitted constant should snap to a value like pi or sqrt(2)?","acceptedAnswer":{"@type":"Answer","text":"Fitted constants snap to nearby rationals or multiples of pi, e, and sqrt(2), but only when a verification pass confirms the snapped model still scores as well on both holdout data and the full dataset. The reported r2 is computed by evaluating the final printed equation string, never carried over from an internal fitting stage. Developers building numeric fitting pipelines can track techniques like constant-snapping on daily.dev."}}]}
```

