logoalt Hacker News

Show HN: Geomatic – a command-driven geometry studio enabled with autodiff

54 pointsby nivtertoday at 8:25 AM13 commentsview on HN

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.


Comments

sowowtoday at 9:02 AM

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

herpdyderptoday at 3:54 PM

- When I have an example open, I can't type any commands.

- When I open an example, I expected to actually... see an example. I'm not gonna read the wall of text. I don't even understand what this is yet, that's why I tried to see an example.

felooboolooombatoday at 9:37 AM

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"

show 1 reply
hbwang2076today at 9:56 AM

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.

show 1 reply
dmos62today at 10:25 AM

Pretty cool. Curious, why a one time payment? Why not, say, a smaller monthly payment?

show 2 replies
roger_today at 12:43 PM

Cool idea but not very mobile friendly it seems.

ddxvtoday at 8:25 AM

What is autodiff?

show 1 reply
dsecurity49today at 9:47 AM

[dead]

embirdatingtoday at 10:02 AM

[dead]

Armonsrertoday at 10:17 AM

[dead]