\

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

55 points - today at 8:25 AM


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.

Source
  • sowow

    today 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

    • herpdyderp

      today 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.

      • felooboolooomba

        today 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"

          • galaxy_quest

            today at 12:20 PM

            You have to load the extension, the instructions are in the text above the button.

              • today at 3:18 PM

        • hbwang2076

          today 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.

            • james_marks

              today at 3:57 PM

              As 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.

          • dmos62

            today at 10:25 AM

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

              • sowow

                today at 12:36 PM

                Not OP, but for me personally I’m tired of subscriptions. I’m grabbing the one time payment before OP changes his mind.

                • nivter

                  today at 3:05 PM

                  Not 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.

              • roger_

                today at 12:43 PM

                Cool idea but not very mobile friendly it seems.

                • ddxv

                  today at 8:25 AM

                  What is autodiff?

                    • nivter

                      today at 8:29 AM

                      Automatic differentiation. For any DAG with a scalar output, it allows calculating its partial derivative wrt the input parameters.

                        • Rexxar

                          today at 3:48 PM

                          I don't understand what the use automatic differentiation for in this context.

                  • dsecurity49

                    today at 9:47 AM

                    [dead]

                    • embirdating

                      today at 10:02 AM

                      [dead]

                      • Armonsrer

                        today at 10:17 AM

                        [dead]