Importance of Topology
Photo by Pușcaș Adryan from Pexels
It took me quite a while to really start understanding what Topology was all about? Having spent considerable time reading different articles and books, I have started to understand and appreciate topology now. I realize it's a very important concept that can be applied to many a problems in the AEC.
So, what is topology?
According to Wikipedia - it's the branch of mathematics concerned with the properties of a geometric object that are preserved under continuous deformations, such as stretching, twisting, crumpling and bending, ie., without closing holes, opening holes, tearing, gluing, or passing itself through.
In simpler terms, topology studies the properties that survive these deformations - topology deals with things like the number of holes, adjacency, containment, connectivity and shared boundary.
This is why according to topology, a sphere and a cube is same, so is a donut and a coffee mug. gif by Lucas Vieira via Wikimedia Commons (public domain)
When you look at topology wrt geometry, topology is more fundamental than geometry. Geometry can be considered as something that adds metric structure (distances, angles, areas) on top of topology. So, one can imagine topology as a version of geometry stripped of all measurements.
For ex, while geometry defines closeness or nearness between 2 objects as a measure of distance, topology doesn't care about distances at all. It only cares about whether things are connected or not, and things like what kind of holes exist.
In the context of AEC, topology can be represented as a graph, where different entities form nodes and the connectedness or the relationship between them as edges. I've used this concept to cluster point cloud data and segment different entities that form structural entities such as beams, cols, ....
Another concept that is helpful in the context of AEC is how topology can help with finding relationships between different entities, like adjacency, containment, shared boundaries, and such. I've used this concepts in various 2d and 3d workflows, to understand spatial predicates such as intersects, touches, within, contains. Here, the data is geometric, while the relationship queries are topological.
To name a few, libraries such as opencascade, shapely, topologicpy can help with 2d/3d workflows involving both geometric as well as topological, while libraries such as gudhi, kmapper can help with topological workflows in point cloud data.
I'm still deep in these experiments and will be sharing more as things come together.