A flexible 3D Spatial Reasoning library for iOS, macOS, and visionOS
The SRswift library supports the following operations of the Spatial Reasoner Syntax to specify a spatial inference pipeline.
- adjust: optional setup to adjust nearby, sector, and max deviation settings
- deduce: optional setup to specify relation categories to be deduced
- filter: filter objects by matching spatial attributes
- isa: filter objects that belong to a type in a class hierarchy (taxonomy)
- pick: pick objects along their spatial relations
- select: select objects having spatial relations with others
- sort: sort objects by metric attributes or by spatial relations
- slice: choose a subsection of spatial objects
- calc: calculate global variables in fact base
- map: calculate values of object attributes
- produce: create new spatial objects driven by their relations
- backtrace: output spatial objects of operation some steps back in pipeline
- reload: reload and output all spatial objects of fact base
- halt: stop processing the inference pipeline (for debug purposes)
- log: log the current status of the inference pipeline
See Docu on SpatialReasoner framework in separate repository.
Use XCode package manager to import the SRswift library using the link to this repository: https://github.com/metason/SRswift.
SRswift includes extensive test cases. They include some expect() conditions but also log(base 3D) pipeleine operations for visual approval. Some test cases (named *Vis) are "misused" to generate visualizations that are included in the documentation of SpatialReasoner.
Released under the Creative Commons CC0 License.
Philipp Ackermann, philipp@metason.net