Products start their life as ’Forms’: aspatial, atemporal, perfect precursors that manifest in different ways depending on the context.
Aspatial
A Form is a purely topological entity, it doesn’t have a location, size, dimension or any other geometric quality. Forms can be visualised by embedding them into a geometry, but the visualisation is always an imperfect reflection of the pure Form. The actual form can be only known, not seen.
The Form of a triangle has exactly 3 corners, which each connect to exactly two other corners with the shortest possible path. In the above image, one Euclidean (left) and one hyperbolic (right) embedding look different, but the Form is identical in both.
Two different embeddings of an octahedron, different geometry, but an identical Form.
Atemporal
All Forms already exist and have always existed. A Form is unchanging, there is no temporal component.
The complete set of Forms can be expressed as a states graph where each node is a Form and each edge an Euler operator. Every Form connects to a neighbouring Form with a single operator. In the general case, the graph is infinite, but Artificial Designer has some practical limits set by the atomic construction kit elements and human anatomy, which makes the graph finite. This allows the creation and examination of a complete design space that contains all possible garments.
The states graph exhibits causal invariance: the same Form can be arrived at with different set of operations. Visualised above with a string substitution system, the diagram on the left is without isomorphism detection and thus has some duplicate items, and with edges only in going in one direction. The graph on the right with causal invariance and each state only appearing once.
Perfect
A single perfect Form can have an infinite number of imperfect instantiations in the physical world. Similarily to the idea of a perfect circle: the idea of a circle is an exact, singular thing, which can be created in multitude of ways for example as a drawing or sculpture, but the expression will always have some flaws. The manifested instances can be closer or farther away from the ideal, but there are no better or worse versions of the idea itself.
Form -> instance
An instance of a a Form is infuenced by the specific context where it manifests. In the simplest example, a garment is considered to be the same even if it is made in different size. But the same applies also to poses and more complicated variables, that could be traditionally seen as different products. An articulated sleeve is different than a straight sleeve, but the difference is completely attributed to the context, not to a different Form.
When a Form is instantiated, it is first embedded with a random geometry. Then a context free initial shape is created by minimising graph theoretic distances between all node pairs (red). This version is roughly placed in the context (typically a human body or lower layer garment), with principal component analysis (blue) and finally stretched to match the environment (orange) in order for collision detection to register it.
The placement is finalised by clearing all colliding or overlapping parts, which moves the Form strictly outside of the environment.
Collision detection is sped up with axis aligned bounding box (aabb) trees. A hierarchical bounding volume trees are first checked for collisions to narrow down the any candidates for triangle-triangle intersection. The tree is constructed bottom-up, by first defining bounding volumes for each individual triangle, and merging adjacent leafs upwards until a root is reached.