Followup to: Restoring the structure, Fragments of structure.
To perform a single structure restoration step, we only need a local structural context of the current scene graph. Thus, if we have the current scene represented in form of maps, together with collection of known scenes, we only need to reassemble local area around this context. The scene never needs to be assembled as a whole. After all applicable maps are applied to the structural context, it can be disassembled again (note that reflecting the changes requires reconstructing a subgraph slightly bigger than a single structural context, to cover it with multiple structural contexts, capturing the structure in maps from different centers). On completion, this operation makes a change to the set of salient maps corresponding to the structural context: some maps are replaced by other (maybe completely new) maps due to significant changes in the context, some non-salient maps become salient.
When scene grows through application of known maps, each new element creates potential for further growth. If scene is nearly complete, with almost nothing to add, a single structural context that accepts new maps can create a seed for an additional big object to be integrated in the scene, requiring many subsequent restoration steps, even inserting elements into existing structural contexts from outside, making them change where they didn’t before. Local changes follow from each other, unstable areas of scene graph generate further instability.
If subgraphs are only reconstructed to make changes, and changes generate further changes, this establishes a certain pattern for reconstruction of subgraphs. Once an area of the scene is reconstructed and changes are made, it creates a potential for further changes applied to the same area, or its immediate extension. Reconstructed area of the scene grows with the changes, in the direction of the changes, and gets disassembled where changes stop.
Overall, this process of restoring local graph structure, following the changes and disassembling the structure once it becomes stable, has a form of a wavefront. All the activity during structure restoration happens within these waves of local structure, plowing incomplete areas of the scene, leaving the healed structure behind. Structure wave is a subgraph formed from salient maps, that is directed by the rest of the maps. When wave starts to retrace only maps that are already salient, area of the scene is complete and the wave goes out.
Structure waves can also be seen as navigating the set of maps. Wave forms from few salient maps, and propagates to the other maps matching the context. At each step, wave chooses the most relevant maps to focus on, preferring salient maps and maps better matching the context. Salient maps have the highest priority, which allows them to define the initial form of the wave, with non-salient maps following the context they create. Still, salient maps can only be accepted if they sufficiently match the context. At the extremes of the threshold for acceptance of maps, structure waves can fail to even retrace the current scene, or they can jam together most of the known elements.
This perspective allows to further unify the process of wave propagation. Instead of drawing a clear distinction between salient and non-salient maps, some maps can be marked as more salient, with gradation of salience. As structure wave develops, it accepts new maps based on how well they match the context, but in a way heavily biased by salience of these maps. Structure waves spontaneously start growing from random salient maps, and maps accepted by structure waves get marked as more salient. Initiating waves this way also allows to keep them small, independently retracing the features of the current scene, weaving in the threads of previous knowledge.