Show HN: Geomatic – a command-driven geometry studio enabled with autodiff
33 points by nivter 5 hours ago | 9 comments
All commands have the format `output = \func inputs` or just `\function inputs`. Points and scalars are built on the fly. Eg `\line a b` to an empty canvas creates points `a` and `b`, and joins them with a line.

One can use broadcasting semantics similar to NumPy and PyTorch in a visual setting (imagine creating a list of circles where one dim corresponds to radius and another to the center). One can also use backpropagation, run gradient descent or visualize vector fields. Almost everything is reactive so changing a variable updates all of the downstream geometry. It also allows anyone to write and load their own visualization, which can be broadcasted and differentiated through.


roger_ 10 minutes ago
Cool idea but not very mobile friendly it seems.
reply
sowow 4 hours ago
I liked this one, but it took me a while to understand, I think this page is a much better intro: https://www.tinyvolt.com/geomatic/examples/getting-started
reply
felooboolooomba 4 hours ago
Bug: https://www.tinyvolt.com/geomatic/examples/broadcasting-in-g... Click "Draw a single n-star" Results in a message popping up "unknown command: n-star"
reply
galaxy_quest 34 minutes ago
You have to load the extension, the instructions are in the text above the button.
reply
hbwang2076 3 hours ago
Clean implementation. One thing I always look for: how does this degrade when things go wrong? Good error handling is what separates weekend projects from tools people actually use.
reply
dmos62 3 hours ago
Pretty cool. Curious, why a one time payment? Why not, say, a smaller monthly payment?
reply
sowow 18 minutes ago
Not OP, but for me personally I’m tired of subscriptions. I’m grabbing the one time payment before OP changes his mind.
reply
ddxv 5 hours ago
What is autodiff?
reply
nivter 5 hours ago
Automatic differentiation. For any DAG with a scalar output, it allows calculating its partial derivative wrt the input parameters.
reply
dsecurity49 4 hours ago
[dead]
reply
embirdating 3 hours ago
[dead]
reply
Armonsrer 3 hours ago
[dead]
reply