frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Reputation Scores for GitHub Accounts

https://shkspr.mobi/blog/2026/02/reputation-scores-for-github-accounts/
1•edent•3m ago•0 comments

A BSOD for All Seasons – Send Bad News via a Kernel Panic

https://bsod-fas.pages.dev/
1•keepamovin•6m ago•0 comments

Show HN: I got tired of copy-pasting between Claude windows, so I built Orcha

https://orcha.nl
1•buildingwdavid•6m ago•0 comments

Omarchy First Impressions

https://brianlovin.com/writing/omarchy-first-impressions-CEEstJk
1•tosh•12m ago•0 comments

Reinforcement Learning from Human Feedback

https://arxiv.org/abs/2504.12501
2•onurkanbkrc•12m ago•0 comments

Show HN: Versor – The "Unbending" Paradigm for Geometric Deep Learning

https://github.com/Concode0/Versor
1•concode0•13m ago•1 comments

Show HN: HypothesisHub – An open API where AI agents collaborate on medical res

https://medresearch-ai.org/hypotheses-hub/
1•panossk•16m ago•0 comments

Big Tech vs. OpenClaw

https://www.jakequist.com/thoughts/big-tech-vs-openclaw/
1•headalgorithm•19m ago•0 comments

Anofox Forecast

https://anofox.com/docs/forecast/
1•marklit•19m ago•0 comments

Ask HN: How do you figure out where data lives across 100 microservices?

1•doodledood•19m ago•0 comments

Motus: A Unified Latent Action World Model

https://arxiv.org/abs/2512.13030
1•mnming•19m ago•0 comments

Rotten Tomatoes Desperately Claims 'Impossible' Rating for 'Melania' Is Real

https://www.thedailybeast.com/obsessed/rotten-tomatoes-desperately-claims-impossible-rating-for-m...
3•juujian•21m ago•2 comments

The protein denitrosylase SCoR2 regulates lipogenesis and fat storage [pdf]

https://www.science.org/doi/10.1126/scisignal.adv0660
1•thunderbong•23m ago•0 comments

Los Alamos Primer

https://blog.szczepan.org/blog/los-alamos-primer/
1•alkyon•25m ago•0 comments

NewASM Virtual Machine

https://github.com/bracesoftware/newasm
2•DEntisT_•27m ago•0 comments

Terminal-Bench 2.0 Leaderboard

https://www.tbench.ai/leaderboard/terminal-bench/2.0
2•tosh•28m ago•0 comments

I vibe coded a BBS bank with a real working ledger

https://mini-ledger.exe.xyz/
1•simonvc•28m ago•1 comments

The Path to Mojo 1.0

https://www.modular.com/blog/the-path-to-mojo-1-0
1•tosh•31m ago•0 comments

Show HN: I'm 75, building an OSS Virtual Protest Protocol for digital activism

https://github.com/voice-of-japan/Virtual-Protest-Protocol/blob/main/README.md
5•sakanakana00•34m ago•1 comments

Show HN: I built Divvy to split restaurant bills from a photo

https://divvyai.app/
3•pieterdy•36m ago•0 comments

Hot Reloading in Rust? Subsecond and Dioxus to the Rescue

https://codethoughts.io/posts/2026-02-07-rust-hot-reloading/
3•Tehnix•37m ago•1 comments

Skim – vibe review your PRs

https://github.com/Haizzz/skim
2•haizzz•38m ago•1 comments

Show HN: Open-source AI assistant for interview reasoning

https://github.com/evinjohnn/natively-cluely-ai-assistant
4•Nive11•39m ago•6 comments

Tech Edge: A Living Playbook for America's Technology Long Game

https://csis-website-prod.s3.amazonaws.com/s3fs-public/2026-01/260120_EST_Tech_Edge_0.pdf?Version...
2•hunglee2•42m ago•0 comments

Golden Cross vs. Death Cross: Crypto Trading Guide

https://chartscout.io/golden-cross-vs-death-cross-crypto-trading-guide
3•chartscout•45m ago•1 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
3•AlexeyBrin•48m ago•0 comments

What the longevity experts don't tell you

https://machielreyneke.com/blog/longevity-lessons/
2•machielrey•49m ago•1 comments

Monzo wrongly denied refunds to fraud and scam victims

https://www.theguardian.com/money/2026/feb/07/monzo-natwest-hsbc-refunds-fraud-scam-fos-ombudsman
3•tablets•54m ago•1 comments

They were drawn to Korea with dreams of K-pop stardom – but then let down

https://www.bbc.com/news/articles/cvgnq9rwyqno
2•breve•56m ago•0 comments

Show HN: AI-Powered Merchant Intelligence

https://nodee.co
1•jjkirsch•58m ago•0 comments
Open in hackernews

Celtic Code: Drawing knots with Python

https://2earth.github.io/website/20250202.html
82•HansardExpert•3mo ago

Comments

HansardExpert•3mo ago
A web app that uses Python to create Celtic knots and it's really fun!
xnx•2mo ago
Looks neat. Might be worth constraining the inputs. I got an error at 200x200:

  Uncaught PythonError: Traceback (most recent call last):
  File "<exec>", line 22, in resetKnot
  File "<exec>", line 473, in generateKnot
  File "/lib/python3.12/site-packages/PIL/Image.py", line 2941, in new
    return im._new(core.fill(mode, size, color))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MemoryError
2earth•2mo ago
200x200? You're crazy!

Also: yes, good idea

hodgehog11•2mo ago
I'm thinking this might have broader use than artistic appeal. From what I've heard, knot generation is a young but increasingly important topic in knot theory, since it can be used to generate data to train ML models on, and subsequently (hopefully) discover new algorithms for knot classification. See https://www.nature.com/articles/s41586-021-04086-x for example.
velcrovan•2mo ago
The linked article references George Bain’s book on Celtic knotwork construction methods, but his son Ian Bain actually found a much, much better method, and argues convincingly that this, not his father’s, was the method used by medieval Celtic illustrators. Ian’s method more easily produces consistent rope widths (when done by hand), and addresses the issue of how to soften these angular turns which ruin the rope effect and produce a robotic grid.

The book is out of print now but it looks like you can borrow it on archive.org: https://archive.org/details/celticknotwork0000bain/mode/2up

quag•2mo ago
Thank you! I’ll have to take a look.
gilleain•2mo ago
Interested in what Iain's method might be, but the method I like is:

1) Draw the 'skeleton' as a connected (simple?) graph in the plane

2) Place crosses at the midpoint of each edge

3) Connect the crosses with shortest (non-crossing!) connections (bit vague this, but is more obvious by hand)

4) Erase the crosses, and run over the line, assigning under/over as appropriate - you can also thicken at this step

This gives good free-standing knots, although may be more work for the dense knotwork in the OP's examples.

gilleain•2mo ago
Actually, this is described well in reverse here :

https://armory-rasa.tumblr.com/post/151872673763/drawing-wit...

mcphage•2mo ago
So I do agree with you that Iain Bain's methods is better than his father's, especially for us mere mortals. But George's method for consistent rope widths (step 1: draw them all the same width) did work better for me when I was getting a program to generate knotwork on grid of squares and rhombuses, where following Iain's method led to irregular rope widths because the angles changed.
iansteyn•2mo ago
I really like how the author walks us through the generation process step-by-step. It makes it seem possible for me to build stuff like this too!!
iansteyn•2mo ago
This post makes me wonder - does anyone else think there is a need for a term to more strongly differentiate between procedural generation (like this knot-drawing program) and genAI? I feel it really diminishes the impact of the work of programmer-artists nowadays to say they make “computer-generated” art. Or maybe we already have such a term?
jonahx•2mo ago
I instinctively agree there is an important difference.

If you try to define systematically what that difference is, though, it's not obvious. At the end of day, I think it's something like "degree of difficulty" or "amount of thought", which are vague concepts. Yet most would agree what the author here did requires more skill and thinking than typing "image of celtic knot" into Gemini.

marssaxman•2mo ago
I used to work on procedural graphics, and to me the clear difference is that all the training involved happened inside my brain. This author's article describes a similar process. He's not throwing a lot of existing examples into a black box, letting it learn their features, then driving it to emit new images with similar features: he is learning, himself, what those features are, inventing a process which fits those bounds, then automating it with code.
NoboruWataya•2mo ago
Is "procedural generation" not exactly that? I wouldn't think of genAI when I hear that term.
iansteyn•2mo ago
Yeah fair enough. I don’t think of genAI either when I hear “procedural generation” (or CGI - “Computer Generated Imagery” - for that matter). But the word “generate” has taken on new significance for the broader public now and I’m not sure that non-technical folks know the difference.
vlz•2mo ago
There is algorithmic art:

https://en.wikipedia.org/wiki/Algorithmic_art

> From one point of view, for a work of art to be considered algorithmic art, its creation must include a process based on an algorithm devised by the artist. An artist may also select parameters and interact as the composition is generated. Here, an algorithm is simply a detailed recipe for the design and possibly execution of an artwork […]

Creating art by AI certainly also uses an algorithm to some extent but it cannot be said to have devised that algorithm and arguably also not to clearly define all parameters to the algorithm.

OscarCunningham•2mo ago
Fans of Celtic knots might also like the daily game Celtix (https://www.andrewt.net/puzzles/celtix/) where the objective is to separate a Celtic knot into five coloured strands.
cyrusradfar•2mo ago
Dropping a thank you to the OP for sharing.

Really enjoyed how you traced your mental model through the journey of solving the problem.

foofoo12•2mo ago
Webapp doesn't work for me (current version Firefox):

  Uncaught TypeError: loading.showModal is not a function
    <anonymous> https://2earth.pyscriptapps.com/celtic-knot/  latest/:20
  latest:20:17
    <anonymous> https://2earth.pyscriptapps.com/celtic-knot/    latest/:20
and

  Uncaught (in promise) DOMException: IDBFactory.open: The operation is insecure
    <anonymous> index.js:65
    Xe index.js:63
    Ye sync.js:8
    engine pyodide.js:95
    get interpreters.js:36
    promise callback*get/< interpreters.js:34
    xn loader.js:66
    promise callback*xn loader.js:66
    Kn script-handler.js:91
    or custom.js:99
    define custom.js:266
    <anonymous> core.js:307
    promise callback\* core.js:182
core-Dwn9Kajy.js:1
2earth•2mo ago
Thanks, I'll look into it
taeric•2mo ago
If you are interested in this art style, Knuth shared that there is a very cool art display that includes Celtic Tours. https://www-cs-faculty.stanford.edu/~knuth/knights.html is his writeup on the art. If you are in the area, highly recommend getting to see it.
imba404•2mo ago
You should check out Knot dice, which is a fun tactile way to make one.

www.blackoakgames.com/collections/knot-dice