Problem Modeling & Graph Mapping
To configure Spatioz, a problem must be modeled as a relational graph instead of a flow chart. This section outlines how to map real-world variables, sensors, actuators, and goals to Riemannian nodes.
1. Mapping Entities to Nodes
Every interactive entity (e.g. Robot Gripper, Obstacle, Target, Limit Switch) is designated as a node.
| Node Type | Function | Value Range |
|---|---|---|
| Sensor Node | Feeds external metrics, normalized to valence | $[-1.0, 1.0]$ or $[0.0, 1.0]$ |
| Logical Node | Represents intermediate virtual concepts (e.g., "Safe Zone") | $[-1.0, 1.0]$ |
| Actuator Node | Directly commands physical motors or controls | (Arbitrary, scaled from output field) |
| Anchor Node | A fixed point in the graph representing the target outcome | Fixed constraint |
2. Graph Connectivity in YAML
The relationships are declared in YAML. Instead of programming behaviors, you declare connections and weights. The engine propagates forces through these connections.
nodes:
# format: [bias, scale, [[input_node, weight]], activator]
target_attraction: [0.0, 1.0, [['target_dist', -1.0]], 'sigmoid']
obstacle_repulsion: [0.2, -1.2, [['obstacle_dist', -2.0]], 'gaussian']
joint_safety: [0.0, 1.0, [['joint_angle_limit', -1.5]], 'tanh']
relations:
# Attaching actuators to logical results
servo_1: [['target_attraction', 0.8], ['obstacle_repulsion', 0.5]]
servo_2: [['target_attraction', -0.3], ['joint_safety', 1.0]]
3. End-Point Anchoring (Embodiment Strategy)
In typical robotics, inverse kinematics are computed via Jacobian matrices:
$$\Delta \theta = J^{-1} \Delta x$$
This is computationally expensive and prone to singular matrices. In Spatioz, we anchor the End-Point (e.g., target location of the gripper) to the goal in the non-Euclidean space. The intervening segments (servo links) are free to optimize their own local tension to reach homeostasis.
graph LR
Base[Base Mount] === Joint1(Joint 1: Free Homeostasis)
Joint1 === Joint2(Joint 2: Free Homeostasis)
Joint2 === Gripper((Gripper: Locked Anchor))
Gripper -.-> Goal((Goal Target))
This decentralized optimization allows the physical body to resolve its configuration asynchronously and safely without solving global matrix equations.