4 ms·
Show HN: Geomatic – A command-driven geometry studio enabled with autodiff
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.
https://www.tinyvolt.com/geomatic/examples/getting-started https://www.tinyvolt.com/geomatic/examples/getting-started
- roger_ 4mo agoCool idea but not very mobile friendly it seems.
- ddxv 4mo agoWhat is autodiff?
- nivter 4mo agoAutomatic differentiation. For any DAG with a scalar output, it allows calculating its partial derivative wrt the input parameters.
- sowow 4mo agoI 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 https://www.tinyvolt.com/geomatic/examples/getting-started
- dang 4mo agoWe've added that link to the toptext too. Thanks!
- felooboolooomba 4mo agoBug: https://www.tinyvolt.com/geomatic/examples/broadcasting-in-geometry 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"
- galaxy_quest 4mo agoYou have to load the extension, the instructions are in the text above the button.
- deleted 4mo ago[deleted]
- dsecurity49 4mo ago[dead]
- hbwang2076 4mo ago[flagged]
- james_marks 4mo agoAs an adult, I now write clean error handling first thing. The person it benefits the most is the author, when they are building it and the errors-per-use are as high as they’ll (hopefully) ever be.
- embirdating 4mo ago[dead]
- Armonsrer 4mo ago[dead]
- dmos62 4mo agoPretty cool. Curious, why a one time payment? Why not, say, a smaller monthly payment?
- sowow 4mo agoNot OP, but for me personally I’m tired of subscriptions. I’m grabbing the one time payment before OP changes his mind.
- hiyokoko 4mo ago[dead]
- nivter 4mo agoNot a fan of subscription hell myself, I plan to use one-time payment for all my products. Implementation wise one time payment is much simpler than setting up smaller payments that cap at a fixed amount.
- herpdyderp 4mo ago- 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.
- necovek 4mo agoThe example was great for someone like me: I'd rather read through and follow excellent instructions by clicking through commands to understand the value of this command-driven tool. If you want to look through a video or something, then this tool is likely not for you! (nothing bad with that, that's why it's great that there are so many different tools we can choose from)
- candizdar 4mo ago[flagged]
- permute 4mo agoIt’s fun to play around with this! It could be helpful to add support for parentheses and chaining of commands. For example: \add (\area-circle circ0) (\area-circle circ1). Intermediate nodes could be anonymous or automatically named.