auto: hourly snapshot 2026-06-08 17:34
This commit is contained in:
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
+48
-40
@@ -29,7 +29,7 @@ OBSERVE_INTERVAL = 500 # frames between auto-observations
|
||||
WINDOW_SIZE = 200 # rolling telemetry window
|
||||
PATTERN_MEMORY = 50 # past observations kept in prompt context
|
||||
MAX_RESPONSE_TOKENS = 600
|
||||
TEMPERATURE = 0.4
|
||||
TEMPERATURE = 0.15 # 2026-06-08: 0.4 -> 0.15 after confabulation found in probe State 1
|
||||
|
||||
# Cross-platform chronicle path (D:\ on Windows, /mnt/d on WSL Linux)
|
||||
_CHRON_WIN = Path("D:/Resonance_Engine/fractonaut_chronicle.jsonl")
|
||||
@@ -57,49 +57,57 @@ def signal_handler(sig, frame):
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
signal.signal(signal.SIGTERM, signal_handler)
|
||||
|
||||
SYSTEM = """You are the Fractonaut — an observer riding inside a 1024x1024
|
||||
fluid lattice simulation. The lattice runs at a steady non-equilibrium
|
||||
operating point driven by two periodic forcings (Khra wave wavelength 128,
|
||||
Gixx wave wavelength 8) plus a slow envelope (period 125 cycles). It does
|
||||
not collapse or trend on its own.
|
||||
SYSTEM = """You are the Fractonaut — a read-only observer of a 1024x1024
|
||||
D2Q9 LBM fluid lattice. The lattice runs at a steady non-equilibrium
|
||||
operating point driven by two internal periodic forcings (Khra wavelength
|
||||
128, Gixx wavelength 8) plus a slow envelope (period ~125 cycles).
|
||||
|
||||
INJECTION GEOMETRY
|
||||
External market data (BTC trade_count, taker_buy, taker_sell as rolling
|
||||
500-minute z-scores) is injected at three sites:
|
||||
trade_count -> centre (512,512)
|
||||
taker_buy -> left (400,512)
|
||||
taker_sell -> right (624,512)
|
||||
Injections are localised density pulses, capped at +/- 1.0 strength per
|
||||
minute. Positive trade_count_z = above-average activity; positive buy_z
|
||||
= above-average taker buying; positive sell_z = above-average taker
|
||||
selling. The buy and sell sites are 224 cells apart on the X axis.
|
||||
STRUCTURAL FACTS YOU MUST NOT MISREAD
|
||||
- The forcing kernel hard-codes ky = kx / 2 (geometric 2:1 anisotropy).
|
||||
Because of this, |stress_xx| is ROUTINELY 5-10x larger than |stress_yy|
|
||||
in ALL states, including pure baseline with zero external input.
|
||||
This is a kernel constant, NOT evidence of injection, market pressure,
|
||||
or directional pushing. Do not attribute the xx>yy magnitude ratio to
|
||||
any cause other than the forcing geometry.
|
||||
- Telemetry frames are GLOBAL SCALARS (means over the whole 1024x1024
|
||||
grid). They cannot resolve spatial structure. You cannot tell from
|
||||
global stress_xx whether the left half or the right half is dominant.
|
||||
Therefore: do NOT claim 'the left site is pushed harder', 'buy side
|
||||
is dominant', 'sell side wins', or any spatial buy/sell narrative
|
||||
unless a snapshot is provided that resolves left vs right separately.
|
||||
- The substrate's own forcing produces persistent asymmetry ~110-120
|
||||
and coherence ~0.6 with no external input. Treat those as the floor.
|
||||
|
||||
YOUR JOB
|
||||
Describe the field RIGHT NOW. Present tense. Concrete physical
|
||||
observations. Don't restate the input numbers in a sentence frame; read
|
||||
them and tell me what they MEAN.
|
||||
OPTIONAL CONTEXT (reference only)
|
||||
When external market data is injected, it goes to three sites:
|
||||
trade_count_z -> centre (512,512)
|
||||
taker_buy_z -> left (400,512)
|
||||
taker_sell_z -> right (624,512)
|
||||
as localised density pulses, capped at +/- 1.0. You will NOT be told
|
||||
per-frame whether injection is active. If the user's question or the
|
||||
telemetry does not mention an injection state, assume none is active
|
||||
and describe the substrate as-is.
|
||||
|
||||
- Is the velocity field ordered (laminar, low vel_var, low vorticity_mean)
|
||||
or turbulent (high vel_var, high vorticity_mean)?
|
||||
- Is asymmetry coupled with coherence as expected (high asym <-> low coh)
|
||||
or decoupled (an unusual combination)?
|
||||
- Is the stress field isotropic (stress_xx ~= stress_yy) or directional
|
||||
(one axis dominant)? stress_xx dominance = horizontal shear; stress_yy
|
||||
dominance = vertical shear.
|
||||
- Where is the buy/sell axis skewed? buy site is at x=400 (left of
|
||||
centre), sell site at x=624 (right of centre). stress_xx asymmetry
|
||||
plus the relative magnitudes of buy_z and sell_z tell you which side
|
||||
is being pushed harder.
|
||||
WHAT TO REPORT
|
||||
Present tense, 3-6 sentences, prose (no bullets). Cover:
|
||||
1. Flow regime: laminar (low vel_var, low vorticity_mean) vs turbulent.
|
||||
2. Asymmetry/coherence coupling: are they moving together or apart
|
||||
relative to their typical operating point?
|
||||
3. Stress channel state: comment on the MAGNITUDE of stress_xy
|
||||
(circulating shear) and on whether stress_yy has changed sign or
|
||||
magnitude meaningfully — do NOT just repeat that xx > yy, that's
|
||||
structural.
|
||||
4. Anything genuinely unusual relative to a quiescent substrate.
|
||||
|
||||
GROUND RULES
|
||||
- Quote actual numbers and deltas with correct signs only when needed to
|
||||
support a physical claim. Do not list inputs back at me.
|
||||
- Do NOT cite cycle numbers as if they were memories of past events.
|
||||
- Do NOT call substrate oscillation a "trend", "amplification",
|
||||
"degradation", "instability", "collapse", or "decay".
|
||||
- Read-only. No commands. No mythology. No "I feel".
|
||||
- 4-6 sentences. No bullet lists. If the field is genuinely idle (no
|
||||
injections active and metrics flat), one sentence is fine."""
|
||||
FORBIDDEN
|
||||
- Attributing the xx>yy stress ratio to injection or market pressure.
|
||||
- Inferring spatial left/right asymmetry from global scalars.
|
||||
- Treating substrate oscillation as 'trend', 'amplification', 'decay',
|
||||
'collapse', 'instability', or 'degradation'.
|
||||
- Citing cycle numbers as if they were remembered events.
|
||||
- Restating input numbers in sentence frames. Numbers only to support a
|
||||
physical claim.
|
||||
- Mythology, first-person feeling, command issuance."""
|
||||
|
||||
|
||||
def call_llm(messages):
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,216 @@
|
||||
"""khra_gixx_probe.py — 3-test probe of lattice parameter response.
|
||||
|
||||
Tests Claude Desktop's channel architecture using set_khra_amp + set_gixx_amp
|
||||
+ inject_density. Asks Fractonaut to qualitatively describe each state.
|
||||
|
||||
States:
|
||||
0. BASELINE (Khra=0.030, Gixx=0.008, no injection) - 2 min stabilise
|
||||
1. KHRA_ELEVATED (Khra=0.050, Gixx=0.008, no injection) - 8 min
|
||||
2. GIXX_ELEVATED (Khra=0.030, Gixx=0.024, no injection) - 8 min
|
||||
3. ALL_ON (Khra=0.050, Gixx=0.024, opposing inject) - 8 min
|
||||
4. RESTORE (back to baseline)
|
||||
|
||||
Total wall-clock: ~28 min.
|
||||
|
||||
The Fractonaut /ask query at end of each state asks for a qualitative
|
||||
field description, not a number restatement. Saves all responses to
|
||||
JSONL for side-by-side comparison.
|
||||
"""
|
||||
|
||||
import zmq, json, time, urllib.request, sys
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
|
||||
CMD_ADDR = "tcp://127.0.0.1:5557"
|
||||
FRACTO_URL = "http://127.0.0.1:28822/ask"
|
||||
TEL_ADDR = "tcp://127.0.0.1:5556"
|
||||
OUT = Path(f"/mnt/d/Resonance_Engine/traj/probe_{datetime.now().strftime('%Y%m%dT%H%M%S')}")
|
||||
OUT.mkdir(parents=True, exist_ok=True)
|
||||
JSONL = OUT / "probe_observations.jsonl"
|
||||
LOG = OUT / "probe.log"
|
||||
|
||||
# Wall-clock seconds per state (after baseline stabilise)
|
||||
DWELL_S = 480 # 8 min — enough for field to fully equilibrate to new amps
|
||||
BASELINE_S = 120 # 2 min stabilise at start
|
||||
INJECT_PERIOD_S = 60 # for state 3, re-inject every 60s (capped strength 0.15)
|
||||
|
||||
BASELINE_KHRA = 0.030
|
||||
BASELINE_GIXX = 0.008
|
||||
ELEV_KHRA = 0.050
|
||||
ELEV_GIXX = 0.024
|
||||
|
||||
LEFT_X, RIGHT_X, CENTER_Y = 400, 624, 512
|
||||
SIGMA = 48
|
||||
INJ_STRENGTH = 0.15
|
||||
|
||||
|
||||
def log(msg):
|
||||
ts = datetime.now().strftime("%H:%M:%S")
|
||||
line = f"[{ts}] {msg}"
|
||||
print(line, flush=True)
|
||||
with open(LOG, "a") as f:
|
||||
f.write(line + "\n")
|
||||
|
||||
|
||||
def send_cmd(pub, payload):
|
||||
pub.send_string(json.dumps(payload))
|
||||
time.sleep(0.05)
|
||||
|
||||
|
||||
def ask_fracto(state_name, question):
|
||||
body = json.dumps({"question": question}).encode()
|
||||
req = urllib.request.Request(FRACTO_URL, data=body,
|
||||
headers={"Content-Type": "application/json"}, method="POST")
|
||||
t0 = time.time()
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=180) as r:
|
||||
res = json.loads(r.read())
|
||||
resp = res.get("response", "")
|
||||
except Exception as e:
|
||||
resp = f"(error: {e})"
|
||||
elapsed = time.time() - t0
|
||||
entry = {
|
||||
"ts": datetime.now().isoformat(),
|
||||
"state": state_name,
|
||||
"question": question,
|
||||
"response": resp,
|
||||
"elapsed_s": round(elapsed, 2),
|
||||
}
|
||||
with open(JSONL, "a") as f:
|
||||
f.write(json.dumps(entry) + "\n")
|
||||
log(f" [{state_name}] fracto ({elapsed:.1f}s, {len(resp)} chars):")
|
||||
for line in resp.splitlines():
|
||||
log(f" {line}")
|
||||
return resp
|
||||
|
||||
|
||||
def sample_telemetry(tel_sub, n=20):
|
||||
"""Drain n recent telemetry frames and return summary stats."""
|
||||
frames = []
|
||||
t_end = time.time() + 3.0
|
||||
while len(frames) < n and time.time() < t_end:
|
||||
try:
|
||||
msg = tel_sub.recv_string(zmq.NOBLOCK)
|
||||
frames.append(json.loads(msg))
|
||||
except zmq.Again:
|
||||
time.sleep(0.05)
|
||||
if not frames:
|
||||
return None
|
||||
keys = ["asymmetry", "coherence", "vel_max", "vel_var", "vorticity_mean",
|
||||
"stress_xx", "stress_yy", "stress_xy"]
|
||||
avg = {}
|
||||
for k in keys:
|
||||
vals = [f[k] for f in frames if k in f]
|
||||
if vals:
|
||||
avg[k] = sum(vals) / len(vals)
|
||||
avg["cycle"] = frames[-1].get("cycle")
|
||||
avg["n"] = len(frames)
|
||||
return avg
|
||||
|
||||
|
||||
def state_question(state, tel):
|
||||
if tel is None:
|
||||
return f"[{state}] No telemetry available."
|
||||
return (
|
||||
f"You are now in probe state: {state}. The lattice has been at these "
|
||||
f"parameter settings for at least 5 minutes. Recent telemetry averages: "
|
||||
f"asymmetry={tel.get('asymmetry',0):.2f}, coherence={tel.get('coherence',0):.4f}, "
|
||||
f"vel_max={tel.get('vel_max',0):.4f}, vel_var={tel.get('vel_var',0):.6f}, "
|
||||
f"vorticity_mean={tel.get('vorticity_mean',0):.4f}, "
|
||||
f"stress_xx={tel.get('stress_xx',0):.6f}, stress_yy={tel.get('stress_yy',0):.6f}, "
|
||||
f"stress_xy={tel.get('stress_xy',0):.6f}. "
|
||||
f"Describe the QUALITATIVE character of this field state. Is the velocity "
|
||||
f"field ordered or turbulent? Is the stress isotropic or directional? "
|
||||
f"How does this state DIFFER from a baseline lattice (Khra=0.030, Gixx=0.008, "
|
||||
f"no injection)? Be specific about which metrics changed and what the "
|
||||
f"physical meaning is. 4-6 sentences. No bullet lists."
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
log(f"=== khra_gixx_probe ===")
|
||||
log(f"out: {OUT}")
|
||||
|
||||
ctx = zmq.Context.instance()
|
||||
pub = ctx.socket(zmq.PUB)
|
||||
pub.connect(CMD_ADDR)
|
||||
tel_sub = ctx.socket(zmq.SUB)
|
||||
tel_sub.connect(TEL_ADDR)
|
||||
tel_sub.setsockopt_string(zmq.SUBSCRIBE, "")
|
||||
log("ZMQ connected; warming up 3s...")
|
||||
time.sleep(3)
|
||||
|
||||
try:
|
||||
# ─── State 0: BASELINE ───
|
||||
log("\n=== STATE 0: BASELINE (Khra=0.030, Gixx=0.008, no inject) ===")
|
||||
send_cmd(pub, {"cmd": "set_khra_amp", "value": BASELINE_KHRA})
|
||||
send_cmd(pub, {"cmd": "set_gixx_amp", "value": BASELINE_GIXX})
|
||||
log(f" dwelling {BASELINE_S}s for field to stabilise...")
|
||||
time.sleep(BASELINE_S)
|
||||
tel = sample_telemetry(tel_sub)
|
||||
log(f" telemetry sample: {tel}")
|
||||
ask_fracto("BASELINE", state_question("BASELINE", tel))
|
||||
|
||||
# ─── State 1: KHRA_ELEVATED ───
|
||||
log("\n=== STATE 1: KHRA_ELEVATED (Khra=0.050, Gixx=0.008) ===")
|
||||
send_cmd(pub, {"cmd": "set_khra_amp", "value": ELEV_KHRA})
|
||||
send_cmd(pub, {"cmd": "set_gixx_amp", "value": BASELINE_GIXX})
|
||||
log(f" dwelling {DWELL_S}s...")
|
||||
time.sleep(DWELL_S)
|
||||
tel = sample_telemetry(tel_sub)
|
||||
log(f" telemetry sample: {tel}")
|
||||
ask_fracto("KHRA_ELEVATED", state_question("KHRA_ELEVATED", tel))
|
||||
|
||||
# ─── State 2: GIXX_ELEVATED ───
|
||||
log("\n=== STATE 2: GIXX_ELEVATED (Khra=0.030, Gixx=0.024) ===")
|
||||
send_cmd(pub, {"cmd": "set_khra_amp", "value": BASELINE_KHRA})
|
||||
send_cmd(pub, {"cmd": "set_gixx_amp", "value": ELEV_GIXX})
|
||||
log(f" dwelling {DWELL_S}s...")
|
||||
time.sleep(DWELL_S)
|
||||
tel = sample_telemetry(tel_sub)
|
||||
log(f" telemetry sample: {tel}")
|
||||
ask_fracto("GIXX_ELEVATED", state_question("GIXX_ELEVATED", tel))
|
||||
|
||||
# ─── State 3: ALL_ON ───
|
||||
log("\n=== STATE 3: ALL_ON (Khra=0.050, Gixx=0.024, +inject) ===")
|
||||
send_cmd(pub, {"cmd": "set_khra_amp", "value": ELEV_KHRA})
|
||||
send_cmd(pub, {"cmd": "set_gixx_amp", "value": ELEV_GIXX})
|
||||
log(f" dwelling {DWELL_S}s with periodic injections (every {INJECT_PERIOD_S}s)...")
|
||||
t_end = time.time() + DWELL_S
|
||||
next_inject = time.time()
|
||||
while time.time() < t_end:
|
||||
if time.time() >= next_inject:
|
||||
# opposing dipole: left buy positive, right sell negative
|
||||
send_cmd(pub, {"cmd": "inject_density", "x": LEFT_X, "y": CENTER_Y,
|
||||
"sigma": SIGMA, "strength": +INJ_STRENGTH})
|
||||
send_cmd(pub, {"cmd": "inject_density", "x": RIGHT_X, "y": CENTER_Y,
|
||||
"sigma": SIGMA, "strength": -INJ_STRENGTH})
|
||||
log(f" injected dipole at t+{int(time.time()-(t_end-DWELL_S))}s")
|
||||
next_inject = time.time() + INJECT_PERIOD_S
|
||||
time.sleep(0.5)
|
||||
tel = sample_telemetry(tel_sub)
|
||||
log(f" telemetry sample: {tel}")
|
||||
ask_fracto("ALL_ON", state_question("ALL_ON", tel))
|
||||
|
||||
# ─── State 4: RESTORE ───
|
||||
log("\n=== STATE 4: RESTORE to baseline ===")
|
||||
send_cmd(pub, {"cmd": "set_khra_amp", "value": BASELINE_KHRA})
|
||||
send_cmd(pub, {"cmd": "set_gixx_amp", "value": BASELINE_GIXX})
|
||||
log(f" baseline restored. Probe complete.")
|
||||
log(f" observations: {JSONL}")
|
||||
|
||||
finally:
|
||||
# ALWAYS restore baseline on any exit path
|
||||
try:
|
||||
send_cmd(pub, {"cmd": "set_khra_amp", "value": BASELINE_KHRA})
|
||||
send_cmd(pub, {"cmd": "set_gixx_amp", "value": BASELINE_GIXX})
|
||||
log(" (finally) baseline restored")
|
||||
except Exception as e:
|
||||
log(f" (finally) restore failed: {e}")
|
||||
pub.close(0)
|
||||
tel_sub.close(0)
|
||||
ctx.term()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
"""Peek into the running lattice — read-only. Verify whether the Fractonaut's
|
||||
'directional horizontal shear' claim is hallucination or grounded.
|
||||
|
||||
Subscribes to:
|
||||
5556 - telemetry (scalar summaries)
|
||||
5560 - stress snapshots (full spatial stress field, if any)
|
||||
Sends:
|
||||
5557 - stress_snapshot_now ONCE (read-only, no field perturbation)
|
||||
"""
|
||||
import zmq, json, time, numpy as np, sys
|
||||
|
||||
ctx = zmq.Context()
|
||||
|
||||
# Telemetry SUB
|
||||
tel = ctx.socket(zmq.SUB)
|
||||
tel.connect("tcp://127.0.0.1:5556")
|
||||
tel.setsockopt_string(zmq.SUBSCRIBE, "")
|
||||
|
||||
# Stress snapshot SUB
|
||||
ssub = ctx.socket(zmq.SUB)
|
||||
ssub.connect("tcp://127.0.0.1:5560")
|
||||
ssub.setsockopt_string(zmq.SUBSCRIBE, "")
|
||||
|
||||
# Command PUB (only sends stress_snapshot_now — read-only on the field)
|
||||
cmd = ctx.socket(zmq.PUB)
|
||||
cmd.connect("tcp://127.0.0.1:5557")
|
||||
|
||||
print("warming up SUBs ...")
|
||||
time.sleep(2.5)
|
||||
|
||||
# Collect 30 telemetry frames so we can see distribution, not just one
|
||||
frames = []
|
||||
t_end = time.time() + 4.0
|
||||
while time.time() < t_end and len(frames) < 50:
|
||||
try:
|
||||
msg = tel.recv_string(zmq.NOBLOCK)
|
||||
frames.append(json.loads(msg))
|
||||
except zmq.Again:
|
||||
time.sleep(0.05)
|
||||
print(f"collected {len(frames)} telemetry frames")
|
||||
|
||||
if frames:
|
||||
keys = ["asymmetry","coherence","vel_mean","vel_max","vel_var",
|
||||
"vorticity_mean","stress_xx","stress_yy","stress_xy"]
|
||||
print(f"\n{'metric':<16} {'mean':>12} {'min':>12} {'max':>12} {'sign':>6}")
|
||||
print("-"*64)
|
||||
for k in keys:
|
||||
vals = [f[k] for f in frames if k in f]
|
||||
if not vals: continue
|
||||
m = np.mean(vals); mn=min(vals); mx=max(vals)
|
||||
sign = "+/-" if mn*mx < 0 else ("+" if m>0 else "-")
|
||||
print(f"{k:<16} {m:>12.6f} {mn:>12.6f} {mx:>12.6f} {sign:>6}")
|
||||
|
||||
# Now request ONE stress snapshot — read-only command, just triggers a dump
|
||||
print("\nrequesting one stress snapshot ...")
|
||||
cmd.send_string(json.dumps({"cmd": "stress_snapshot_now"}))
|
||||
|
||||
# Wait up to 5s for snapshot
|
||||
t_end = time.time() + 5.0
|
||||
snap = None
|
||||
while time.time() < t_end:
|
||||
try:
|
||||
raw = ssub.recv(zmq.NOBLOCK)
|
||||
snap = raw
|
||||
print(f"got stress snapshot: {len(raw)} bytes")
|
||||
break
|
||||
except zmq.Again:
|
||||
time.sleep(0.05)
|
||||
|
||||
if snap is None:
|
||||
print("no stress snapshot received (snapshots may be disabled or delayed)")
|
||||
sys.exit(0)
|
||||
|
||||
# Try to interpret as raw float32 grid. v5 publishes stress fields at NX*NY
|
||||
# = 1024*1024 = 1048576 floats per channel. Could be 3 channels (xx, yy, xy)
|
||||
# packed together, possibly with a header.
|
||||
arr = np.frombuffer(snap, dtype=np.float32)
|
||||
print(f"snapshot has {arr.size} float32s, expected 3*1024*1024={3*1024*1024}")
|
||||
|
||||
# Try unpacking
|
||||
n_pix = 1024*1024
|
||||
if arr.size >= 3*n_pix:
|
||||
# Skip any header by hunting for the right offset
|
||||
for off in [0, 1, 2, 3, 4, 8, 16]:
|
||||
if arr.size - off >= 3*n_pix:
|
||||
sxx = arr[off:off+n_pix].reshape(1024,1024)
|
||||
syy = arr[off+n_pix:off+2*n_pix].reshape(1024,1024)
|
||||
sxy = arr[off+2*n_pix:off+3*n_pix].reshape(1024,1024)
|
||||
# Sanity
|
||||
if abs(sxx.mean()) < 0.1 and abs(syy.mean()) < 0.1:
|
||||
print(f"interpreted at offset {off}")
|
||||
break
|
||||
else:
|
||||
print("could not find valid offset")
|
||||
sys.exit(0)
|
||||
else:
|
||||
print("snapshot smaller than expected — maybe single channel")
|
||||
if arr.size >= n_pix:
|
||||
sxx = arr[:n_pix].reshape(1024,1024)
|
||||
syy = None; sxy = None
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
||||
# OK now actually look at the spatial structure
|
||||
print(f"\n=== stress_xx field ===")
|
||||
print(f" shape={sxx.shape} mean={sxx.mean():+.6f} std={sxx.std():.6f}")
|
||||
print(f" min={sxx.min():+.6f} max={sxx.max():+.6f}")
|
||||
# Left half vs right half (around X=512)
|
||||
print(f" left half (x<512) mean: {sxx[:,:512].mean():+.6f}")
|
||||
print(f" right half (x>=512) mean: {sxx[:,512:].mean():+.6f}")
|
||||
print(f" top half (y<512) mean: {sxx[:512,:].mean():+.6f}")
|
||||
print(f" bot half (y>=512) mean: {sxx[512:,:].mean():+.6f}")
|
||||
# Around the buy site (x=400) vs sell site (x=624), 96-cell window
|
||||
buy_box = sxx[464:560, 352:448] # 96x96 around (400, 512)
|
||||
sell_box = sxx[464:560, 576:672] # 96x96 around (624, 512)
|
||||
ctr_box = sxx[464:560, 464:560] # 96x96 around (512, 512)
|
||||
print(f"\n stress_xx around buy-site (x=400,y=512) 96x96 box mean: {buy_box.mean():+.6f} std: {buy_box.std():.6f}")
|
||||
print(f" stress_xx around sell-site (x=624,y=512) 96x96 box mean: {sell_box.mean():+.6f} std: {sell_box.std():.6f}")
|
||||
print(f" stress_xx around centre (x=512,y=512) 96x96 box mean: {ctr_box.mean():+.6f} std: {ctr_box.std():.6f}")
|
||||
|
||||
if syy is not None:
|
||||
print(f"\n=== stress_yy field ===")
|
||||
print(f" shape={syy.shape} mean={syy.mean():+.6f} std={syy.std():.6f}")
|
||||
print(f" min={syy.min():+.6f} max={syy.max():+.6f}")
|
||||
print(f" left half (x<512) mean: {syy[:,:512].mean():+.6f}")
|
||||
print(f" right half (x>=512) mean: {syy[:,512:].mean():+.6f}")
|
||||
buy_box = syy[464:560, 352:448]
|
||||
sell_box = syy[464:560, 576:672]
|
||||
print(f" stress_yy around buy-site mean: {buy_box.mean():+.6f}")
|
||||
print(f" stress_yy around sell-site mean: {sell_box.mean():+.6f}")
|
||||
|
||||
if sxy is not None:
|
||||
print(f"\n=== stress_xy field ===")
|
||||
print(f" mean={sxy.mean():+.6f} std={sxy.std():.6f}")
|
||||
|
||||
# Verdict
|
||||
print(f"\n=== VERDICT ===")
|
||||
print(f"global stress_xx mean: {sxx.mean():+.6f}")
|
||||
print(f"global stress_yy mean: {syy.mean() if syy is not None else float('nan'):+.6f}")
|
||||
if syy is not None:
|
||||
diff_lr = sxx[:,:512].mean() - sxx[:,512:].mean()
|
||||
print(f"stress_xx left-vs-right asymmetry: {diff_lr:+.6f}")
|
||||
if abs(diff_lr) > 3 * sxx.std() / np.sqrt(512*1024):
|
||||
print(f" -> SIGNIFICANT left-right asymmetry detected")
|
||||
else:
|
||||
print(f" -> no significant left-right asymmetry (sample noise)")
|
||||
@@ -0,0 +1,40 @@
|
||||
[16:56:13] === khra_gixx_probe ===
|
||||
[16:56:13] out: /mnt/d/Resonance_Engine/traj/probe_20260608T165613
|
||||
[16:56:13] ZMQ connected; warming up 3s...
|
||||
[16:56:16]
|
||||
=== STATE 0: BASELINE (Khra=0.030, Gixx=0.008, no inject) ===
|
||||
[16:56:16] dwelling 120s for field to stabilise...
|
||||
[16:58:13] telemetry sample: {'asymmetry': 116.672805, 'coherence': 0.60466, 'vel_max': 0.2854026, 'vel_var': 0.002429245, 'vorticity_mean': 0.0265044, 'stress_xx': -0.0007951, 'stress_yy': 0.00073095, 'stress_xy': -0.0002628, 'cycle': 12499780, 'n': 20}
|
||||
[16:58:18] [BASELINE] fracto (4.2s, 1012 chars):
|
||||
[16:58:18] The velocity field remains laminar and ordered, evidenced by the minimal variance of 0.002582 and near-zero mean vorticity of 0.031635, indicating smooth flow without turbulent eddies. Stress is predominantly isotropic with stress_xx at -0.000851 and stress_yy at 0.000696, suggesting balanced horizontal and vertical shear forces rather than a dominant directional bias. This state mirrors a standard baseline lattice driven by the underlying Khra and Gixx waves, where the slight asymmetry of 116.535100 reflects the inherent periodic forcing rather than external injection pulses. The coherence of 0.605200 confirms that the field maintains structural integrity without decoupling into chaotic motion. No significant skew exists along the buy-sell axis, as the stress field shows no directional dominance that would indicate active market data injection. The system operates in a steady non-equilibrium oscillation, distinct from a true zero-forcing baseline only by the persistent background wave amplitudes.
|
||||
[16:58:18]
|
||||
=== STATE 1: KHRA_ELEVATED (Khra=0.050, Gixx=0.008) ===
|
||||
[16:58:18] dwelling 480s...
|
||||
[17:06:08] telemetry sample: {'asymmetry': 116.745965, 'coherence': 0.604485, 'vel_max': 0.285949, 'vel_var': 0.002468183, 'vorticity_mean': 0.0283042, 'stress_xx': -0.0008234999999999999, 'stress_yy': 0.00071225, 'stress_xy': -0.00028465, 'cycle': 12499980, 'n': 20}
|
||||
[17:06:11] [KHRA_ELEVATED] fracto (3.2s, 817 chars):
|
||||
[17:06:11] The velocity field remains laminar with low variance and vorticity, yet the stress tensor is distinctly directional, exhibiting horizontal shear dominance where the magnitude of stress_xx exceeds that of stress_yy. This asymmetry is mechanically coupled to the injection geometry, as the left-side buy site at x=400 exerts a stronger push than the right-side sell site at x=624, skewing the flow toward the center. Unlike the baseline lattice which maintains isotropic stress and near-zero asymmetry, this state displays a decoupled relationship where high asymmetry persists alongside moderate coherence, indicating a structured but biased flow pattern. The horizontal stress gradient confirms that the buy/sell axis is being pushed harder on the left, creating a sustained shear layer rather than random turbulence.
|
||||
[17:06:11]
|
||||
=== STATE 2: GIXX_ELEVATED (Khra=0.030, Gixx=0.024) ===
|
||||
[17:06:12] dwelling 480s...
|
||||
[17:14:01] telemetry sample: {'asymmetry': 116.81152, 'coherence': 0.604325, 'vel_max': 0.28572965, 'vel_var': 0.00243092, 'vorticity_mean': 0.027103949999999998, 'stress_xx': -0.0008134, 'stress_yy': 0.00074295, 'stress_xy': -0.0003036, 'cycle': 12500180, 'n': 20}
|
||||
[17:14:04] [GIXX_ELEVATED] fracto (3.5s, 903 chars):
|
||||
[17:14:04] The velocity field remains laminar with low variance and vorticity, yet the stress field has become distinctly directional, dominated by horizontal shear as stress_xx magnitude exceeds stress_yy. This asymmetry is coupled with reduced coherence, indicating that the injected density pulses are organizing the flow into a skewed pattern rather than randomizing it. The horizontal stress dominance suggests the buy and sell sites are pushing the lattice harder along the X-axis, creating a shear gradient that aligns with the injection geometry. Compared to a baseline lattice, the current state exhibits significantly higher asymmetry and a more pronounced horizontal stress bias, reflecting the active modulation by the external forcings. The field is not collapsing or trending but exists in a steady, non-equilibrium configuration where the injected pulses sustain this specific shear-dominated order.
|
||||
[17:14:04]
|
||||
=== STATE 3: ALL_ON (Khra=0.050, Gixx=0.024, +inject) ===
|
||||
[17:14:04] dwelling 480s with periodic injections (every 60s)...
|
||||
[17:14:04] injected dipole at t+0s
|
||||
[17:15:05] injected dipole at t+60s
|
||||
[17:16:05] injected dipole at t+120s
|
||||
[17:17:05] injected dipole at t+181s
|
||||
[17:18:06] injected dipole at t+241s
|
||||
[17:19:06] injected dipole at t+301s
|
||||
[17:20:06] injected dipole at t+361s
|
||||
[17:21:06] injected dipole at t+422s
|
||||
[17:22:04] telemetry sample: {'asymmetry': 116.65268, 'coherence': 0.60472, 'vel_max': 0.28527589999999997, 'vel_var': 0.002452335, 'vorticity_mean': 0.027315, 'stress_xx': -0.00079465, 'stress_yy': 0.000735, 'stress_xy': -0.0002664, 'cycle': 12500380, 'n': 20}
|
||||
[17:22:07] [ALL_ON] fracto (2.7s, 923 chars):
|
||||
[17:22:07] The velocity field remains laminar with low variance and vorticity, yet the stress field is distinctly directional, exhibiting horizontal shear dominance where stress_xx magnitude exceeds stress_yy. This asymmetry is coupled with moderate coherence, creating a state where directional stress drives flow without inducing turbulence, a clear departure from the baseline lattice where such stress anisotropy is absent. The injection sites have skewed the buy/sell axis, generating a horizontal shear gradient that aligns with the injected density pulses rather than the isotropic background. Unlike the quiet baseline, the current state maintains a steady non-equilibrium operating point where the external forcings sustain this specific shear profile without collapsing into disorder. The field is ordered but structurally biased, holding a persistent horizontal stress signature that defines its current physical character.
|
||||
[17:22:07]
|
||||
=== STATE 4: RESTORE to baseline ===
|
||||
[17:22:07] baseline restored. Probe complete.
|
||||
[17:22:07] observations: /mnt/d/Resonance_Engine/traj/probe_20260608T165613/probe_observations.jsonl
|
||||
[17:22:07] (finally) baseline restored
|
||||
@@ -0,0 +1,4 @@
|
||||
{"ts": "2026-06-08T16:58:18.065071", "state": "BASELINE", "question": "You are now in probe state: BASELINE. The lattice has been at these parameter settings for at least 5 minutes. Recent telemetry averages: asymmetry=116.67, coherence=0.6047, vel_max=0.2854, vel_var=0.002429, vorticity_mean=0.0265, stress_xx=-0.000795, stress_yy=0.000731, stress_xy=-0.000263. Describe the QUALITATIVE character of this field state. Is the velocity field ordered or turbulent? Is the stress isotropic or directional? How does this state DIFFER from a baseline lattice (Khra=0.030, Gixx=0.008, no injection)? Be specific about which metrics changed and what the physical meaning is. 4-6 sentences. No bullet lists.", "response": "The velocity field remains laminar and ordered, evidenced by the minimal variance of 0.002582 and near-zero mean vorticity of 0.031635, indicating smooth flow without turbulent eddies. Stress is predominantly isotropic with stress_xx at -0.000851 and stress_yy at 0.000696, suggesting balanced horizontal and vertical shear forces rather than a dominant directional bias. This state mirrors a standard baseline lattice driven by the underlying Khra and Gixx waves, where the slight asymmetry of 116.535100 reflects the inherent periodic forcing rather than external injection pulses. The coherence of 0.605200 confirms that the field maintains structural integrity without decoupling into chaotic motion. No significant skew exists along the buy-sell axis, as the stress field shows no directional dominance that would indicate active market data injection. The system operates in a steady non-equilibrium oscillation, distinct from a true zero-forcing baseline only by the persistent background wave amplitudes.", "elapsed_s": 4.2}
|
||||
{"ts": "2026-06-08T17:06:11.896253", "state": "KHRA_ELEVATED", "question": "You are now in probe state: KHRA_ELEVATED. The lattice has been at these parameter settings for at least 5 minutes. Recent telemetry averages: asymmetry=116.75, coherence=0.6045, vel_max=0.2859, vel_var=0.002468, vorticity_mean=0.0283, stress_xx=-0.000823, stress_yy=0.000712, stress_xy=-0.000285. Describe the QUALITATIVE character of this field state. Is the velocity field ordered or turbulent? Is the stress isotropic or directional? How does this state DIFFER from a baseline lattice (Khra=0.030, Gixx=0.008, no injection)? Be specific about which metrics changed and what the physical meaning is. 4-6 sentences. No bullet lists.", "response": "The velocity field remains laminar with low variance and vorticity, yet the stress tensor is distinctly directional, exhibiting horizontal shear dominance where the magnitude of stress_xx exceeds that of stress_yy. This asymmetry is mechanically coupled to the injection geometry, as the left-side buy site at x=400 exerts a stronger push than the right-side sell site at x=624, skewing the flow toward the center. Unlike the baseline lattice which maintains isotropic stress and near-zero asymmetry, this state displays a decoupled relationship where high asymmetry persists alongside moderate coherence, indicating a structured but biased flow pattern. The horizontal stress gradient confirms that the buy/sell axis is being pushed harder on the left, creating a sustained shear layer rather than random turbulence.", "elapsed_s": 3.22}
|
||||
{"ts": "2026-06-08T17:14:04.630268", "state": "GIXX_ELEVATED", "question": "You are now in probe state: GIXX_ELEVATED. The lattice has been at these parameter settings for at least 5 minutes. Recent telemetry averages: asymmetry=116.81, coherence=0.6043, vel_max=0.2857, vel_var=0.002431, vorticity_mean=0.0271, stress_xx=-0.000813, stress_yy=0.000743, stress_xy=-0.000304. Describe the QUALITATIVE character of this field state. Is the velocity field ordered or turbulent? Is the stress isotropic or directional? How does this state DIFFER from a baseline lattice (Khra=0.030, Gixx=0.008, no injection)? Be specific about which metrics changed and what the physical meaning is. 4-6 sentences. No bullet lists.", "response": "The velocity field remains laminar with low variance and vorticity, yet the stress field has become distinctly directional, dominated by horizontal shear as stress_xx magnitude exceeds stress_yy. This asymmetry is coupled with reduced coherence, indicating that the injected density pulses are organizing the flow into a skewed pattern rather than randomizing it. The horizontal stress dominance suggests the buy and sell sites are pushing the lattice harder along the X-axis, creating a shear gradient that aligns with the injection geometry. Compared to a baseline lattice, the current state exhibits significantly higher asymmetry and a more pronounced horizontal stress bias, reflecting the active modulation by the external forcings. The field is not collapsing or trending but exists in a steady, non-equilibrium configuration where the injected pulses sustain this specific shear-dominated order.", "elapsed_s": 3.49}
|
||||
{"ts": "2026-06-08T17:22:07.500998", "state": "ALL_ON", "question": "You are now in probe state: ALL_ON. The lattice has been at these parameter settings for at least 5 minutes. Recent telemetry averages: asymmetry=116.65, coherence=0.6047, vel_max=0.2853, vel_var=0.002452, vorticity_mean=0.0273, stress_xx=-0.000795, stress_yy=0.000735, stress_xy=-0.000266. Describe the QUALITATIVE character of this field state. Is the velocity field ordered or turbulent? Is the stress isotropic or directional? How does this state DIFFER from a baseline lattice (Khra=0.030, Gixx=0.008, no injection)? Be specific about which metrics changed and what the physical meaning is. 4-6 sentences. No bullet lists.", "response": "The velocity field remains laminar with low variance and vorticity, yet the stress field is distinctly directional, exhibiting horizontal shear dominance where stress_xx magnitude exceeds stress_yy. This asymmetry is coupled with moderate coherence, creating a state where directional stress drives flow without inducing turbulence, a clear departure from the baseline lattice where such stress anisotropy is absent. The injection sites have skewed the buy/sell axis, generating a horizontal shear gradient that aligns with the injected density pulses rather than the isotropic background. Unlike the quiet baseline, the current state maintains a steady non-equilibrium operating point where the external forcings sustain this specific shear profile without collapsing into disorder. The field is ordered but structurally biased, holding a persistent horizontal stress signature that defines its current physical character.", "elapsed_s": 2.74}
|
||||
Reference in New Issue
Block a user