_______               __                   _______
       |   |   |.---.-..----.|  |--..-----..----. |    |  |.-----..--.--.--..-----.
       |       ||  _  ||  __||    < |  -__||   _| |       ||  -__||  |  |  ||__ --|
       |___|___||___._||____||__|__||_____||__|   |__|____||_____||________||_____|
                                                             on Gopher (inofficial)
   URI Visit Hacker News on the Web
       
       
       COMMENT PAGE FOR:
   URI   Planes in 3D Space
       
       
        keithalewis wrote 21 hours 11 min ago:
         [1] would like to have a word with you. [2] was so impressed he wrote
        a book to explain it.
        It is much easier to just read and try to understand what smarter
        people than us spent their precious time on earth figuring out.
        Newton was on to something about standing on shoulders of giants.An
        option available to anyone.
        
   URI  [1]: https://en.m.wikipedia.org/wiki/Hermann_Grassmann
   URI  [2]: https://en.m.wikipedia.org/wiki/Giuseppe_Peano
       
        danielvaughn wrote 1 day ago:
        Those graphics are beautiful.
       
        dargscisyhp wrote 1 day ago:
        Great article, would love to know what you're using to create these
        diagrams!
       
          alexharri wrote 22 hours 50 min ago:
          They're created with ThreeJS and react-three-fiber. My website is
          open source, you can find all of the 3D scenes here:
          
   URI    [1]: https://github.com/alexharri/website/tree/master/src/threejs...
       
            pixelpoet wrote 17 hours 17 min ago:
            Nice work, one thing (which you'll see everywhere once you've fixed
            it yourself) though: in TeX you want to escape functions like cos,
            i.e. use "\cos" not "cos", which will get rendered as a product of
            3 variables c, o and s.
       
              alexharri wrote 10 hours 3 min ago:
              Just pushed a fix changing "cos" to "\cos", looks much better.
              Thank you!
       
          sleepingreset wrote 1 day ago:
          same!
       
        BenoitP wrote 1 day ago:
        What a wonderfully crafted piece. But a part of me can't refrain from
        saying it would have looked way more elegant and succinct in 3D
        Projective Geometric Algebra.
        
        Most of the last sections (all intersections) feel like corner cases,
        when in PGA they are one and the same.
       
          at_compile_time wrote 21 hours 52 min ago:
          Yup. Geometric algebra has one equation for each of: projection,
          rejection, join (e.g., two points into a line), and meet (e.g., two
          planes interacting at a line). The algebraic expression is the same
          regardless of the elements you're working with or the space you're
          working in.
          
          You get transformations too, as easy as M=b/a, where M can be applied
          to any element in the algebra by taking the square root and applying
          double-sided multiplication such that b = √M a ~√M, where tilde
          represents the reverse. These transformations are isomorphic to
          complex numbers, quaternions, and hypercomplex numbers, and
          understanding them makes other explanations of these concepts feel
          inadequate and woefully un-geometric.
          
          Add in logarithms and the exponential map for these transformations
          and we can perform linear interpolation between states and
          parametrize transformations.
          
          I'm just a motivated amateur and I can do all of these things. The
          vector algebra I learned in engineering is useful, and it's often all
          I need for simple 3-dimensional problems, but it's just shy of
          something far more powerful and far more general.
       
          sebastos wrote 1 day ago:
          For those interested, this appears to be a really  high quality
          library that provides a 3D PGA C++ API: [1] I've always wanted to
          find an excuse to rebuild some projects at work around this.
          
   URI    [1]: https://github.com/jeremyong/klein
       
          ngruhn wrote 1 day ago:
          I keep hearing this and I'm very interested. But most recommended
          resources I've seen so far are more targeted at Physicists. Any good
          text book for CS people?
          
          Edit: nevermind, read in other comments that [1] has a ton of
          resources.
          
   URI    [1]: https://bivector.net/
       
        greenbit wrote 1 day ago:
        "A plane in 3D space can be thought of as a flat surface that stretches
        infinitely far, splitting space into two halves."
        
        Fun fact - if you have the coefficients of the equation ax+by+cz+d=0
        that represents your plane, you can plug any point (x,y,z) into the
        expression ax+by+cz+d, and the result will be positive in one
        half-space, and negative in the other. I think if you divide the values
        by sqrt(a^2+b^2+c^2), you end up with the distance from the point to
        the plane. Easy enough to see which half-space is which by plugging in
        the origin. I.e., if 'd' is positive, the origin is in the positive
        half.
       
        phkahler wrote 1 day ago:
        Fun fact. Take 4 points representing the vertices of a tetrahedron. Put
        them in a 4x4 matrix, using 1 as the 4th element then invert the
        matrix. The 4 row vectors of the result will be the coefficients for
        the plane equations of the faces of the tetrahedron.
        
        They'll be scaled such that the point not on a plane will evaluate to 1
        when plugged into the equation. You can see this easily because
        multiplying the planes matrix by the points matrix is just plugging
        each of the 4 points into each of the 4 plane equations, and you get
        the identity matrix by definition.
       
          thechao wrote 1 day ago:
          > They'll be scaled such that the point not on a plane will evaluate
          to 1 when plugged into the equation.
          
          Evaluating a plane equation with a point will give a signed distance
          from the point to the plane. However, unless the equation is
          normalized, the distance could be scaled in unusual ways that are
          less than useful. I think a better way to say this is that a point
          who's shortest straight line distance to the line is 1 will evaluate
          to 1, after taking the absolute value.
          
          The LRBni ISA had a whole set of instructions designed to take
          advantage of signed distance fields defined in both plane equation &
          barycentric forms. (That's what the bit mask for the lanes was for,
          in part.)
       
            a1369209993 wrote 21 hours 30 min ago:
            > However, unless the equation is normalized, the distance could be
            scaled in unusual ways that are less than useful.
            
            > > []the[] point not on a plane will evaluate to 1
            
            They mean the vertex (of the tetrahedron). The signed distance
            function is scaled such that the (single remaining) vertex that
            isn't at distance 0 (by construction) will instead be at distance
            1. So the distance is always scaled in a unique well-defined way
            (assuming not all four points are coplanar). Whether that way of
            scaling is useful depends on your use case, of course.
       
          nbcomplete wrote 1 day ago:
          Due to lack of familiarity, I did not understand this description.  I
          asked ChatGPT to clarify.  In case it helps anyone else, I pasted its
          response below.  I asked if this technique had a name, and it just
          made something up, so if you know what it's called please share. 
          Feel free correct any mistakes.  Here it is:
          
          This statement explains a mathematical relationship between the
          vertices of a tetrahedron and the plane equations of its faces using
          linear algebra.
          
          To break it down:
          
          1. *Tetrahedron and Matrix Representation*: Consider a tetrahedron
          with four vertices. These vertices are represented as points in
          space. Each point can be described using three coordinates (x, y, z).
          These points are arranged in a 4x4 matrix, where each row represents
          one point, and the fourth element of each row is set to 1.
          
          2. *Matrix Inversion*: This matrix is then inverted. Matrix inversion
          is a mathematical operation that finds the "inverse" of a matrix,
          which when multiplied by the original matrix, results in the identity
          matrix.
          
          3. *Plane Equations*: The resulting inverted matrix will have four
          row vectors. These row vectors represent the coefficients of the
          plane equations of the faces of the tetrahedron. In other words, each
          row vector corresponds to a plane equation that defines one face of
          the tetrahedron.
          
          4. *Scaling*: The coefficients are scaled such that when a point not
          lying on a particular face is plugged into the corresponding plane
          equation, it evaluates to 1. This scaling ensures that the point lies
          outside the plane.
          
          5. *Multiplication*: Multiplying the inverted matrix (representing
          the plane equations) by the original matrix (representing the
          vertices) essentially plugs each vertex into each plane equation. The
          result should be the identity matrix, indicating that each point
          satisfies exactly one plane equation, which is consistent with the
          definition of a tetrahedron.
          
          In essence, this process uses linear algebra to relate the geometry
          of a tetrahedron to the equations of its faces, providing a
          systematic way to compute the equations of the planes that make up
          the tetrahedron's faces.
       
            radarsat1 wrote 1 day ago:
            Even though it's well intended, I feel like pasting in responses
            from ChatGPT should be against HN guidelines, if it's not yet.
            Reason is, if I want that type of explanation, I can go and get it
            myself. I come here for people's personal comments, not to read
            them regurgitate what they had an LLM generate. And I use ChatGPT
            all the time so don't get me wrong, I just think it doesn't add a
            lot to the discussion here and takes up a lot of room.
       
              robswc wrote 19 hours 56 min ago:
              I agree on principal and instinct... but then I realize how often
              people add quotes from Wikipedia or 1st or 2nd results from a
              google search.
              
              Maybe most of the bad vibe comes from the "wall of text" and
              "tone" ChatGPT outputs.
       
                radarsat1 wrote 15 min ago:
                Agreed.
       
              Terr_ wrote 1 day ago:
              I'm torn on this, because I don't want to have LLM stuff gunking
              everything up either, but I think there's a general case to be
              made for comments like: "For anyone who is confused about X like
              I was, I found this explanation."
              
              In other words, how would one exclude LLM regurgitation but
              permit Wikipedia quotes?
       
                amelius wrote 23 hours 9 min ago:
                Ask the LLM to cite a source, then use that.
       
        jsenn wrote 1 day ago:
        Another useful representation is as a point in spherical coordinates.
        The polar+azimuth angles encode the normal, and the radius encodes the
        distance from the origin.
        
        This is handy because it puts similar planes nearby in space. For
        example, it allows you to efficiently cluster objects by coplanarity
        using a spatial index.
       
          zodiac wrote 1 day ago:
          Interesting, in this representation a plane is represented by the
          point on it closest to the origin, right?
       
            jsenn wrote 1 day ago:
            Yes, that's a good way of thinking about it.
       
        11001100 wrote 1 day ago:
        there is a great project using multiple planes in 3D space:
        
   URI  [1]: https://cybernetic.dev/cube
       
        gary_0 wrote 1 day ago:
        I was recently algebra-ing down a complex 3D algorithm to speed it up,
        and it seemed peculiar how so many things can be boiled down into to a
        crap-ton of dot products. One of the recurring mathematical themes of
        the universe, I guess.
       
        ReleaseCandidat wrote 1 day ago:
        There is an error in the line's description, any normal of a line is
        perpendicular to the line itself (all through a point of the line are
        contained in a plane perpendicular to the line, with two special ones,
        the principal normal and the binormal, as with every curve) and does
        not point "in the direction of the line".
        
        A remark: a plane has two (different) unit length normals, which point
        in exactly opposite directions (one can be obtained by multiplying the
        other by -1). This determines the positive and negative half-spaces in
        which each plane splits the 3 dimensional space - the positive and
        negative direction, which appears for example in the distance
        calculation on the site.
       
        makerdiety wrote 1 day ago:
        > Learning about planes felt abstract and non-intuitive to me. “Sure,
        that's a plane equation, but what do I do with it? What does a plane
        look like?” It took some time for me to build an intuition for how to
        reason about and work with them.
        
        Imagine how far human society can go if people dumped the desire for
        intuition that appeals to anthropocentric sensibilities.
        
        But I guess that's forbidden dark arts and wasting time with trivial
        pursuits and stuff is the culture to adopt while you're in the modern
        day Rome equivalent.
        
        y = mx + b is enough for me.
       
          harshaxnim wrote 1 day ago:
          Anthropomorphic intuition has its advantages - it cuts down the ideas
          search space with its learnt heuristics. We are intuitive beings, and
          system 2 thinking is very deliberate and not so natural to us.
          Secondly, it might often be intractable to process things with sys2
          thinking. That said, I don’t think anthropomorphic intuition is
          necessarily static; I can learn new intuitive skills with enough
          practice - for example, a person grown in a tribe with very
          rudimentary speech cannot intuit how to communicate even mildly
          non-simple ideas, but I can do half a decent job very intuitively.
          
          And finally I think even if you don’t care for intuition, it cares
          for you. I mean, if you play with y=mx+c long enough, you’ll gain
          an intuition, intuitively. So, with these devices (like visualisers
          etc.), we’re essentially trying to gain an intuitive understanding
          deliberately, which I see nothing wrong with. It’s just meta
          intuition.
       
            makerdiety wrote 1 day ago:
            A preference for level two is what got us a general theory of
            relativity and, subsequently, working global positioning satellite
            technology. Having a cognitive bias toward visual presentations of
            planes in 3D and higher space leads to techno-scientific
            stagnation.
       
              cityofdelusion wrote 1 day ago:
              Intuition is just a starting point — and one that changes with
              experience gained. Two students can start to learn piano either
              “intuitively” or mathematically and both end up at the same
              level of skill 30 years later. There isn’t some linear path of
              progression based off where you start — that’s what’s
              amazing about the human brain, it’s incredibly parallel and
              mesh based.
       
                makerdiety wrote 1 day ago:
                The problem is that learning to play the piano isn't
                innovative. (So, technically, a monkey could eventually do it.)
                Because innovation is stifled by intuition. Particularly
                intuition meant to serve human ends.
                
                It's a simple equation: take away intuition and you're left
                with revolutions in technology and science.
       
              sqeaky wrote 1 day ago:
              I think you have this exactly backwards. Einstein applied his
              intuition to find gaps in special relativity. He had built an
              intuition for how light works and asked what happened in corner
              cases so he could rapidly understand the boundaries of. Then
              after finding those cases busted out the math to create a
              rigorous solution.
              
              Source: [1] "Level two" ? As if there is a single best way to
              think and we should all climb towards it? There are advantages
              and disadvantages to every approach. Find what works in a domain
              and keep experimenting.
              
   URI        [1]: https://www.britannica.com/story/how-albert-einstein-dev...
       
                adrian_b wrote 1 day ago:
                The general relativity theory was not about gaps or corner
                cases of special relativity. It was about extending the theory
                outside its domain of applicability.
                
                The theory of special relativity showed how to transform the
                physical quantities between inertial reference systems, i.e.
                systems where Newton's law of inertia is true. The relative
                velocity between the origins of such systems must be constant
                and there must be no relative rotational movement between them.
                
                The theory of special relativity was not applicable to
                non-inertial reference systems, like one that has an
                accelerated motion relative to an inertial system.
                
                Einstein's quest has been to find the transformation relations
                for this more general case. Together with the theory of the
                stimulated emission of radiation (1917), this has been the most
                original part of Einstein's work, because the previous
                transformations of the special relativity had been discovered
                before Einstein, he had just given a new explanation for them.
                
                The only intuition related to general relativity was the
                guiding principle that whatever transformations will be found
                they must lead to indistinguishable local behavior of the
                forces of gravity vs. the forces of inertia.
       
                makerdiety wrote 1 day ago:
                Karl Marx said something along the lines of "Each man does a
                job according to his abilities." Something like that.
                
                I take it, then, this modern society and civilization wants to
                specialize in low level technician style work and wait for
                aliens or angels to come and do the hard work of inventing
                faster than light travel? You know, intuition is the best
                scientists and engineers can do and all.
       
                  xanderlewis wrote 1 day ago:
                  "From each according to his ability, to each according to his
                  needs"
       
        mwexler wrote 1 day ago:
        Just to get it out of the way, I assumed just from the title that this
        was about airplanes in 3d space and was excited to see what I was
        missing, as I thought they all flew in a 3 dimensional context.
        
        I know I'm not the only one...
       
          ReleaseCandidat wrote 1 day ago:
          There are woodworking planes too, with which the title makes more
          sense.
       
        memco wrote 1 day ago:
        Are bivectors a 4th way to express planes in 3D space or is that what
        the 3rd method the article describes is. I didn’t see them mentioned
        anywhere in the article. I only have a cursory knowledge of their
        existence and use so not totally sure how they fit, but I feel like
        they should.
       
          tsuru wrote 1 day ago:
          If you use 3D Plane-based Geometric Algebra ( [1] ) planes are vector
          elements and bivectors could be the line intersection of two planes.
          I'm grossly simplifying here, see link for more info on this
          interpretation. There are more algebras that have other
          interpretations of bivectors.
          
   URI    [1]: https://bivector.net
       
        shiandow wrote 1 day ago:
        Shame this doesn't include my favorite description, a 4d vector in
        projective affine coordinates.
        
        Instead of a normal and point or constant you get (x,y,z,1) . P = 0.
        The translation between the two is trivial. If you want a plane spanned
        by 3 points you just can use the generalized cross product to find P.
        
        One advantage is that you can avoid all the special cases with 3
        intersecting planes. There exists exactly 1 point that is on all 3
        planes, but as this is in projective coordinates it might lie at
        infinity.
       
          alexharri wrote 1 day ago:
          I haven't heard of this before, I'd be interested in learning more
          about how this is useful. Do you know of a good resource to read more
          about this?
       
            shiandow wrote 1 day ago:
            I honestly don't know, I encountered the concept during my study,
            but it took lots of practice to get comfortable with it. Most
            articles I encounter are too practical to really foster
            understanding, or too technical to work as an introduction.
            
            You can start with a description of how projective matrices work
            (and how translation and rotation are related to it). After that,
            best tips I can give are start with 2D until you can't bear to see
            another cross product. Then get familiar with Cramer's rule and
            higher dimensions. You'll need sone fluency in linear algebra.
            
            My first practical use of the concept was to rectify photographs
            where e.g. a building was not quite upright. That might be a good
            starting point.
       
              alexharri wrote 1 day ago:
              Thanks a lot, will use this as a starting point
       
          boppo1 wrote 1 day ago:
          Do you have any good resources for developing an intuition about the
          projective plane?
       
        randv wrote 1 day ago:
        super cool...thanks
       
       
   DIR <- back to front page