I have recently learned of the H-representation of polyhedra, which states that a polyhedron is the set of all solutions $\vec x$ of the following matrix inequality:
$$ \tag{1} A \vec x \leq \vec b $$
where matrix $A$ and vector $\vec b$ are different for each polyhedron. That is equivalent to solving the following system of equations: $$ \tag{2} \matrix{ a_{x1} x+a_{y1} y + a_{z1} z & \leq & b_1 \\ a_{x2} x+a_{y2} y + a_{z2} z & \leq & b_2 \\ a_{x3} x+a_{y3} y + a_{z3} z & \leq & b_3 \\ \vdots & \vdots & \\ a_{xn} x+a_{yn} y + a_{zn} z & \leq & b_n } $$
The solution set of eq. $(1)$ is the entire polyhedron, the solid. The surface and all of the inner points. But if you solve for the equation $A \vec x = \vec b$, then you get the points sitting at the faces, edges and vertices, the boundary of the polyhedron.
The solution to each inequality in eq.$(2)$ corresponds to a 3D half-space of the Euclidian space $\mathbb{R}^3$ whereas with the equations, the solution to each line is a 2D plane. The half-space is the set of all points in 3D that are on a particular side of this plane. These planes contain the faces of the polyhedron and are thus called its facets.
I very much did not know we could think about polyhedra like that. I have always struggled to find a suitable algebraic framework on which to work with polyhedra in a more formal way and I found working with vertices a bit cumbersome when you had that whole business of triangulating the faces, which I particularly found to be somewhat messy.
I didn't know anything about the H-representation up until a few days ago when I had to figure it out for applications related to my work. Right when I figured it out, I could see how edges could be obtained from the intersections between the facets, and vertices could be obtained as the intersection of those intersections. It seemed far too pretty and elegant to be a real thing, it felt like I had stumbled on some great theory of polyhedra, so of course I had to test that out myself.
I found out about Geogebra 3D and learned how to test this idea with it. Geogebra 3D draws planes and lines and points for you based on the equations you supply and then it obtains the intersection between surfaces and lines but not spaces, so I had to work only with the facets instead of the entire half-spaces.
Then I went to this website and got my hands on the $A$ matrix and the $\vec b$ vector for a platonic tetrahedron. This information can be used to obtain the equations for the planes at the facets that I had to supply Geogebra with. I then proceeded to plot the facets. As I said, Geogebra can obtain the lines of intersection between surfaces and the points of intersections between lines. So I proceeded to obtain the lines of intersections between the facets and the points of intersections between the lines. It became this glorious mess:
Which was awesome because then when I get the intersections between the lines, it turns out that I get the vertices of the tetrahedron, just as I thought I would have! And then I can simply assemble the faces by seeing which vertices are contained in the same facet and then connecting them such that they form a polygon and voilà. Habemus tetrahedron!
I was fascinated by how everything worked out so smoothily, so algorithmically. At no point during the process I had any doubts about what to do next in the process of going from matrices to polyhedron. It flowed very naturally.
Well, now that my first approach with the subject had been a success, I wanted to learn even more. I had worked with Geogebra by hand. I opened the software and clicked on things until eventually a tetrahedron emerged from a matrix expression. I don't know how Geogebra finds and draws these intersection lines and points and I want to learn it.
In fact, there are a number of things I don't know about the H-representation which I would very much like to know. For instance, do the $\vec b$ vector has anything to do with the translation or scaling of the polyhedron? I tried changing $\vec b$ for the tetrahedron to center the tetrahedron at the origin but I didn't manage to do it (right now one of its vertices is at the origin).
Is there a way to change $\vec b$ in order to systematically translate the polyhedron? What about rotating it? is there a relationship between the H-representation and the distance of the vertices to the center of the polyhedron? Can I easily calculate the geometric center of the polyhedron from the h-representation?
I was wondering if there are any references to the theory behind the H-representation that I can read and work on in order to become more proficient at it. Also, I would like a smoother computational tool to work with. Geogebra gets a bit flunky when you try plotting 12 facets for a dodecahedron =P. Is there software specifically designed to work with these representations? (or libraries of software to plot polyhedra that I can call from a python or julia application). I'm also interested in learning the methods for the computation of vertex positions and edge and face connectivities.
In summary, my questions is thus:
what are all the references and resources you think are important for working with the H-representation of convex polyhedra.

