3. Problem Modeling & Graph Mapping

menu_book Spatioz Engine — Technical Reference

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.