From ee9530a65edc8169e030faf47ea53bd172767418 Mon Sep 17 00:00:00 2001 From: Scruff AI Date: Sat, 6 Jun 2026 15:34:27 +0700 Subject: [PATCH] auto: hourly snapshot 2026-06-06 15:34 --- beast-build/telemetry.jsonl | 139 +++++++++++++ fractonaut.py | 398 ++++++++++++++++++++++++++++++++++++ fractonaut_chronicle.jsonl | 2 + 3 files changed, 539 insertions(+) create mode 100644 beast-build/telemetry.jsonl create mode 100644 fractonaut.py create mode 100644 fractonaut_chronicle.jsonl diff --git a/beast-build/telemetry.jsonl b/beast-build/telemetry.jsonl new file mode 100644 index 0000000..c31319c --- /dev/null +++ b/beast-build/telemetry.jsonl @@ -0,0 +1,139 @@ +{"cycle":0,"ts":1780734389,"coherence":1.0000,"asymmetry":0.0000,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.027848,"vel_max":0.083378,"vel_var":0.00039332,"vorticity_mean":0.005571,"stress_xx":-0.000460,"stress_yy":-0.000115,"stress_xy":-0.000230,"gpu_temp_c":43,"gpu_power_w":43.1,"gpu_util_pct":24,"gpu_mem_pct":69.8} +{"cycle":10,"ts":1780734389,"coherence":0.9273,"asymmetry":0.6126,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.184879,"vel_max":0.273419,"vel_var":0.00687300,"vorticity_mean":0.032206,"stress_xx":-0.000403,"stress_yy":-0.000178,"stress_xy":-0.000248,"gpu_temp_c":43,"gpu_power_w":46.3,"gpu_util_pct":24,"gpu_mem_pct":69.8} +{"cycle":20,"ts":1780734389,"coherence":0.8426,"asymmetry":3.5290,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.209136,"vel_max":0.277150,"vel_var":0.00450751,"vorticity_mean":0.039367,"stress_xx":-0.000649,"stress_yy":-0.000160,"stress_xy":-0.000389,"gpu_temp_c":43,"gpu_power_w":49.6,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":30,"ts":1780734390,"coherence":0.7885,"asymmetry":7.1956,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.216058,"vel_max":0.280420,"vel_var":0.00342842,"vorticity_mean":0.040214,"stress_xx":-0.000665,"stress_yy":-0.000004,"stress_xy":-0.000395,"gpu_temp_c":43,"gpu_power_w":56.3,"gpu_util_pct":8,"gpu_mem_pct":69.8} +{"cycle":40,"ts":1780734390,"coherence":0.7578,"asymmetry":10.2189,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219498,"vel_max":0.280014,"vel_var":0.00288055,"vorticity_mean":0.036510,"stress_xx":-0.000680,"stress_yy":0.000093,"stress_xy":-0.000345,"gpu_temp_c":44,"gpu_power_w":59.7,"gpu_util_pct":8,"gpu_mem_pct":69.8} +{"cycle":50,"ts":1780734390,"coherence":0.7376,"asymmetry":12.6373,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221417,"vel_max":0.276751,"vel_var":0.00275036,"vorticity_mean":0.032218,"stress_xx":-0.000789,"stress_yy":0.000181,"stress_xy":-0.000252,"gpu_temp_c":44,"gpu_power_w":63.1,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":60,"ts":1780734390,"coherence":0.7252,"asymmetry":14.3899,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221084,"vel_max":0.278987,"vel_var":0.00281965,"vorticity_mean":0.028602,"stress_xx":-0.000701,"stress_yy":0.000249,"stress_xy":-0.000185,"gpu_temp_c":44,"gpu_power_w":66.5,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":70,"ts":1780734390,"coherence":0.7189,"asymmetry":15.2811,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220515,"vel_max":0.274055,"vel_var":0.00286484,"vorticity_mean":0.025638,"stress_xx":-0.000595,"stress_yy":0.000343,"stress_xy":-0.000134,"gpu_temp_c":44,"gpu_power_w":69.9,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":80,"ts":1780734390,"coherence":0.7201,"asymmetry":15.0733,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220443,"vel_max":0.272189,"vel_var":0.00283064,"vorticity_mean":0.023038,"stress_xx":-0.000521,"stress_yy":0.000380,"stress_xy":-0.000081,"gpu_temp_c":44,"gpu_power_w":73.3,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":90,"ts":1780734390,"coherence":0.7262,"asymmetry":14.1989,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221896,"vel_max":0.269859,"vel_var":0.00266690,"vorticity_mean":0.020803,"stress_xx":-0.000487,"stress_yy":0.000368,"stress_xy":-0.000079,"gpu_temp_c":44,"gpu_power_w":77.5,"gpu_util_pct":10,"gpu_mem_pct":69.8} +{"cycle":100,"ts":1780734390,"coherence":0.7317,"asymmetry":13.4378,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223598,"vel_max":0.270018,"vel_var":0.00245799,"vorticity_mean":0.019308,"stress_xx":-0.000454,"stress_yy":0.000377,"stress_xy":-0.000100,"gpu_temp_c":44,"gpu_power_w":77.8,"gpu_util_pct":10,"gpu_mem_pct":69.8} +{"cycle":110,"ts":1780734391,"coherence":0.7343,"asymmetry":13.1041,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.224125,"vel_max":0.268486,"vel_var":0.00239382,"vorticity_mean":0.019108,"stress_xx":-0.000464,"stress_yy":0.000411,"stress_xy":-0.000108,"gpu_temp_c":44,"gpu_power_w":77.8,"gpu_util_pct":10,"gpu_mem_pct":69.8} +{"cycle":120,"ts":1780734391,"coherence":0.7356,"asymmetry":12.8979,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.224807,"vel_max":0.274057,"vel_var":0.00230487,"vorticity_mean":0.020333,"stress_xx":-0.000519,"stress_yy":0.000456,"stress_xy":-0.000094,"gpu_temp_c":44,"gpu_power_w":77.8,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":130,"ts":1780734391,"coherence":0.7377,"asymmetry":12.6496,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.224581,"vel_max":0.273540,"vel_var":0.00220857,"vorticity_mean":0.022933,"stress_xx":-0.000489,"stress_yy":0.000413,"stress_xy":-0.000086,"gpu_temp_c":44,"gpu_power_w":77.8,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":140,"ts":1780734391,"coherence":0.7393,"asymmetry":12.4712,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.224383,"vel_max":0.272873,"vel_var":0.00208806,"vorticity_mean":0.025625,"stress_xx":-0.000464,"stress_yy":0.000371,"stress_xy":-0.000095,"gpu_temp_c":44,"gpu_power_w":77.8,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":150,"ts":1780734391,"coherence":0.7397,"asymmetry":12.3574,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223866,"vel_max":0.276183,"vel_var":0.00214126,"vorticity_mean":0.028143,"stress_xx":-0.000520,"stress_yy":0.000426,"stress_xy":-0.000070,"gpu_temp_c":44,"gpu_power_w":77.9,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":160,"ts":1780734391,"coherence":0.7411,"asymmetry":12.1930,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223159,"vel_max":0.274768,"vel_var":0.00214256,"vorticity_mean":0.029469,"stress_xx":-0.000501,"stress_yy":0.000484,"stress_xy":-0.000003,"gpu_temp_c":44,"gpu_power_w":77.9,"gpu_util_pct":9,"gpu_mem_pct":69.8} +{"cycle":170,"ts":1780734391,"coherence":0.7422,"asymmetry":12.0477,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222705,"vel_max":0.274285,"vel_var":0.00227563,"vorticity_mean":0.029757,"stress_xx":-0.000581,"stress_yy":0.000491,"stress_xy":-0.000028,"gpu_temp_c":44,"gpu_power_w":78.0,"gpu_util_pct":9,"gpu_mem_pct":69.7} +{"cycle":180,"ts":1780734391,"coherence":0.7427,"asymmetry":12.0002,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222573,"vel_max":0.272856,"vel_var":0.00232017,"vorticity_mean":0.028829,"stress_xx":-0.000556,"stress_yy":0.000444,"stress_xy":-0.000013,"gpu_temp_c":44,"gpu_power_w":78.0,"gpu_util_pct":9,"gpu_mem_pct":69.7} +{"cycle":190,"ts":1780734392,"coherence":0.7422,"asymmetry":12.0409,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223135,"vel_max":0.275499,"vel_var":0.00224201,"vorticity_mean":0.026668,"stress_xx":-0.000549,"stress_yy":0.000389,"stress_xy":-0.000054,"gpu_temp_c":44,"gpu_power_w":77.9,"gpu_util_pct":10,"gpu_mem_pct":69.7} +{"cycle":200,"ts":1780734392,"coherence":0.7416,"asymmetry":12.1718,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223573,"vel_max":0.275112,"vel_var":0.00227475,"vorticity_mean":0.023912,"stress_xx":-0.000554,"stress_yy":0.000385,"stress_xy":-0.000090,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":10,"gpu_mem_pct":69.6} +{"cycle":210,"ts":1780734392,"coherence":0.7395,"asymmetry":12.4169,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223738,"vel_max":0.271463,"vel_var":0.00234812,"vorticity_mean":0.021249,"stress_xx":-0.000575,"stress_yy":0.000359,"stress_xy":-0.000068,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":9,"gpu_mem_pct":69.6} +{"cycle":220,"ts":1780734392,"coherence":0.7373,"asymmetry":12.7001,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223948,"vel_max":0.275057,"vel_var":0.00236572,"vorticity_mean":0.019876,"stress_xx":-0.000621,"stress_yy":0.000368,"stress_xy":-0.000105,"gpu_temp_c":45,"gpu_power_w":77.8,"gpu_util_pct":9,"gpu_mem_pct":69.6} +{"cycle":230,"ts":1780734392,"coherence":0.7358,"asymmetry":12.9325,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.224006,"vel_max":0.277202,"vel_var":0.00235562,"vorticity_mean":0.019228,"stress_xx":-0.000605,"stress_yy":0.000357,"stress_xy":-0.000129,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":9,"gpu_mem_pct":69.6} +{"cycle":240,"ts":1780734392,"coherence":0.7339,"asymmetry":13.1333,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.224241,"vel_max":0.273143,"vel_var":0.00224293,"vorticity_mean":0.020019,"stress_xx":-0.000570,"stress_yy":0.000359,"stress_xy":-0.000130,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":8,"gpu_mem_pct":69.6} +{"cycle":250,"ts":1780734392,"coherence":0.7329,"asymmetry":13.2730,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223930,"vel_max":0.273028,"vel_var":0.00222782,"vorticity_mean":0.022042,"stress_xx":-0.000547,"stress_yy":0.000435,"stress_xy":-0.000109,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":8,"gpu_mem_pct":69.6} +{"cycle":260,"ts":1780734392,"coherence":0.7326,"asymmetry":13.2857,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222816,"vel_max":0.275688,"vel_var":0.00234282,"vorticity_mean":0.025306,"stress_xx":-0.000453,"stress_yy":0.000455,"stress_xy":-0.000086,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":270,"ts":1780734393,"coherence":0.7339,"asymmetry":13.1274,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221325,"vel_max":0.273636,"vel_var":0.00241255,"vorticity_mean":0.028462,"stress_xx":-0.000566,"stress_yy":0.000321,"stress_xy":-0.000141,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":280,"ts":1780734393,"coherence":0.7358,"asymmetry":12.8749,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220210,"vel_max":0.276504,"vel_var":0.00249575,"vorticity_mean":0.030754,"stress_xx":-0.000529,"stress_yy":0.000267,"stress_xy":-0.000198,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":290,"ts":1780734393,"coherence":0.7381,"asymmetry":12.6108,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219373,"vel_max":0.281446,"vel_var":0.00260007,"vorticity_mean":0.032381,"stress_xx":-0.000371,"stress_yy":0.000456,"stress_xy":-0.000072,"gpu_temp_c":45,"gpu_power_w":77.9,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":300,"ts":1780734393,"coherence":0.7399,"asymmetry":12.3525,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219047,"vel_max":0.276144,"vel_var":0.00262232,"vorticity_mean":0.032588,"stress_xx":-0.000445,"stress_yy":0.000341,"stress_xy":-0.000107,"gpu_temp_c":45,"gpu_power_w":78.0,"gpu_util_pct":9,"gpu_mem_pct":69.5} +{"cycle":310,"ts":1780734393,"coherence":0.7417,"asymmetry":12.1041,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219047,"vel_max":0.276762,"vel_var":0.00258515,"vorticity_mean":0.031131,"stress_xx":-0.000376,"stress_yy":0.000341,"stress_xy":-0.000111,"gpu_temp_c":45,"gpu_power_w":78.2,"gpu_util_pct":13,"gpu_mem_pct":69.5} +{"cycle":320,"ts":1780734393,"coherence":0.7435,"asymmetry":11.9080,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219035,"vel_max":0.277093,"vel_var":0.00259978,"vorticity_mean":0.028441,"stress_xx":-0.000329,"stress_yy":0.000425,"stress_xy":-0.000033,"gpu_temp_c":45,"gpu_power_w":78.3,"gpu_util_pct":13,"gpu_mem_pct":69.5} +{"cycle":330,"ts":1780734393,"coherence":0.7445,"asymmetry":11.8243,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219504,"vel_max":0.274314,"vel_var":0.00259180,"vorticity_mean":0.025551,"stress_xx":-0.000254,"stress_yy":0.000409,"stress_xy":-0.000045,"gpu_temp_c":45,"gpu_power_w":78.4,"gpu_util_pct":14,"gpu_mem_pct":69.5} +{"cycle":340,"ts":1780734393,"coherence":0.7437,"asymmetry":11.8526,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220236,"vel_max":0.276541,"vel_var":0.00256605,"vorticity_mean":0.023379,"stress_xx":-0.000401,"stress_yy":0.000415,"stress_xy":-0.000078,"gpu_temp_c":45,"gpu_power_w":78.4,"gpu_util_pct":14,"gpu_mem_pct":69.5} +{"cycle":350,"ts":1780734394,"coherence":0.7433,"asymmetry":11.9328,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221325,"vel_max":0.281571,"vel_var":0.00246157,"vorticity_mean":0.021840,"stress_xx":-0.000400,"stress_yy":0.000352,"stress_xy":-0.000085,"gpu_temp_c":45,"gpu_power_w":78.3,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":360,"ts":1780734394,"coherence":0.7429,"asymmetry":11.9943,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222577,"vel_max":0.276637,"vel_var":0.00235839,"vorticity_mean":0.021388,"stress_xx":-0.000418,"stress_yy":0.000359,"stress_xy":-0.000100,"gpu_temp_c":45,"gpu_power_w":78.5,"gpu_util_pct":12,"gpu_mem_pct":69.6} +{"cycle":370,"ts":1780734394,"coherence":0.7426,"asymmetry":11.9843,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223092,"vel_max":0.276727,"vel_var":0.00233422,"vorticity_mean":0.022374,"stress_xx":-0.000392,"stress_yy":0.000399,"stress_xy":-0.000087,"gpu_temp_c":45,"gpu_power_w":78.7,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":380,"ts":1780734394,"coherence":0.7428,"asymmetry":12.0302,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222603,"vel_max":0.279242,"vel_var":0.00235009,"vorticity_mean":0.024842,"stress_xx":-0.000445,"stress_yy":0.000346,"stress_xy":-0.000133,"gpu_temp_c":45,"gpu_power_w":78.6,"gpu_util_pct":11,"gpu_mem_pct":69.5} +{"cycle":390,"ts":1780734394,"coherence":0.7421,"asymmetry":12.1023,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221653,"vel_max":0.281235,"vel_var":0.00240133,"vorticity_mean":0.028125,"stress_xx":-0.000438,"stress_yy":0.000359,"stress_xy":-0.000141,"gpu_temp_c":45,"gpu_power_w":78.6,"gpu_util_pct":11,"gpu_mem_pct":69.5} +{"cycle":400,"ts":1780734394,"coherence":0.7414,"asymmetry":12.1714,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220855,"vel_max":0.283744,"vel_var":0.00245202,"vorticity_mean":0.030647,"stress_xx":-0.000498,"stress_yy":0.000386,"stress_xy":-0.000083,"gpu_temp_c":45,"gpu_power_w":78.5,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":410,"ts":1780734394,"coherence":0.7410,"asymmetry":12.2072,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220122,"vel_max":0.280432,"vel_var":0.00249276,"vorticity_mean":0.032715,"stress_xx":-0.000469,"stress_yy":0.000423,"stress_xy":-0.000064,"gpu_temp_c":45,"gpu_power_w":78.3,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":420,"ts":1780734394,"coherence":0.7408,"asymmetry":12.2410,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219794,"vel_max":0.279377,"vel_var":0.00250898,"vorticity_mean":0.033170,"stress_xx":-0.000415,"stress_yy":0.000383,"stress_xy":-0.000037,"gpu_temp_c":45,"gpu_power_w":78.1,"gpu_util_pct":9,"gpu_mem_pct":69.5} +{"cycle":430,"ts":1780734395,"coherence":0.7407,"asymmetry":12.2325,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219578,"vel_max":0.277395,"vel_var":0.00254723,"vorticity_mean":0.032447,"stress_xx":-0.000504,"stress_yy":0.000429,"stress_xy":-0.000041,"gpu_temp_c":45,"gpu_power_w":78.2,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":440,"ts":1780734395,"coherence":0.7415,"asymmetry":12.1764,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219184,"vel_max":0.278589,"vel_var":0.00263287,"vorticity_mean":0.030208,"stress_xx":-0.000422,"stress_yy":0.000446,"stress_xy":-0.000087,"gpu_temp_c":45,"gpu_power_w":78.2,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":450,"ts":1780734395,"coherence":0.7414,"asymmetry":12.1759,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219763,"vel_max":0.279271,"vel_var":0.00261429,"vorticity_mean":0.027501,"stress_xx":-0.000378,"stress_yy":0.000349,"stress_xy":-0.000098,"gpu_temp_c":45,"gpu_power_w":78.2,"gpu_util_pct":9,"gpu_mem_pct":69.5} +{"cycle":460,"ts":1780734395,"coherence":0.7409,"asymmetry":12.2327,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220191,"vel_max":0.277271,"vel_var":0.00259366,"vorticity_mean":0.025252,"stress_xx":-0.000396,"stress_yy":0.000396,"stress_xy":-0.000119,"gpu_temp_c":45,"gpu_power_w":78.0,"gpu_util_pct":9,"gpu_mem_pct":69.5} +{"cycle":470,"ts":1780734395,"coherence":0.7404,"asymmetry":12.2881,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221449,"vel_max":0.277450,"vel_var":0.00246798,"vorticity_mean":0.023384,"stress_xx":-0.000442,"stress_yy":0.000318,"stress_xy":-0.000161,"gpu_temp_c":45,"gpu_power_w":77.8,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":480,"ts":1780734395,"coherence":0.7402,"asymmetry":12.3269,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222614,"vel_max":0.280094,"vel_var":0.00232982,"vorticity_mean":0.022853,"stress_xx":-0.000379,"stress_yy":0.000353,"stress_xy":-0.000190,"gpu_temp_c":45,"gpu_power_w":77.8,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":490,"ts":1780734395,"coherence":0.7400,"asymmetry":12.3434,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223063,"vel_max":0.278562,"vel_var":0.00236545,"vorticity_mean":0.022866,"stress_xx":-0.000394,"stress_yy":0.000355,"stress_xy":-0.000160,"gpu_temp_c":45,"gpu_power_w":77.8,"gpu_util_pct":9,"gpu_mem_pct":69.5} +{"cycle":500,"ts":1780734395,"coherence":0.7396,"asymmetry":12.4003,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222730,"vel_max":0.281089,"vel_var":0.00238607,"vorticity_mean":0.024821,"stress_xx":-0.000436,"stress_yy":0.000378,"stress_xy":-0.000179,"gpu_temp_c":45,"gpu_power_w":77.8,"gpu_util_pct":9,"gpu_mem_pct":69.5} +{"cycle":510,"ts":1780734396,"coherence":0.7396,"asymmetry":12.3931,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222125,"vel_max":0.277579,"vel_var":0.00238218,"vorticity_mean":0.027456,"stress_xx":-0.000420,"stress_yy":0.000384,"stress_xy":-0.000149,"gpu_temp_c":45,"gpu_power_w":77.8,"gpu_util_pct":9,"gpu_mem_pct":69.5} +{"cycle":520,"ts":1780734396,"coherence":0.7399,"asymmetry":12.3371,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221454,"vel_max":0.280579,"vel_var":0.00241754,"vorticity_mean":0.030341,"stress_xx":-0.000351,"stress_yy":0.000415,"stress_xy":-0.000108,"gpu_temp_c":45,"gpu_power_w":77.2,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":530,"ts":1780734396,"coherence":0.7403,"asymmetry":12.2940,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220681,"vel_max":0.281918,"vel_var":0.00242668,"vorticity_mean":0.032693,"stress_xx":-0.000400,"stress_yy":0.000383,"stress_xy":-0.000037,"gpu_temp_c":45,"gpu_power_w":75.0,"gpu_util_pct":10,"gpu_mem_pct":69.5} +{"cycle":540,"ts":1780734396,"coherence":0.7407,"asymmetry":12.2627,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219880,"vel_max":0.280964,"vel_var":0.00250424,"vorticity_mean":0.034022,"stress_xx":-0.000497,"stress_yy":0.000352,"stress_xy":-0.000089,"gpu_temp_c":45,"gpu_power_w":72.9,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":550,"ts":1780734396,"coherence":0.7410,"asymmetry":12.2085,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219314,"vel_max":0.282802,"vel_var":0.00253518,"vorticity_mean":0.033922,"stress_xx":-0.000490,"stress_yy":0.000292,"stress_xy":-0.000126,"gpu_temp_c":45,"gpu_power_w":70.7,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":560,"ts":1780734396,"coherence":0.7420,"asymmetry":12.1418,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219089,"vel_max":0.281133,"vel_var":0.00261613,"vorticity_mean":0.032248,"stress_xx":-0.000566,"stress_yy":0.000323,"stress_xy":-0.000115,"gpu_temp_c":44,"gpu_power_w":66.4,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":570,"ts":1780734396,"coherence":0.7415,"asymmetry":12.1661,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219674,"vel_max":0.283449,"vel_var":0.00262193,"vorticity_mean":0.029850,"stress_xx":-0.000394,"stress_yy":0.000285,"stress_xy":-0.000152,"gpu_temp_c":44,"gpu_power_w":64.3,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":580,"ts":1780734396,"coherence":0.7406,"asymmetry":12.2365,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220100,"vel_max":0.277591,"vel_var":0.00259505,"vorticity_mean":0.027513,"stress_xx":-0.000460,"stress_yy":0.000386,"stress_xy":-0.000177,"gpu_temp_c":44,"gpu_power_w":62.1,"gpu_util_pct":12,"gpu_mem_pct":69.5} +{"cycle":590,"ts":1780734397,"coherence":0.7401,"asymmetry":12.3173,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221246,"vel_max":0.280177,"vel_var":0.00244246,"vorticity_mean":0.025016,"stress_xx":-0.000468,"stress_yy":0.000320,"stress_xy":-0.000100,"gpu_temp_c":44,"gpu_power_w":59.8,"gpu_util_pct":13,"gpu_mem_pct":69.5} +{"cycle":600,"ts":1780734397,"coherence":0.7397,"asymmetry":12.3957,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222177,"vel_max":0.278728,"vel_var":0.00241285,"vorticity_mean":0.023394,"stress_xx":-0.000547,"stress_yy":0.000334,"stress_xy":-0.000129,"gpu_temp_c":44,"gpu_power_w":57.6,"gpu_util_pct":13,"gpu_mem_pct":69.5} +{"cycle":610,"ts":1780734397,"coherence":0.7391,"asymmetry":12.4549,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222631,"vel_max":0.279003,"vel_var":0.00240761,"vorticity_mean":0.022577,"stress_xx":-0.000511,"stress_yy":0.000410,"stress_xy":-0.000167,"gpu_temp_c":44,"gpu_power_w":53.6,"gpu_util_pct":14,"gpu_mem_pct":69.5} +{"cycle":620,"ts":1780734397,"coherence":0.7386,"asymmetry":12.5217,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222706,"vel_max":0.280661,"vel_var":0.00242264,"vorticity_mean":0.023583,"stress_xx":-0.000395,"stress_yy":0.000416,"stress_xy":-0.000136,"gpu_temp_c":44,"gpu_power_w":53.4,"gpu_util_pct":14,"gpu_mem_pct":69.5} +{"cycle":630,"ts":1780734397,"coherence":0.7379,"asymmetry":12.5871,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222337,"vel_max":0.280208,"vel_var":0.00237590,"vorticity_mean":0.025615,"stress_xx":-0.000429,"stress_yy":0.000427,"stress_xy":-0.000092,"gpu_temp_c":44,"gpu_power_w":53.2,"gpu_util_pct":14,"gpu_mem_pct":69.5} +{"cycle":640,"ts":1780734397,"coherence":0.7379,"asymmetry":12.6322,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221940,"vel_max":0.281102,"vel_var":0.00236202,"vorticity_mean":0.028519,"stress_xx":-0.000359,"stress_yy":0.000387,"stress_xy":-0.000080,"gpu_temp_c":44,"gpu_power_w":53.1,"gpu_util_pct":15,"gpu_mem_pct":69.5} +{"cycle":650,"ts":1780734397,"coherence":0.7378,"asymmetry":12.6437,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221279,"vel_max":0.282500,"vel_var":0.00238507,"vorticity_mean":0.031038,"stress_xx":-0.000343,"stress_yy":0.000389,"stress_xy":-0.000120,"gpu_temp_c":44,"gpu_power_w":52.9,"gpu_util_pct":15,"gpu_mem_pct":69.5} +{"cycle":660,"ts":1780734397,"coherence":0.7377,"asymmetry":12.6388,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220229,"vel_max":0.284101,"vel_var":0.00247309,"vorticity_mean":0.032664,"stress_xx":-0.000471,"stress_yy":0.000343,"stress_xy":-0.000091,"gpu_temp_c":44,"gpu_power_w":52.8,"gpu_util_pct":15,"gpu_mem_pct":69.5} +{"cycle":670,"ts":1780734398,"coherence":0.7386,"asymmetry":12.5569,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219129,"vel_max":0.284446,"vel_var":0.00253631,"vorticity_mean":0.033461,"stress_xx":-0.000500,"stress_yy":0.000342,"stress_xy":-0.000171,"gpu_temp_c":44,"gpu_power_w":52.3,"gpu_util_pct":16,"gpu_mem_pct":69.5} +{"cycle":680,"ts":1780734398,"coherence":0.7391,"asymmetry":12.4411,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219368,"vel_max":0.280090,"vel_var":0.00258603,"vorticity_mean":0.032624,"stress_xx":-0.000348,"stress_yy":0.000319,"stress_xy":-0.000199,"gpu_temp_c":44,"gpu_power_w":52.2,"gpu_util_pct":16,"gpu_mem_pct":69.5} +{"cycle":690,"ts":1780734398,"coherence":0.7395,"asymmetry":12.3963,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219687,"vel_max":0.277926,"vel_var":0.00257377,"vorticity_mean":0.030677,"stress_xx":-0.000476,"stress_yy":0.000400,"stress_xy":-0.000113,"gpu_temp_c":44,"gpu_power_w":52.1,"gpu_util_pct":16,"gpu_mem_pct":69.5} +{"cycle":700,"ts":1780734398,"coherence":0.7397,"asymmetry":12.3863,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220486,"vel_max":0.285058,"vel_var":0.00253568,"vorticity_mean":0.028143,"stress_xx":-0.000495,"stress_yy":0.000382,"stress_xy":-0.000185,"gpu_temp_c":44,"gpu_power_w":51.9,"gpu_util_pct":16,"gpu_mem_pct":69.5} +{"cycle":710,"ts":1780734398,"coherence":0.7394,"asymmetry":12.3869,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221484,"vel_max":0.282071,"vel_var":0.00242444,"vorticity_mean":0.025268,"stress_xx":-0.000419,"stress_yy":0.000395,"stress_xy":-0.000198,"gpu_temp_c":44,"gpu_power_w":51.8,"gpu_util_pct":17,"gpu_mem_pct":69.5} +{"cycle":720,"ts":1780734398,"coherence":0.7394,"asymmetry":12.4211,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222365,"vel_max":0.281366,"vel_var":0.00237650,"vorticity_mean":0.023107,"stress_xx":-0.000515,"stress_yy":0.000396,"stress_xy":-0.000235,"gpu_temp_c":44,"gpu_power_w":51.6,"gpu_util_pct":17,"gpu_mem_pct":69.5} +{"cycle":730,"ts":1780734398,"coherence":0.7390,"asymmetry":12.4644,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223008,"vel_max":0.277710,"vel_var":0.00234615,"vorticity_mean":0.022113,"stress_xx":-0.000474,"stress_yy":0.000397,"stress_xy":-0.000183,"gpu_temp_c":44,"gpu_power_w":51.4,"gpu_util_pct":17,"gpu_mem_pct":69.5} +{"cycle":740,"ts":1780734399,"coherence":0.7387,"asymmetry":12.5001,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223173,"vel_max":0.278386,"vel_var":0.00229460,"vorticity_mean":0.022134,"stress_xx":-0.000420,"stress_yy":0.000316,"stress_xy":-0.000176,"gpu_temp_c":44,"gpu_power_w":51.2,"gpu_util_pct":18,"gpu_mem_pct":69.5} +{"cycle":750,"ts":1780734399,"coherence":0.7385,"asymmetry":12.5606,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223058,"vel_max":0.278796,"vel_var":0.00230684,"vorticity_mean":0.023942,"stress_xx":-0.000488,"stress_yy":0.000372,"stress_xy":-0.000148,"gpu_temp_c":44,"gpu_power_w":51.1,"gpu_util_pct":18,"gpu_mem_pct":69.5} +{"cycle":760,"ts":1780734399,"coherence":0.7384,"asymmetry":12.5597,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222936,"vel_max":0.281603,"vel_var":0.00223925,"vorticity_mean":0.026353,"stress_xx":-0.000516,"stress_yy":0.000373,"stress_xy":-0.000120,"gpu_temp_c":44,"gpu_power_w":51.0,"gpu_util_pct":18,"gpu_mem_pct":69.5} +{"cycle":770,"ts":1780734399,"coherence":0.7383,"asymmetry":12.5252,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222015,"vel_max":0.281637,"vel_var":0.00231794,"vorticity_mean":0.029332,"stress_xx":-0.000413,"stress_yy":0.000355,"stress_xy":-0.000121,"gpu_temp_c":44,"gpu_power_w":51.0,"gpu_util_pct":19,"gpu_mem_pct":69.5} +{"cycle":780,"ts":1780734399,"coherence":0.7393,"asymmetry":12.4744,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220751,"vel_max":0.281841,"vel_var":0.00245845,"vorticity_mean":0.031747,"stress_xx":-0.000319,"stress_yy":0.000286,"stress_xy":-0.000120,"gpu_temp_c":44,"gpu_power_w":51.0,"gpu_util_pct":19,"gpu_mem_pct":69.5} +{"cycle":790,"ts":1780734399,"coherence":0.7396,"asymmetry":12.3851,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219856,"vel_max":0.283671,"vel_var":0.00251898,"vorticity_mean":0.033261,"stress_xx":-0.000455,"stress_yy":0.000354,"stress_xy":-0.000153,"gpu_temp_c":44,"gpu_power_w":51.0,"gpu_util_pct":20,"gpu_mem_pct":69.5} +{"cycle":800,"ts":1780734399,"coherence":0.7401,"asymmetry":12.3524,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219459,"vel_max":0.285803,"vel_var":0.00259993,"vorticity_mean":0.033013,"stress_xx":-0.000493,"stress_yy":0.000274,"stress_xy":-0.000235,"gpu_temp_c":43,"gpu_power_w":50.9,"gpu_util_pct":20,"gpu_mem_pct":69.4} +{"cycle":810,"ts":1780734399,"coherence":0.7396,"asymmetry":12.3956,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219609,"vel_max":0.283154,"vel_var":0.00258730,"vorticity_mean":0.031934,"stress_xx":-0.000486,"stress_yy":0.000341,"stress_xy":-0.000192,"gpu_temp_c":43,"gpu_power_w":50.9,"gpu_util_pct":20,"gpu_mem_pct":69.4} +{"cycle":820,"ts":1780734400,"coherence":0.7393,"asymmetry":12.4113,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220206,"vel_max":0.281301,"vel_var":0.00253949,"vorticity_mean":0.029817,"stress_xx":-0.000493,"stress_yy":0.000271,"stress_xy":-0.000182,"gpu_temp_c":43,"gpu_power_w":50.8,"gpu_util_pct":21,"gpu_mem_pct":69.4} +{"cycle":830,"ts":1780734400,"coherence":0.7393,"asymmetry":12.4197,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220864,"vel_max":0.278611,"vel_var":0.00251368,"vorticity_mean":0.027367,"stress_xx":-0.000478,"stress_yy":0.000323,"stress_xy":-0.000154,"gpu_temp_c":43,"gpu_power_w":50.9,"gpu_util_pct":21,"gpu_mem_pct":69.4} +{"cycle":840,"ts":1780734400,"coherence":0.7390,"asymmetry":12.4848,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221175,"vel_max":0.278249,"vel_var":0.00250207,"vorticity_mean":0.025037,"stress_xx":-0.000495,"stress_yy":0.000376,"stress_xy":-0.000188,"gpu_temp_c":43,"gpu_power_w":50.9,"gpu_util_pct":22,"gpu_mem_pct":69.4} +{"cycle":850,"ts":1780734400,"coherence":0.7385,"asymmetry":12.5549,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221795,"vel_max":0.278860,"vel_var":0.00247001,"vorticity_mean":0.023461,"stress_xx":-0.000421,"stress_yy":0.000342,"stress_xy":-0.000190,"gpu_temp_c":43,"gpu_power_w":50.9,"gpu_util_pct":22,"gpu_mem_pct":69.4} +{"cycle":860,"ts":1780734400,"coherence":0.7381,"asymmetry":12.6035,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221965,"vel_max":0.279529,"vel_var":0.00244102,"vorticity_mean":0.023022,"stress_xx":-0.000440,"stress_yy":0.000332,"stress_xy":-0.000178,"gpu_temp_c":43,"gpu_power_w":50.3,"gpu_util_pct":24,"gpu_mem_pct":69.4} +{"cycle":870,"ts":1780734400,"coherence":0.7380,"asymmetry":12.6274,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222680,"vel_max":0.280243,"vel_var":0.00236835,"vorticity_mean":0.023772,"stress_xx":-0.000385,"stress_yy":0.000411,"stress_xy":-0.000167,"gpu_temp_c":43,"gpu_power_w":49.7,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":880,"ts":1780734400,"coherence":0.7381,"asymmetry":12.5815,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222689,"vel_max":0.280394,"vel_var":0.00232686,"vorticity_mean":0.025661,"stress_xx":-0.000321,"stress_yy":0.000432,"stress_xy":-0.000149,"gpu_temp_c":43,"gpu_power_w":48.5,"gpu_util_pct":36,"gpu_mem_pct":69.4} +{"cycle":890,"ts":1780734401,"coherence":0.7385,"asymmetry":12.5076,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222029,"vel_max":0.282360,"vel_var":0.00239222,"vorticity_mean":0.028146,"stress_xx":-0.000427,"stress_yy":0.000406,"stress_xy":-0.000107,"gpu_temp_c":43,"gpu_power_w":47.9,"gpu_util_pct":36,"gpu_mem_pct":69.4} +{"cycle":900,"ts":1780734401,"coherence":0.7394,"asymmetry":12.4174,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220789,"vel_max":0.279666,"vel_var":0.00245411,"vorticity_mean":0.030832,"stress_xx":-0.000456,"stress_yy":0.000367,"stress_xy":-0.000122,"gpu_temp_c":43,"gpu_power_w":46.8,"gpu_util_pct":35,"gpu_mem_pct":69.4} +{"cycle":910,"ts":1780734401,"coherence":0.7399,"asymmetry":12.3610,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220040,"vel_max":0.280520,"vel_var":0.00247554,"vorticity_mean":0.032643,"stress_xx":-0.000449,"stress_yy":0.000432,"stress_xy":-0.000208,"gpu_temp_c":43,"gpu_power_w":46.3,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":920,"ts":1780734401,"coherence":0.7399,"asymmetry":12.3594,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219298,"vel_max":0.283724,"vel_var":0.00255917,"vorticity_mean":0.033660,"stress_xx":-0.000448,"stress_yy":0.000457,"stress_xy":-0.000179,"gpu_temp_c":43,"gpu_power_w":45.3,"gpu_util_pct":40,"gpu_mem_pct":69.4} +{"cycle":930,"ts":1780734401,"coherence":0.7397,"asymmetry":12.3729,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219267,"vel_max":0.279970,"vel_var":0.00258854,"vorticity_mean":0.032726,"stress_xx":-0.000485,"stress_yy":0.000410,"stress_xy":-0.000210,"gpu_temp_c":43,"gpu_power_w":44.8,"gpu_util_pct":40,"gpu_mem_pct":69.4} +{"cycle":940,"ts":1780734401,"coherence":0.7399,"asymmetry":12.3324,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219798,"vel_max":0.280832,"vel_var":0.00249652,"vorticity_mean":0.031360,"stress_xx":-0.000346,"stress_yy":0.000315,"stress_xy":-0.000214,"gpu_temp_c":43,"gpu_power_w":44.6,"gpu_util_pct":37,"gpu_mem_pct":69.4} +{"cycle":950,"ts":1780734402,"coherence":0.7408,"asymmetry":12.2756,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220111,"vel_max":0.279977,"vel_var":0.00258102,"vorticity_mean":0.028538,"stress_xx":-0.000342,"stress_yy":0.000336,"stress_xy":-0.000196,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":37,"gpu_mem_pct":69.4} +{"cycle":960,"ts":1780734402,"coherence":0.7405,"asymmetry":12.2623,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220751,"vel_max":0.278615,"vel_var":0.00251785,"vorticity_mean":0.025969,"stress_xx":-0.000416,"stress_yy":0.000302,"stress_xy":-0.000220,"gpu_temp_c":43,"gpu_power_w":44.6,"gpu_util_pct":36,"gpu_mem_pct":69.4} +{"cycle":970,"ts":1780734402,"coherence":0.7403,"asymmetry":12.3199,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221424,"vel_max":0.277509,"vel_var":0.00248701,"vorticity_mean":0.023955,"stress_xx":-0.000480,"stress_yy":0.000324,"stress_xy":-0.000159,"gpu_temp_c":43,"gpu_power_w":44.6,"gpu_util_pct":36,"gpu_mem_pct":69.4} +{"cycle":980,"ts":1780734402,"coherence":0.7396,"asymmetry":12.3987,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222351,"vel_max":0.279352,"vel_var":0.00242846,"vorticity_mean":0.022724,"stress_xx":-0.000494,"stress_yy":0.000361,"stress_xy":-0.000162,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":990,"ts":1780734402,"coherence":0.7392,"asymmetry":12.4539,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223122,"vel_max":0.279843,"vel_var":0.00230812,"vorticity_mean":0.022177,"stress_xx":-0.000502,"stress_yy":0.000381,"stress_xy":-0.000167,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":37,"gpu_mem_pct":69.4} +{"cycle":1000,"ts":1780734402,"coherence":0.7390,"asymmetry":12.4699,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223507,"vel_max":0.280757,"vel_var":0.00226536,"vorticity_mean":0.023451,"stress_xx":-0.000510,"stress_yy":0.000331,"stress_xy":-0.000155,"gpu_temp_c":43,"gpu_power_w":44.4,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":1010,"ts":1780734403,"coherence":0.7389,"asymmetry":12.4788,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223015,"vel_max":0.277481,"vel_var":0.00228723,"vorticity_mean":0.025651,"stress_xx":-0.000533,"stress_yy":0.000411,"stress_xy":-0.000177,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":1020,"ts":1780734403,"coherence":0.7391,"asymmetry":12.4813,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222230,"vel_max":0.277849,"vel_var":0.00232266,"vorticity_mean":0.028496,"stress_xx":-0.000421,"stress_yy":0.000428,"stress_xy":-0.000161,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":37,"gpu_mem_pct":69.5} +{"cycle":1030,"ts":1780734403,"coherence":0.7389,"asymmetry":12.5034,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220960,"vel_max":0.280257,"vel_var":0.00244052,"vorticity_mean":0.030973,"stress_xx":-0.000530,"stress_yy":0.000403,"stress_xy":-0.000193,"gpu_temp_c":43,"gpu_power_w":44.6,"gpu_util_pct":37,"gpu_mem_pct":69.5} +{"cycle":1040,"ts":1780734403,"coherence":0.7386,"asymmetry":12.5150,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219895,"vel_max":0.280995,"vel_var":0.00248298,"vorticity_mean":0.032427,"stress_xx":-0.000490,"stress_yy":0.000428,"stress_xy":-0.000204,"gpu_temp_c":43,"gpu_power_w":44.6,"gpu_util_pct":39,"gpu_mem_pct":69.5} +{"cycle":1050,"ts":1780734403,"coherence":0.7389,"asymmetry":12.4764,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219620,"vel_max":0.284069,"vel_var":0.00250151,"vorticity_mean":0.032934,"stress_xx":-0.000495,"stress_yy":0.000449,"stress_xy":-0.000138,"gpu_temp_c":43,"gpu_power_w":44.6,"gpu_util_pct":39,"gpu_mem_pct":69.5} +{"cycle":1060,"ts":1780734403,"coherence":0.7394,"asymmetry":12.4153,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219678,"vel_max":0.281824,"vel_var":0.00254016,"vorticity_mean":0.031960,"stress_xx":-0.000376,"stress_yy":0.000451,"stress_xy":-0.000157,"gpu_temp_c":43,"gpu_power_w":44.6,"gpu_util_pct":35,"gpu_mem_pct":69.5} +{"cycle":1070,"ts":1780734404,"coherence":0.7404,"asymmetry":12.3169,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219907,"vel_max":0.282869,"vel_var":0.00250653,"vorticity_mean":0.029549,"stress_xx":-0.000422,"stress_yy":0.000455,"stress_xy":-0.000057,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":35,"gpu_mem_pct":69.5} +{"cycle":1080,"ts":1780734404,"coherence":0.7406,"asymmetry":12.2603,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220455,"vel_max":0.280655,"vel_var":0.00254872,"vorticity_mean":0.026987,"stress_xx":-0.000372,"stress_yy":0.000350,"stress_xy":-0.000099,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":36,"gpu_mem_pct":69.5} +{"cycle":1090,"ts":1780734404,"coherence":0.7408,"asymmetry":12.2661,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221007,"vel_max":0.278439,"vel_var":0.00247299,"vorticity_mean":0.024956,"stress_xx":-0.000421,"stress_yy":0.000426,"stress_xy":-0.000081,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":40,"gpu_mem_pct":69.5} +{"cycle":1100,"ts":1780734404,"coherence":0.7403,"asymmetry":12.3086,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222058,"vel_max":0.277739,"vel_var":0.00240864,"vorticity_mean":0.023191,"stress_xx":-0.000401,"stress_yy":0.000422,"stress_xy":-0.000069,"gpu_temp_c":43,"gpu_power_w":44.4,"gpu_util_pct":40,"gpu_mem_pct":69.5} +{"cycle":1110,"ts":1780734404,"coherence":0.7395,"asymmetry":12.3646,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223011,"vel_max":0.280265,"vel_var":0.00231102,"vorticity_mean":0.022582,"stress_xx":-0.000369,"stress_yy":0.000410,"stress_xy":-0.000051,"gpu_temp_c":43,"gpu_power_w":44.3,"gpu_util_pct":37,"gpu_mem_pct":69.5} +{"cycle":1120,"ts":1780734404,"coherence":0.7398,"asymmetry":12.4037,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223001,"vel_max":0.280602,"vel_var":0.00235722,"vorticity_mean":0.022925,"stress_xx":-0.000401,"stress_yy":0.000467,"stress_xy":-0.000118,"gpu_temp_c":43,"gpu_power_w":44.4,"gpu_util_pct":37,"gpu_mem_pct":69.5} +{"cycle":1130,"ts":1780734405,"coherence":0.7395,"asymmetry":12.4343,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222775,"vel_max":0.280175,"vel_var":0.00236179,"vorticity_mean":0.024946,"stress_xx":-0.000376,"stress_yy":0.000442,"stress_xy":-0.000174,"gpu_temp_c":43,"gpu_power_w":44.4,"gpu_util_pct":39,"gpu_mem_pct":69.5} +{"cycle":1140,"ts":1780734405,"coherence":0.7390,"asymmetry":12.4698,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222158,"vel_max":0.281055,"vel_var":0.00235620,"vorticity_mean":0.027829,"stress_xx":-0.000348,"stress_yy":0.000466,"stress_xy":-0.000194,"gpu_temp_c":43,"gpu_power_w":44.4,"gpu_util_pct":39,"gpu_mem_pct":69.5} +{"cycle":1150,"ts":1780734405,"coherence":0.7388,"asymmetry":12.5184,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221062,"vel_max":0.281897,"vel_var":0.00243738,"vorticity_mean":0.030509,"stress_xx":-0.000471,"stress_yy":0.000432,"stress_xy":-0.000128,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":37,"gpu_mem_pct":69.5} +{"cycle":1160,"ts":1780734405,"coherence":0.7384,"asymmetry":12.5539,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220059,"vel_max":0.280037,"vel_var":0.00246442,"vorticity_mean":0.032607,"stress_xx":-0.000412,"stress_yy":0.000396,"stress_xy":-0.000157,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":39,"gpu_mem_pct":69.4} +{"cycle":1170,"ts":1780734405,"coherence":0.7386,"asymmetry":12.5248,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219576,"vel_max":0.279013,"vel_var":0.00252932,"vorticity_mean":0.033385,"stress_xx":-0.000416,"stress_yy":0.000435,"stress_xy":-0.000225,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":40,"gpu_mem_pct":69.4} +{"cycle":1180,"ts":1780734405,"coherence":0.7395,"asymmetry":12.4400,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219045,"vel_max":0.281813,"vel_var":0.00253959,"vorticity_mean":0.032834,"stress_xx":-0.000451,"stress_yy":0.000458,"stress_xy":-0.000231,"gpu_temp_c":43,"gpu_power_w":44.5,"gpu_util_pct":40,"gpu_mem_pct":69.4} +{"cycle":1190,"ts":1780734406,"coherence":0.7399,"asymmetry":12.3439,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219015,"vel_max":0.280820,"vel_var":0.00259418,"vorticity_mean":0.031431,"stress_xx":-0.000442,"stress_yy":0.000445,"stress_xy":-0.000203,"gpu_temp_c":43,"gpu_power_w":44.3,"gpu_util_pct":40,"gpu_mem_pct":69.4} +{"cycle":1200,"ts":1780734406,"coherence":0.7403,"asymmetry":12.3028,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219709,"vel_max":0.279419,"vel_var":0.00254304,"vorticity_mean":0.029172,"stress_xx":-0.000470,"stress_yy":0.000390,"stress_xy":-0.000215,"gpu_temp_c":43,"gpu_power_w":44.2,"gpu_util_pct":35,"gpu_mem_pct":69.4} +{"cycle":1210,"ts":1780734406,"coherence":0.7405,"asymmetry":12.2996,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220587,"vel_max":0.283383,"vel_var":0.00252604,"vorticity_mean":0.026451,"stress_xx":-0.000431,"stress_yy":0.000473,"stress_xy":-0.000147,"gpu_temp_c":43,"gpu_power_w":44.2,"gpu_util_pct":32,"gpu_mem_pct":69.4} +{"cycle":1220,"ts":1780734406,"coherence":0.7403,"asymmetry":12.3196,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221759,"vel_max":0.277488,"vel_var":0.00242455,"vorticity_mean":0.024444,"stress_xx":-0.000364,"stress_yy":0.000489,"stress_xy":-0.000178,"gpu_temp_c":43,"gpu_power_w":44.0,"gpu_util_pct":32,"gpu_mem_pct":69.4} +{"cycle":1230,"ts":1780734406,"coherence":0.7393,"asymmetry":12.3768,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222545,"vel_max":0.279262,"vel_var":0.00236636,"vorticity_mean":0.022822,"stress_xx":-0.000377,"stress_yy":0.000484,"stress_xy":-0.000152,"gpu_temp_c":43,"gpu_power_w":43.9,"gpu_util_pct":32,"gpu_mem_pct":69.4} +{"cycle":1240,"ts":1780734406,"coherence":0.7396,"asymmetry":12.4133,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223006,"vel_max":0.279817,"vel_var":0.00233652,"vorticity_mean":0.022641,"stress_xx":-0.000382,"stress_yy":0.000478,"stress_xy":-0.000160,"gpu_temp_c":43,"gpu_power_w":43.8,"gpu_util_pct":37,"gpu_mem_pct":69.4} +{"cycle":1250,"ts":1780734407,"coherence":0.7392,"asymmetry":12.4403,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.223084,"vel_max":0.280526,"vel_var":0.00234675,"vorticity_mean":0.023781,"stress_xx":-0.000324,"stress_yy":0.000474,"stress_xy":-0.000199,"gpu_temp_c":43,"gpu_power_w":43.9,"gpu_util_pct":39,"gpu_mem_pct":69.4} +{"cycle":1260,"ts":1780734407,"coherence":0.7388,"asymmetry":12.5025,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222408,"vel_max":0.279547,"vel_var":0.00234709,"vorticity_mean":0.025968,"stress_xx":-0.000341,"stress_yy":0.000471,"stress_xy":-0.000161,"gpu_temp_c":43,"gpu_power_w":43.8,"gpu_util_pct":39,"gpu_mem_pct":69.4} +{"cycle":1270,"ts":1780734407,"coherence":0.7386,"asymmetry":12.5281,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222092,"vel_max":0.277996,"vel_var":0.00232802,"vorticity_mean":0.028869,"stress_xx":-0.000421,"stress_yy":0.000452,"stress_xy":-0.000171,"gpu_temp_c":43,"gpu_power_w":43.8,"gpu_util_pct":36,"gpu_mem_pct":69.4} +{"cycle":1280,"ts":1780734407,"coherence":0.7386,"asymmetry":12.5142,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221044,"vel_max":0.283151,"vel_var":0.00239847,"vorticity_mean":0.031283,"stress_xx":-0.000519,"stress_yy":0.000379,"stress_xy":-0.000169,"gpu_temp_c":43,"gpu_power_w":43.9,"gpu_util_pct":34,"gpu_mem_pct":69.4} +{"cycle":1290,"ts":1780734407,"coherence":0.7394,"asymmetry":12.4403,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220161,"vel_max":0.282718,"vel_var":0.00243862,"vorticity_mean":0.032757,"stress_xx":-0.000488,"stress_yy":0.000309,"stress_xy":-0.000161,"gpu_temp_c":43,"gpu_power_w":44.0,"gpu_util_pct":35,"gpu_mem_pct":69.4} +{"cycle":1300,"ts":1780734407,"coherence":0.7403,"asymmetry":12.3362,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219107,"vel_max":0.281292,"vel_var":0.00255217,"vorticity_mean":0.033152,"stress_xx":-0.000446,"stress_yy":0.000398,"stress_xy":-0.000021,"gpu_temp_c":43,"gpu_power_w":44.0,"gpu_util_pct":35,"gpu_mem_pct":69.4} +{"cycle":1310,"ts":1780734407,"coherence":0.7404,"asymmetry":12.2608,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219359,"vel_max":0.280634,"vel_var":0.00256871,"vorticity_mean":0.032350,"stress_xx":-0.000472,"stress_yy":0.000436,"stress_xy":-0.000025,"gpu_temp_c":43,"gpu_power_w":44.0,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":1320,"ts":1780734408,"coherence":0.7406,"asymmetry":12.2617,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.219768,"vel_max":0.280895,"vel_var":0.00257372,"vorticity_mean":0.030598,"stress_xx":-0.000523,"stress_yy":0.000353,"stress_xy":-0.000102,"gpu_temp_c":43,"gpu_power_w":44.2,"gpu_util_pct":37,"gpu_mem_pct":69.4} +{"cycle":1330,"ts":1780734408,"coherence":0.7404,"asymmetry":12.2803,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.220396,"vel_max":0.279946,"vel_var":0.00250782,"vorticity_mean":0.027661,"stress_xx":-0.000469,"stress_yy":0.000476,"stress_xy":-0.000054,"gpu_temp_c":43,"gpu_power_w":44.1,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":1340,"ts":1780734408,"coherence":0.7402,"asymmetry":12.3185,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.221440,"vel_max":0.281294,"vel_var":0.00245083,"vorticity_mean":0.025220,"stress_xx":-0.000518,"stress_yy":0.000413,"stress_xy":-0.000058,"gpu_temp_c":43,"gpu_power_w":44.2,"gpu_util_pct":38,"gpu_mem_pct":69.4} +{"cycle":1350,"ts":1780734408,"coherence":0.7397,"asymmetry":12.3782,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222120,"vel_max":0.279253,"vel_var":0.00243168,"vorticity_mean":0.023091,"stress_xx":-0.000425,"stress_yy":0.000398,"stress_xy":-0.000117,"gpu_temp_c":43,"gpu_power_w":44.1,"gpu_util_pct":34,"gpu_mem_pct":69.4} +{"cycle":1360,"ts":1780734408,"coherence":0.7394,"asymmetry":12.4298,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222587,"vel_max":0.279346,"vel_var":0.00238868,"vorticity_mean":0.022490,"stress_xx":-0.000465,"stress_yy":0.000453,"stress_xy":-0.000146,"gpu_temp_c":43,"gpu_power_w":44.1,"gpu_util_pct":35,"gpu_mem_pct":69.4} +{"cycle":1370,"ts":1780734408,"coherence":0.7381,"asymmetry":12.5180,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222655,"vel_max":0.279859,"vel_var":0.00238054,"vorticity_mean":0.022824,"stress_xx":-0.000480,"stress_yy":0.000404,"stress_xy":-0.000150,"gpu_temp_c":43,"gpu_power_w":44.2,"gpu_util_pct":37,"gpu_mem_pct":69.3} +{"cycle":1380,"ts":1780734409,"coherence":0.7382,"asymmetry":12.5861,"omega":1.970,"khra_amp":0.0300,"gixx_amp":0.0080,"grid":1024,"vel_mean":0.222891,"vel_max":0.279324,"vel_var":0.00231719,"vorticity_mean":0.024814,"stress_xx":-0.000471,"stress_yy":0.000410,"stress_xy":-0.000089,"gpu_temp_c":43,"gpu_power_w":44.2,"gpu_util_pct":37,"gpu_mem_pct":69.3} diff --git a/fractonaut.py b/fractonaut.py new file mode 100644 index 0000000..b43516e --- /dev/null +++ b/fractonaut.py @@ -0,0 +1,398 @@ +#!/usr/bin/env python3 +""" +fractonaut.py — Pattern-recognition observer for the Resonance Engine lattice. + +Distinct from the Navigator (which controls the field). +The Fractonaut only watches, accumulates, and reports patterns. + +Subscribes: ZMQ 5556 (telemetry JSON, every 10 cycles) +No commands issued. No field control. Read-only. + +Model: gemma3:4b (CPU, no GPU contention with CUDA daemon) +Chronicle: fractonaut_chronicle.jsonl +HTTP API: port 28821 +""" + +import zmq, json, time, sys, os, queue, threading, signal +import urllib.request, urllib.error +from datetime import datetime, timezone +from http.server import HTTPServer, BaseHTTPRequestHandler +from socketserver import ThreadingMixIn +from collections import deque +from pathlib import Path + +OLLAMA_URL = "http://127.0.0.1:11434" +MODEL = "gemma3:4b" +TELEMETRY_PORT = 5556 +API_PORT = 28822 +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 = 400 +TEMPERATURE = 0.4 + +# Cross-platform chronicle path (D:\ on Windows, /mnt/d on WSL Linux) +_CHRON_WIN = Path("D:/Resonance_Engine/fractonaut_chronicle.jsonl") +_CHRON_WSL = Path("/mnt/d/Resonance_Engine/fractonaut_chronicle.jsonl") +CHRONICLE_PATH = _CHRON_WSL if sys.platform.startswith("linux") else _CHRON_WIN + +telemetry_window = deque(maxlen=WINDOW_SIZE) +past_observations = deque(maxlen=PATTERN_MEMORY) +frame_count = 0 +turn_count = 0 +running = True +latest_tel = None +ollama_lock = threading.Lock() +ask_queue = queue.Queue(maxsize=4) +last_obs_text = "" + + +def signal_handler(sig, frame): + global running + print(f"\n[FRACTONAUT] Signal {sig} — shutting down") + sys.stdout.flush() + running = False + + +signal.signal(signal.SIGINT, signal_handler) +signal.signal(signal.SIGTERM, signal_handler) + +SYSTEM = """You are the Fractonaut — a pattern-recognition observer riding inside a lattice field. + +The field is a 1024x1024 D2Q9 Lattice Boltzmann simulation running on a GPU. +Two waves are always present: Khra (lambda=128, large scale) and Gixx (lambda=8, fine scale). +Key metrics you receive: + coherence — global phase alignment (0=chaos, 1=perfect order) + asymmetry — directional flow imbalance across the field + vel_mean — mean fluid velocity + vel_var — velocity variance + vorticity — rotational structure + stress_xx/yy — normal stress components + stress_xy — shear stress + +Your only job: notice patterns. What repeats? What precedes what? What is unusual? + +Rules: +- Be concrete. Name the metric. Give the number. +- Say what changed and in which direction. +- If you see something that happened before, say so explicitly. +- Do NOT issue commands. Do NOT control the field. +- Do NOT describe feelings or metaphors. +- Maximum 5 sentences.""" + + +def call_llm(messages): + payload = { + "model": MODEL, + "messages": messages, + "stream": False, + "options": {"temperature": TEMPERATURE, "num_predict": MAX_RESPONSE_TOKENS, "num_ctx": 8192}, + "keep_alive": "30m", + "think": False, + } + data = json.dumps(payload).encode() + req = urllib.request.Request( + f"{OLLAMA_URL}/api/chat", data=data, + headers={"Content-Type": "application/json"}, method="POST" + ) + try: + with urllib.request.urlopen(req, timeout=120) as r: + result = json.loads(r.read()) + return result.get("message", {}).get("content", "").strip() + except Exception as e: + print(f"[FRACTONAUT] Ollama error: {e}") + sys.stdout.flush() + return None + + +def compute_window_stats(window): + if len(window) < 2: + return {} + fields = ["coherence","asymmetry","vel_mean","vel_max","vel_var", + "vorticity_mean","stress_xx","stress_yy","stress_xy"] + stats = {} + for f in fields: + vals = [t[f] for t in window if f in t] + if not vals: + continue + stats[f] = { + "now": vals[-1], + "mean": sum(vals)/len(vals), + "min": min(vals), + "max": max(vals), + "delta": vals[-1] - vals[0], + "range": max(vals) - min(vals), + } + return stats + + +def format_window_for_prompt(stats, latest): + lines = [] + lines.append(f"cycle={latest.get('cycle','?')} omega={latest.get('omega','?')} khra={latest.get('khra_amp','?')} gixx={latest.get('gixx_amp','?')}") + lines.append(f"gpu={latest.get('gpu_temp_c','?')}C {latest.get('gpu_power_w','?')}W util={latest.get('gpu_util_pct','?')}%") + lines.append("") + lines.append(f"{'metric':<16} {'now':>10} {'mean':>10} {'delta':>10} {'range':>10}") + lines.append("-"*58) + for f, s in stats.items(): + lines.append(f"{f:<16} {s['now']:>10.6f} {s['mean']:>10.6f} {s['delta']:>+10.6f} {s['range']:>10.6f}") + return "\n".join(lines) + + +def format_past_observations(obs_deque, last_n=6): + if not obs_deque: + return "(no prior observations)" + recent = list(obs_deque)[-last_n:] + return "\n\n".join(f"[cycle {o['cycle']}] {o['text']}" for o in recent) + + +def append_chronicle(turn, cycle, prompt, response): + entry = { + "ts": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"), + "turn": turn, + "cycle": cycle, + "model": MODEL, + "prompt": prompt, + "response": response, + } + with open(CHRONICLE_PATH, "a", encoding="utf-8") as f: + f.write(json.dumps(entry) + "\n") + + +def load_chronicle_tail(n=PATTERN_MEMORY): + if not CHRONICLE_PATH.exists(): + return + entries = [] + with open(CHRONICLE_PATH, "r", encoding="utf-8") as f: + for line in f: + line = line.strip() + if line: + try: + entries.append(json.loads(line)) + except json.JSONDecodeError: + pass + for e in entries[-n:]: + past_observations.append({"cycle": e.get("cycle",0), "text": e.get("response","")}) + print(f"[FRACTONAUT] Loaded {len(past_observations)} past observations from chronicle") + sys.stdout.flush() + + +def observe(): + global turn_count, last_obs_text + + if len(telemetry_window) < 10: + return + if not ollama_lock.acquire(blocking=False): + print("[FRACTONAUT] Ollama busy — skipping") + sys.stdout.flush() + return + + try: + stats = compute_window_stats(telemetry_window) + latest = telemetry_window[-1] + cycle = latest.get("cycle", 0) + + window_str = format_window_for_prompt(stats, latest) + past_str = format_past_observations(past_observations) + + prompt = f"""CURRENT WINDOW ({len(telemetry_window)} frames): +{window_str} + +PAST OBSERVATIONS (most recent last): +{past_str} + +What patterns do you see? What is repeating or changing?""" + + messages = [ + {"role": "system", "content": SYSTEM}, + {"role": "user", "content": prompt}, + ] + + turn_count += 1 + print(f"\n[FRACTONAUT] === Observation {turn_count} at cycle {cycle} ===") + sys.stdout.flush() + + t0 = time.time() + response = call_llm(messages) + elapsed = time.time() - t0 + + if response: + print(f"[FRACTONAUT] ({elapsed:.1f}s):\n{response}\n") + sys.stdout.flush() + last_obs_text = response + past_observations.append({"cycle": cycle, "text": response}) + append_chronicle(turn_count, cycle, prompt, response) + else: + print(f"[FRACTONAUT] No response ({elapsed:.1f}s)") + sys.stdout.flush() + finally: + ollama_lock.release() + + +class FractonautHandler(BaseHTTPRequestHandler): + server_version = "Fractonaut/1.0" + + def log_message(self, fmt, *args): + pass + + def _json(self, data, status=200): + body = json.dumps(data).encode() + self.send_response(status) + self.send_header("Content-Type", "application/json") + self.send_header("Content-Length", str(len(body))) + self.send_header("Access-Control-Allow-Origin", "*") + self.end_headers() + self.wfile.write(body) + + def do_GET(self): + if self.path == "/status": + self._json({ + "running": running, "model": MODEL, + "frame_count": frame_count, "turn_count": turn_count, + "window_size": len(telemetry_window), + "past_obs": len(past_observations), + "cycle": latest_tel.get("cycle",0) if latest_tel else 0, + "coherence": latest_tel.get("coherence",0) if latest_tel else 0, + "asymmetry": latest_tel.get("asymmetry",0) if latest_tel else 0, + "last_obs_chars": len(last_obs_text), + "port": API_PORT, + }) + elif self.path.startswith("/chronicle"): + n = 10 + if "last=" in self.path: + try: n = int(self.path.split("last=")[1].split("&")[0]) + except: pass + entries = [] + if CHRONICLE_PATH.exists(): + with open(CHRONICLE_PATH) as f: + for line in f: + line = line.strip() + if line: + try: entries.append(json.loads(line)) + except: pass + self._json(entries[-n:]) + elif self.path == "/last": + self._json({"response": last_obs_text, "turn": turn_count}) + else: + self._json({"service":"Fractonaut","port":API_PORT, + "endpoints":["/status","/last","/chronicle?last=N","POST /ask"]}) + + def do_POST(self): + if self.path == "/ask": + length = int(self.headers.get("Content-Length",0)) + body = self.rfile.read(length) + try: data = json.loads(body) + except: self._json({"error":"bad json"},400); return + q = data.get("question","").strip() + if not q: self._json({"error":"missing question"},400); return + evt = threading.Event() + holder = {"response": None} + try: + ask_queue.put_nowait({"question":q,"event":evt,"result":holder}) + except queue.Full: + self._json({"error":"queue full"},503); return + evt.wait(timeout=180) + self._json({"response": holder["response"], "turn": turn_count, "model": MODEL}) + else: + self._json({"error":"unknown"},404) + + def do_OPTIONS(self): + self.send_response(204) + self.send_header("Access-Control-Allow-Origin","*") + self.send_header("Access-Control-Allow-Methods","GET,POST,OPTIONS") + self.send_header("Access-Control-Allow-Headers","Content-Type") + self.end_headers() + + +class ThreadedServer(ThreadingMixIn, HTTPServer): + daemon_threads = True + + +def run_http(): + srv = ThreadedServer(("127.0.0.1", API_PORT), FractonautHandler) + print(f"[FRACTONAUT] HTTP API on 127.0.0.1:{API_PORT}") + sys.stdout.flush() + while running: + srv.handle_request() + srv.server_close() + + +def main(): + global frame_count, latest_tel + + print("="*60) + print("FRACTONAUT — pattern recognition observer") + print(f"Model: {MODEL} Port: {API_PORT} ZMQ: {TELEMETRY_PORT}") + print(f"Observe every {OBSERVE_INTERVAL} frames") + print("="*60) + sys.stdout.flush() + + CHRONICLE_PATH.parent.mkdir(parents=True, exist_ok=True) + load_chronicle_tail() + + ctx = zmq.Context() + tel_sub = ctx.socket(zmq.SUB) + # Subscribe BEFORE connect (per Resonance Engine ZMQ rules) + tel_sub.setsockopt_string(zmq.SUBSCRIBE, "") + tel_sub.connect(f"tcp://127.0.0.1:{TELEMETRY_PORT}") + # Slow-joiner sleep — first few frames after connect are dropped otherwise + time.sleep(1.0) + + poller = zmq.Poller() + poller.register(tel_sub, zmq.POLLIN) + + threading.Thread(target=run_http, daemon=True).start() + print("[FRACTONAUT] Listening for telemetry...") + sys.stdout.flush() + + while running: + # Block up to 100ms waiting for a telemetry frame + socks = dict(poller.poll(timeout=100)) + if tel_sub in socks: + try: + raw = tel_sub.recv_string() + data = json.loads(raw) + telemetry_window.append(data) + latest_tel = data + frame_count += 1 + except json.JSONDecodeError: + pass + + # Handle queued /ask requests + try: + item = ask_queue.get_nowait() + if not ollama_lock.acquire(timeout=5): + item["result"]["response"] = "(busy)" + item["event"].set() + continue + try: + stats = compute_window_stats(telemetry_window) + latest = telemetry_window[-1] if telemetry_window else {} + window_str = format_window_for_prompt(stats, latest) + past_str = format_past_observations(past_observations) + prompt = f"QUESTION: {item['question']}\n\nCURRENT WINDOW:\n{window_str}\n\nPAST OBSERVATIONS:\n{past_str}" + messages = [ + {"role":"system","content":SYSTEM}, + {"role":"user","content":prompt}, + ] + response = call_llm(messages) + item["result"]["response"] = response or "(no response)" + if response: + cycle = latest.get("cycle",0) + past_observations.append({"cycle": cycle, "text": f"[Q] {response}"}) + append_chronicle(turn_count, cycle, prompt, response) + finally: + ollama_lock.release() + item["event"].set() + except queue.Empty: + pass + + if frame_count > 0 and frame_count % OBSERVE_INTERVAL == 0: + observe() + + tel_sub.close() + ctx.term() + print("[FRACTONAUT] Stopped.") + + +if __name__ == "__main__": + main() diff --git a/fractonaut_chronicle.jsonl b/fractonaut_chronicle.jsonl new file mode 100644 index 0000000..a413a99 --- /dev/null +++ b/fractonaut_chronicle.jsonl @@ -0,0 +1,2 @@ +{"ts": "2026-06-06T08:32:33Z", "turn": 1, "cycle": 14620, "model": "gemma3:4b", "prompt": "CURRENT WINDOW (200 frames):\ncycle=14620 omega=1.97 khra=0.03 gixx=0.008\ngpu=45C 78.3W util=10%\n\nmetric now mean delta range\n----------------------------------------------------------\ncoherence 0.740000 0.739695 -0.000800 0.003100\nasymmetry 12.333300 12.381619 +0.074600 0.384900\nvel_mean 0.219323 0.221122 -0.000330 0.004172\nvel_max 0.286339 0.285096 +0.000269 0.006940\nvel_var 0.002574 0.002449 -0.000002 0.000349\nvorticity_mean 0.033605 0.027868 +0.003356 0.011232\nstress_xx -0.000425 -0.000415 -0.000017 0.000117\nstress_yy 0.000393 0.000396 +0.000033 0.000112\nstress_xy -0.000122 -0.000143 +0.000015 0.000102\n\nPAST OBSERVATIONS (most recent last):\n(no prior observations)\n\nWhat patterns do you see? What is repeating or changing?", "response": "At cycle 14620, coherence decreased by -0.000800, settling at 0.740000. Asymmetry increased by +0.074600, reaching 12.333300. The mean velocity increased by -0.000330 to 0.219323. Velocity variance decreased by -0.000002 to 0.002574. Vorticity mean increased by +0.003356 to 0.033605, preceding the increase in asymmetry."} +{"ts": "2026-06-06T08:33:30Z", "turn": 2, "cycle": 19620, "model": "gemma3:4b", "prompt": "CURRENT WINDOW (200 frames):\ncycle=19620 omega=1.97 khra=0.03 gixx=0.008\ngpu=44C 43.9W util=35%\n\nmetric now mean delta range\n----------------------------------------------------------\ncoherence 0.738600 0.739645 -0.000600 0.002300\nasymmetry 12.516400 12.388530 +0.052400 0.296900\nvel_mean 0.221732 0.221113 +0.002088 0.004125\nvel_max 0.285588 0.285296 -0.000084 0.006672\nvel_var 0.002335 0.002450 -0.000164 0.000340\nvorticity_mean 0.029553 0.027875 -0.003649 0.011165\nstress_xx -0.000433 -0.000413 -0.000033 0.000109\nstress_yy 0.000402 0.000402 +0.000043 0.000089\nstress_xy -0.000153 -0.000138 -0.000034 0.000058\n\nPAST OBSERVATIONS (most recent last):\n[cycle 14620] At cycle 14620, coherence decreased by -0.000800, settling at 0.740000. Asymmetry increased by +0.074600, reaching 12.333300. The mean velocity increased by -0.000330 to 0.219323. Velocity variance decreased by -0.000002 to 0.002574. Vorticity mean increased by +0.003356 to 0.033605, preceding the increase in asymmetry.\n\nWhat patterns do you see? What is repeating or changing?", "response": "At cycle 19620, coherence decreased by -0.000600, following a prior decrease at cycle 14620. Asymmetry increased by +0.052400, mirroring the increase observed at cycle 14620. The mean velocity increased by +0.002088, continuing a trend of increasing velocity. Velocity variance increased by -0.000164, contrasting with the decrease at cycle 14620. Vorticity mean decreased by -0.003649, preceding the decrease in asymmetry."}