GridLookout Cell Config
GridLookout is the cross-platform UI contract for Perceptive Apps.
A Cell is a native rendering surface bound to a Pulse, a Signal-producing action, a receptor IC, and optional subscriptions.
{
"cellId": "username_input",
"pulsePhrase": "username",
"receptor": {
"cpuxId": "CPUX_login",
"icId": "IC_validate_login",
"actionIntentionId": "I_validate_login"
},
"interaction": {
"kind": "text-input",
"perceptionMode": "act"
},
"subscribe": [
{
"icId": "IC_validate_login",
"intentionId": "I_reflect_login_result",
"pulsePhrase": "credentials valid"
}
]
}
Platform-Neutral Core
The core should remain platform-neutral:
cellIdpulsePhrasereceptorinteractionsubscribe
ReactJS, Android, iOS, Flutter, desktop, and embedded renderers can map these fields into native widgets.
Receptor
The receptor tells the Cell where to send the human action:
"receptor": {
"cpuxId": "CPUX_login",
"icId": "IC_validate_login",
"actionIntentionId": "I_validate_login"
}
The Cell does not decide hidden business logic. It constructs and sends a Signal to the declared receptor.
Interaction
Interaction describes the native UI behaviour:
"interaction": {
"kind": "text-input",
"perceptionMode": "act"
}
Possible kinds may include:
text-input
button
toggle
picker
slider
grid-cell
canvas-region
sensor-surface
The exact rendering is platform-specific.
Subscription
Subscriptions define how the Cell receives reflected updates:
"subscribe": [
{
"icId": "IC_validate_login",
"intentionId": "I_reflect_login_result",
"pulsePhrase": "credentials valid"
}
]
This supports three-level filtering:
IC id -> Intention id -> Pulse phrase
Sample Anchor: Green Light Cell
The same pattern can drive a simple Green Light sample:
{
"cellId": "light_control",
"pulsePhrase": "current light",
"receptor": {
"cpuxId": "CPUX_green_light",
"icId": "IC_move_if_allowed",
"actionIntentionId": "I_move_if_allowed"
},
"interaction": {
"kind": "toggle",
"perceptionMode": "act"
},
"subscribe": [
{
"icId": "IC_move_if_allowed",
"intentionId": "I_reflect_movement_state",
"pulsePhrase": "movement allowed"
},
{
"icId": "IC_move_if_allowed",
"intentionId": "I_reflect_movement_state",
"pulsePhrase": "current position"
}
]
}
In React this may render as a toggle and a small board.
In Android it may render as native Material controls.
In iOS, Flutter, or another renderer it should still preserve the same CPUX/UI mode convention: the Cell creates a Signal, the receptor IC receives it, and reflected Pulses come back through direct result or subscription.
Direct Result
When the Cell sends a Signal to its receptor IC, it should receive the direct IC result from O_reflector.
That direct result is separate from subscription updates.
This preserves immediate human feedback while the wider CPUX Field continues to stabilise.
Developer Rule
GridLookout config should describe perception and routing.
It should not hide validation, correction, or transformation that belongs in a Design Node.