frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Is The Economist Always Wrong?

https://www.economist.com/interactive/finance-and-economics/2026/07/02/is-the-economist-always-wrong
59•nreece•1h ago•38 comments

GAO: DOE Is Prematurely Excluding Less Expensive Options for Nuclear Cleanup

https://www.gao.gov/products/gao-26-108193
144•Jimmc414•5h ago•58 comments

Tenda firmware (multiple versions) contains hidden authentication backdoor

https://kb.cert.org/vuls/id/213560
75•miniBill•3h ago•13 comments

Canada's only watchmaking school still ticking after 80 years

https://www.cbc.ca/news/canada/montreal/canada-s-only-watchmaking-school-9.7254211
68•throw0101a•3d ago•25 comments

Structure and Interpretation of Computer Programs Video Lectures (1986)

https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/v...
63•gjvc•4h ago•1 comments

Local, CPU-Friendly, High-Quality TTS (Text-to-Speech) with Kokoro

https://ariya.io/2026/03/local-cpu-friendly-high-quality-tts-text-to-speech-with-kokoro/
327•speckx•9h ago•70 comments

StreetComplete: Fixing OpenStreetMap, one tiny quest at a time

https://streetcomplete.app/
716•kls0e•15h ago•171 comments

Chat Control 1.0 and 2.0 Explained

https://fightchatcontrol.eu/chat-control-overview
486•gasull•13h ago•158 comments

We're extending access to Fable 5 on all paid plans through July 12

https://twitter.com/claudeai/status/2074548242386178258
97•minimaxir•10h ago•78 comments

Show HN: Chiptune Radio

https://chiptune-radio.alephvoid.com/
27•bootbloopers•3h ago•4 comments

Show HN: Davit, a Apple Containers UI

https://davit.app
234•xinit•9h ago•50 comments

Herdr: One terminal to rule them all

https://herdr.dev/
193•handfuloflight•5d ago•95 comments

30papers.com – Ilya's 30 essential ML papers, in a beginner friendly format

https://30papers.com/
408•notmcrowley•12h ago•67 comments

A better way to tie gym shorts (or any drawstring) [video]

https://www.youtube.com/watch?v=3R0Lp86GEBk
480•surprisetalk•15h ago•169 comments

Pure-Python symbolic regression that rediscovered Kepler's law from 8 data point

https://github.com/ariel95500-create/gp-elite
15•sade_95•5d ago•8 comments

l: A new runtime for k and q

https://lv1.sh/
117•skruger•9h ago•64 comments

An interactive explorer for Benford's Law across real datasets

https://vatsalbakshi.com/blog/benfords-law/
23•dingobabies•3h ago•7 comments

Every new car sold in the European Union must include a driver monitoring camera

https://allaboutcookies.org/eu-mandatory-distracted-driver-system
477•nickslaughter02•7h ago•617 comments

Show HN: Rowboat – Open-source, local-first alternative to Claude Desktop

https://github.com/rowboatlabs/rowboat
115•segmenta•11h ago•28 comments

LineageOS Statistics

https://stats.lineageos.org
10•pentagrama•2h ago•1 comments

Scheme Is a Hoot

https://gracefulliberty.com/notes/scheme-is-a-hoot/
39•signa11•2d ago•4 comments

IEEE Rolls Out Large Language Models Training Course

https://spectrum.ieee.org/large-language-models-ieee-course
45•JeanKage•6d ago•7 comments

Jim's TrueType QR Code Font

https://github.com/jimparis/qr-font
151•arantius•11h ago•21 comments

First Principles of Model Routing

https://try.works/first-principles-of-model-routing
29•try-working•4d ago•13 comments

Notes on Software Quality

https://anthonyhobday.com/blog/20260410
97•speckx•9h ago•48 comments

Show HN: Free Mermaid Diagram Editor

https://moxiedocs.com/mermaid-diagram-editor
20•ghosts_•4h ago•5 comments

AI Meets Cryptography 1: What AI Found in Cloudflare's Circl

https://blog.zksecurity.xyz/posts/circl-bugs/
98•duha•9h ago•11 comments

Why skilled workers come to Germany and then leave again

https://www.dw.com/en/germany-migrants-skilled-workers-integration-labor-market-bureaucracy-langu...
203•theanonymousone•17h ago•509 comments

Why we built yet another Postgres connection pooler

https://pgdog.dev/blog/why-yet-another-connection-pooler
154•levkk•12h ago•40 comments

Fixing analog audio on the $2.58 HDMI-to-VGA adapter

https://nyanpasu64.gitlab.io/blog/hdmi-vga-dac-audio/
90•zdw•2d ago•23 comments
Open in hackernews

Pure-Python symbolic regression that rediscovered Kepler's law from 8 data point

https://github.com/ariel95500-create/gp-elite
15•sade_95•5d ago

Comments

sade_95•5d ago
What My Project Does

GP_ELITE is a symbolic regression engine in pure Python: given (X, y) data, it searches for a readable mathematical formula linking them, instead of a black-box model.

To show what that means concretely: I gave it nothing but the 8 planets' distance from the Sun and orbital period — 8 data points — and asked for a formula. It returned:

T = a · sqrt(a) (i.e. a^1.5), R² = 1.000000

That's Kepler's Third Law (T² ∝ a³), which took Kepler ~10 years to find in 1618. GP_ELITE found it in ~3 seconds. Reproducible: examples/kepler_demo.py.

v0.2.0 (this week) added the parts that make it reliable: Levenberg-Marquardt constant fitting (constants come back at machine precision — Coulomb's q1·q2/(4πεr²) is recovered exactly), multi-restart with a merged candidate archive, a Pareto front output (the full complexity ↔ accuracy staircase, not just one champion), and a guarded forecasting mode for extrapolating trends beyond your data without the usual GP blow-ups.

Pure Python/NumPy — pip install gp-elite, no compiler, no Julia.

Target Audience

Anyone with small experimental datasets (≤10 variables, 100–5000 points) who wants to understand a relationship, not just predict it: lab engineers, scientists, students. One concrete use case that drove development: battery degradation (SOH) forecasting — the guarded mode gives you an honest bracket of scenarios (a Pareto front from a conservative straight line to richer bounded laws) instead of one overconfident curve. Production-usable for that niche (built-in hold-out validation, regression-tested); not aimed at large-scale ML.

Comparison

vs gplearn (the established pure-Python option): I ran both on the same frozen benchmark — 15 Feynman physics equations, identical data and splits, generous budget for gplearn. Exact symbolic recovery (machine precision): GP_ELITE 10/15 (67%) vs gplearn 6/15 (40%). gplearn recovers the constant-free formulas and stalls as soon as a ½ or a 4π appears (no real constant optimization); LM fitting is what closes that gap. Every number is reproducible: PYTHONHASHSEED=0 python benchmarks/feynman_bench.py 0 15 and benchmarks/duel.py in the repo.

vs PySR / Operon (the state of the art): they are stronger on speed and scale, and I'm not claiming otherwise — but they require a Julia or C++ toolchain. GP_ELITE's whole point is zero barrier: pip install and go.

vs neural nets / gradient boosting: those win on raw accuracy for large data, but give you a black box — GP_ELITE gives you the actual equation.

Honest limits: weak on chaotic targets (tested on Collatz), degrades past ~6 variables with decoy features, and pure Python costs wall-time on big data.

Code (MIT): https://github.com/ariel95500-create/gp-elite

srean•47m ago
This is not surprising at all and depends on the inductive bias hardcoded in the search.

There are infinite number of curves that agree on those 8 points and deviate from Kepler 's law everywhere else. On such 'trajectories' this algorithm would have performed badly.

sade_95•28m ago
You're right, and I'd go further: the inductive bias isn't incidental, it's the whole product. Short trees over {+, *, sqrt, exp, ...} plus a parsimony penalty is basically Occam's razor made executable. A bias-free learner can't generalize at all (no free lunch), so the honest question is whether this particular bias matches the domain. For physics it has an unreasonably good track record though that's the mystery of physics, not of my library. Two nuances though. The evidence here isn't "a curve fits 8 points" infinitely many do, as you say. It's that a 3-node formula fits them to machine precision (1−R² ≈ 1e-15). Under an MDL view that's not nothing: the probability that such a short description nails 8 independent points exactly, if the truth were some unrelated wiggly curve, is astronomically small. The shortness is the evidence. Second: your adversarial curve would fool Kepler too, and any finite-data method ever. The practical mitigation is the boring one held-out validation, and in the planetary case, extrapolation: the law found on 8 planets keeps working on moons, asteroids and exoplanets. On the tool side I try to keep the failure mode visible rather than hidden: it returns the full accuracy-vs-complexity Pareto front, and the docs say plainly that noise breaks symbolic recovery long before it breaks fit quality. So yes: it finds simple laws when simple laws exist. When they don't, it fails ideally loudly.
aesthesia•5m ago
Thank you, Claude.
gus_massa•3d ago
Some minor comments:

What happens if you give the system not only the semi-mayor axis but also the semi-minor axis?

Have you tried with only the 6 planets Kepler know? (I don't expect this to change the result too much.)

Have you tired with noisy data?

sade_95•1d ago
Good questions — I ran all three: Semi-minor axis: I added b as a second feature (b = a·sqrt(1−e²), so corr(a,b) = 1.00000 to 5 decimals; Mercury is the only planet where they differ by more than 2%). It still picked a and ignored b completely: T = 164.78·a·sqrt(a), R² = 0.99999998. What saves it on such a nasty collinear decoy is the constant fitting: the law is exact in a and only almost-exact in b, so Levenberg-Marquardt makes that 2% Mercury error decisive. Kepler's 6 planets: works fine, and it's actually nicer — it returned pow(a, 1.500812) explicitly. Six clean points on a power law is plenty. Noise: this is where I have to be honest. With 1% gaussian noise on T the fit is still R² = 0.9996 and a·sqrt(a) is still in there, but wrapped in junk (exp(tanh(...))). At 5% the clean form is gone — it returns a bounded exp(−a²) family that fits well but isn't the law. So fit quality degrades gracefully, symbolic recovery doesn't. Making that part noise-robust is pretty much the open frontier of the whole field, not just of my tool.
gus_massa•1d ago
Remember to use two enters

to get a new paragraph here.

> b = a·sqrt(1−e²), so corr(a,b) = 1.00000 to 5 decimals

Isn't e different for each planet?

> Mercury is the only planet where they differ by more than 2%

I remember something about Mars been the planet with the most eccentric elipse

> *So fit quality degrades gracefully, symbolic recovery doesn't. Making that part noise-robust is pretty much the open frontier of the whole field, not just of my tool.

Nice. It's a hard problem. Which heuristic are you using to pick the "best" formula?

sade_95
•
1d ago
Thanks for the formatting tip, noted.

Isn't e different for each planet?

Yes, each planet got its own e (Mercury 0.206, Venus 0.007, Earth 0.017...). The correlation still comes out at 1.00000 because all eccentricities are small while a spans 0.39 to 30 AU — a ≤2% per-planet wobble is invisible to Pearson across two decades of range. That's exactly what makes it a nasty decoy: almost collinear, but not quite.

Mars been the planet with the most eccentric ellipse

Close — Mercury is actually the most eccentric (0.206), Mars is second (0.093). Funny enough, Mars is the famous one precisely because Kepler derived his laws fighting with Tycho's Mars data: its ellipse was just eccentric enough to kill every circular fit. If Tycho had handed him Venus data instead, we might have waited a while longer.

Which heuristic are you using to pick the "best" formula?

Hold-out validation during evolution, then the old CART-style one-standard-error rule: pick the smallest formula whose validation error is within ~1 SE of the best one. Constants get refit with Levenberg-Marquardt before that comparison, so small forms compete at their best. It also returns the full accuracy-vs-size Pareto front so you can override the choice. And to connect it to your noise question: under noise that 1-SE band is exactly where wrong-but-simpler formulas sneak in and tie the true one — the two problems are really the same problem.