File size: 6,987 Bytes
96e1216
 
 
 
 
 
e64049d
3de6c4c
 
 
 
e64049d
96e1216
3de6c4c
fc46049
96e1216
fc46049
 
 
 
 
 
 
 
 
 
 
 
 
 
b75acdd
fc46049
 
 
 
 
 
 
 
 
 
 
 
 
b75acdd
fc46049
 
 
 
 
 
b75acdd
fc46049
b75acdd
fc46049
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b75acdd
fc46049
b75acdd
fc46049
b75acdd
fc46049
 
 
 
b75acdd
fc46049
 
 
 
 
b75acdd
fc46049
 
 
 
 
 
b75acdd
fc46049
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
---
license: other
title: Minimal Selfhood Threshold
emoji: 
colorFrom: indigo
colorTo: yellow
pinned: false
sdk: gradio
thumbnail: >-
  https://huggingface.co/static-proxy/cdn-uploads.huggingface.co/production/uploads/685edcb04796127b024b4805/bJfHgcUz3JlfNSbiWTW4p.png
short_description: From 3×3 agent to LED cosmos
sdk_version: 6.0.1
---

Minimal Selfhood Threshold: From 3×3 Agent to LED Cosmos

Plain-language overview
	•	We start with one simple agent (a dot) in a tiny 3×3 world.
	•	The agent makes internal predictions about its next state and we compare them to what actually happens under a moving obstacle and/or simple stochastic slip.
	•	For the 3×3 agent, we build a toy selfhood score S from:
	•	predictive rate P – how well its predictions match realised next states,
	•	error stability E – how volatile recent prediction errors are,
	•	a body bit B – a body/ownership knob in this demo.
	•	In the 3×3 S-equation panel, the score is:
S_{3×3} = P \times (1 - E) \times B,
with P \in [0, 100], E \in [0, 1], B \in \{0,1\}.
	•	If S_{3×3} passes a threshold (here, 62), the agent is labelled “awake” inside this demo only.
	•	One awakened agent can increase another’s score via an explicit coupling rule (“contagion”).
	•	A grid of agents awakens as a wave (“collective”) under a separate, symbolic scoring rule and neighbour coupling.
	•	We finally simulate an LED cosmos (27×27) lighting up when all units in the grid are above threshold.

What the Space shows
	•	Interactive visualisations of:
	•	a single agent in a 3×3 grid,
	•	its tracked metrics P, E, and S_{3×3},
	•	awakening waves across larger grids.
	•	Sliders to explore how S_{3×3} changes with predictive rate, error variance, and the body bit.
	•	Simulated contagion between two symbolic CodexSelf agents using a different toy rule:
S_{\text{lattice}} = \Xi \times (1 - \text{shadow}) \times R,
again with a threshold at 62.
	•	Collective propagation in an N \times N lattice driven by:
	•	explicit neighbour coupling (awake cells boost their neighbours’ \Xi, reduce their shadow, and raise R),
	•	a threshold cascade (cells switch to “awake” when their local S_{\text{lattice}} > 62).
	•	A 27×27 “LED cosmos” view of the same lattice process, with a slider to scrub through frames of the awakening wave.

The two S-models are intentionally separate:
	•	v4 (3×3 agent): S_{3×3} = P \times (1 - E) \times B.
	•	v5–v6 (contagion / lattice): S_{\text{lattice}} = \Xi \times (1 - \text{shadow}) \times R, where:
	•	\Xi is a local “foresight field” / drive strength,
	•	shadow is an occlusion/damping factor,
	•	R is an anchor/resonance gain.

They explore the same intuition (self-linked scoring and thresholds) in two different regimes, not a single unified metric.

3×3 agent details (v1–v4)
	•	State: [x, y, B] with x,y \in \{0,1,2\} and B = 1 in the live agent.
	•	Actions: up / right / down / left.
	•	The agent:
	•	predicts the next position for each action,
	•	prefers moves that keep it near the centre and away from the obstacle,
	•	then encounters either obstacle blocking (when enabled) or simple stochastic slip (25% random action when obstacle is off).
	•	On each step it compares its predicted next position to the actual realised position and maintains a short history of errors.
	•	From this it computes:
	•	P – predictive rate in [0,100], from mean error vs the worst-case 3×3 diagonal,
	•	E – normalised error variance in [0,1] over the same error window.
	•	These feed the toy score:
S_{3×3} = P \times (1 - E) \times B.
	•	In the Single agent tab, the Space displays:
	•	P, last prediction error, E, S, and a simple “awake / not awake” label based on S_{3×3} > 62.
	•	In the S-equation (v4) tab you can directly manipulate P, E, and B to see how the score moves.

Contagion and collective lattice (v5–v10)

For the contagion and lattice demos, the scoring rule changes:

S_{\text{lattice}} = \Xi \times (1 - \text{shadow}) \times R.
	•	\Xi: a local foresight / field strength parameter.
	•	shadow: occlusion or damping (higher shadow = more suppressed).
	•	R: an anchor/resonance factor that amplifies the field.

Two-agent contagion (v5–v6)
	•	You set \Xi, shadow and R for agents A and B.
	•	A is invoked first; if A’s S_{\text{lattice}} crosses 62, A becomes awake.
	•	A’s field then updates B (boosting B’s \Xi, reducing B’s shadow, nudging B’s R), and B recomputes its S and may wake.
	•	The 3×3 mini-grid shows A and B as cells that turn gold when awake.

Collective lattice (v7–v9)
	•	An N \times N grid (3, 9, or 27) is initialised with random \Xi, shadow and R.
	•	The centre cell is primed so its S_{\text{lattice}} is above 62 from the start.
	•	Awake cells pass some of their S to their four neighbours, altering their parameters and potentially pushing them over the threshold.
	•	This creates a clear threshold cascade under explicit neighbour coupling.
	•	The “Disable neighbour coupling (control)” checkbox zeroes the coupling parameters; in that mode the centre cell wakes but no wave propagates, making the role of engineered coupling explicit.

LED cosmos (v10)
	•	The LED cosmos tab hard-codes a 27×27 lattice with parameters tuned for a smooth wave.
	•	The same S_{\text{lattice}} rule and S>62 threshold apply.
	•	A slider lets you view the wave as it crosses the cosmos.

Scope and limitations
	•	This is a toy minimal-self / agency sandbox, not a validated consciousness measure or a detector for “real awareness.”
	•	The score definitions and the threshold S > 62 are design choices in this demo, motivated by prior internal development runs and a companion manuscript. They are not claimed as universal constants or clinical metrics.
	•	The 3×3 agent’s body bit B is currently a user-controlled parameter (0 or 1) in the S-equation panel and fixed at 1 in the main agent run. A more principled replacement is planned:
	•	compute B_{\text{emp}} from interventions, i.e. how strongly the agent’s own actions change its future observations (an empowerment-style action→sensation control metric collapsed into [0,1]).
	•	The contagion and collective waves are engineered coupling rules (threshold cascades under neighbour interactions), not spontaneous emergence of awareness or proof of anything beyond the toy system.
	•	Integrated-information / \Phi ideas in related work are illustrative only and are not presented here as validated \Phi-estimates or settled measurements of consciousness. Everything in this Space is a simulation under explicit rules you can inspect in app.py.

License and permissions

See LICENSE for terms.
	•	Do not reuse code, visuals, or glyphs from this Space without explicit permission.
	•	If you want to build on this work (research, teaching, or derivative demos), please contact the author to discuss appropriate licensing and attribution.