wip(step2f): coherent field -- flakes, speckle, grid, roof fixed; 3 crumbs + 636 ms left; last edits UNCOMPILED

Stopped by low memory (another app at 14 GB; processes failed with 0xC0000142).
r6 (compiled and measured, owner playing during the run), step 2e -> step 2f r6:
  crumbs < 1 m^3 (max per profile)   2,898 -> 3        FAIL (0,0,0,0,2,1,3,2)
  flakes (shard share / p95 angle)   40.7% / 84.2 deg -> 2.1% / 33.1 deg   pass
  lattice-scale detail energy        0.832 -> 0.016    pass
  grid signature (autocorrelation)   0.666 -> 0.349    pass
  min solid share / roof openings    2.7%, 26,657 -> 79.2%, 0   pass
  worst profile ring time            642.8 -> 636.3 ms FAIL (6 workers, 259^3)
Step 2e measured 642.8 ms here vs 570 ms idle earlier: the game was costing ~12% during this run.
Brick proofs + audit, seams + injected seam, 1 vs 6 worker determinism pass. After r6, feature
probabilities were lowered to remove the last crumbs: NOT compiled, NOT measured. TraversalSeeds,
in-game captures and the LOD-rejection figure for 2e are still to do. Reject screenshots included.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-09-30 19:50:42 +02:00
1 parent 0a7492ffab
commit d6555df5fa
9 files changed
+1665 -65

No files matched your search

+78 -5
View File
@@ -1,6 +1,6 @@
[CmdletBinding()]
param(
[ValidateSet('canonical', 'owner', 'probe', 'perf', 'visual-edit', 'visual-lod', 'visual-gap-walk', 'visual-gap-inject', 'dig-motion', 'tests', 'surface-fall', 'crossing', 'gate-stress', 'parity', 'horizon', 'horizon-render', 'determinism', 'symbolize-stacks', 'region-eval', 'step2d', 'step2e')]
[ValidateSet('canonical', 'owner', 'probe', 'perf', 'visual-edit', 'visual-lod', 'visual-gap-walk', 'visual-gap-inject', 'dig-motion', 'tests', 'surface-fall', 'crossing', 'gate-stress', 'parity', 'horizon', 'horizon-render', 'determinism', 'symbolize-stacks', 'region-eval', 'step2d', 'step2e', 'step2f', 'step2f-capture')]
[string]$Scenario = 'canonical',
[switch]$Build,
[switch]$EnableRender,
@@ -22,6 +22,10 @@ param(
[int]$HorizonLevel = 5,
[ValidateRange(1, 100000)]
[int]$HorizonRenderDistanceChunks = 768,
[ValidateRange(0, 7)]
[int]$Step2fProfile = 0,
[ValidateSet('inside', 'wall-closeup')]
[string]$Step2fCaptureView = 'inside',
[ValidateSet(32, 64, 128)]
[int]$ParityExportSize = 128,
[string]$ParityExportTile = '',
@@ -62,12 +66,12 @@ $AssetEvidence = @()
$CommandletMetrics = [ordered]@{}
$GameMetrics = [ordered]@{}
$HorizonMetrics = [ordered]@{
requested = $Scenario -in @('horizon', 'horizon-render')
requested = $Scenario -in @('horizon', 'horizon-render', 'step2f-capture')
status = 'not_run'
level = $HorizonLevel
render_distance_chunks = $HorizonRenderDistanceChunks
}
$HorizonRenderMetrics = [ordered]@{ requested = $Scenario -eq 'horizon-render'; status = 'not_run' }
$HorizonRenderMetrics = [ordered]@{ requested = $Scenario -in @('horizon-render', 'step2f-capture'); status = 'not_run' }
$DeterminismEvidence = [ordered]@{ requested = $Scenario -eq 'determinism'; status = 'not_run' }
$SurfaceFallMetrics = [ordered]@{
requested = $Scenario -eq 'surface-fall' -or
@@ -575,7 +579,7 @@ function Sync-OwnerAssets {
$null = Copy-Item -LiteralPath $source -Destination $target -Force -PassThru
[void]$rows.Add([ordered]@{
name = $assetName
used_by_scenario = $Scenario -in @('owner', 'probe', 'parity', 'tests', 'surface-fall', 'crossing', 'gate-stress', 'visual-edit', 'visual-lod', 'visual-gap-walk', 'visual-gap-inject', 'dig-motion', 'horizon', 'horizon-render', 'determinism', 'region-eval', 'step2d', 'step2e')
used_by_scenario = $Scenario -in @('owner', 'probe', 'parity', 'tests', 'surface-fall', 'crossing', 'gate-stress', 'visual-edit', 'visual-lod', 'visual-gap-walk', 'visual-gap-inject', 'dig-motion', 'horizon', 'horizon-render', 'determinism', 'region-eval', 'step2d', 'step2e', 'step2f', 'step2f-capture')
source_path = $source
source_sha256 = Get-Sha256 $source
staged_path = $target
@@ -623,7 +627,7 @@ function Get-AssetEvidence {
$target = Join-Path $HostRoot "Content\VoxelForge\$assetName.uasset"
[void]$rows.Add([ordered]@{
name = $assetName
used_by_scenario = $Scenario -in @('owner', 'probe', 'parity', 'tests', 'surface-fall', 'crossing', 'gate-stress', 'visual-edit', 'visual-lod', 'visual-gap-walk', 'visual-gap-inject', 'dig-motion', 'horizon', 'horizon-render', 'determinism', 'region-eval', 'step2d', 'step2e')
used_by_scenario = $Scenario -in @('owner', 'probe', 'parity', 'tests', 'surface-fall', 'crossing', 'gate-stress', 'visual-edit', 'visual-lod', 'visual-gap-walk', 'visual-gap-inject', 'dig-motion', 'horizon', 'horizon-render', 'determinism', 'region-eval', 'step2d', 'step2e', 'step2f', 'step2f-capture')
source_path = $source
source_sha256 = Get-Sha256 $source
staged_path = $target
@@ -1526,6 +1530,33 @@ try {
}
}
}
'step2f' {
$step2fLog = Join-Path $RunRoot 'Logs\step2f.log'
$args = New-CommonArguments 'commandlet' $step2fLog (Merge-Cvars $baseCvars)
$args += New-CommandletArguments $commandletOut 'walk,export' ($Assets -eq 'owner') $false 128
$researchOut = Join-Path $PluginRoot "Saved\Research\step2f\$Label"
$args += @('-step2f', '-regionworkers=6', ('-researchout="{0}"' -f $researchOut))
$commandletLedger = Invoke-UnrealLaunch 'step2f-commandlet' $args `
$step2fLog (Join-Path $RunRoot 'Logs\step2f.stdout.log') `
(Join-Path $RunRoot 'Logs\step2f.stderr.log')
$step2fReportPath = Join-Path $researchOut 'step2f_report.json'
$step2fReport = Read-JsonFile $step2fReportPath
if ($null -eq $step2fReport) {
$CommandletMetrics = [ordered]@{ status = 'missing'; output = $researchOut; report = $step2fReportPath }
Add-Failure "step2f did not produce $step2fReportPath"
} else {
$CommandletMetrics = [ordered]@{
status = if ((Get-JsonValue $step2fReport 'pass' $false) -and $commandletLedger.status -eq 'passed') { 'passed' } else { 'failed' }
output = $researchOut
report = $step2fReportPath
worst_profile_meets_600ms = Get-JsonValue $step2fReport 'worst_profile_meets_600ms' $false
result = $step2fReport
}
if (-not (Get-JsonValue $step2fReport 'pass' $false)) {
Add-Failure 'step2f geometry gates, 2e rejection audit, speed, sound proofs, seams, or determinism failed'
}
}
}
'symbolize-stacks' {
if (([string]::IsNullOrWhiteSpace($StackSamplesPath)) -or -not (Test-Path -LiteralPath $StackSamplesPath -PathType Leaf)) {
throw "-StackSamplesPath must name an existing raw sampler CSV."
@@ -1591,6 +1622,47 @@ try {
Add-Failure "horizon render did not produce a capture: $($HorizonRenderMetrics.status)"
}
}
'step2f-capture' {
$tracePath = Join-Path $RunRoot 'step2f_capture_trace.jsonl'
$baseCvars['voxel.TestRenderDistanceChunks'] = $HorizonRenderDistanceChunks
$baseCvars['voxel.TestMaxClipLevel'] = $HorizonLevel
$baseCvars['voxel.StartupTraceFile'] = $tracePath
$baseCvars['voxel.StartupTraceMaxTiles'] = 16384
$baseCvars['voxel.TestCeilingView'] = 1
$baseCvars['voxel.TestCeilingCaptureDelaySeconds'] = 60
$baseCvars['voxel.TestExitSeconds'] = 120
$baseCvars['voxel.OuterClassifierMode'] = 0
$baseCvars['voxel.ResearchParameterizedCave'] = 1
$baseCvars['voxel.ResearchParameterizedCaveSet'] = $Step2fProfile
$renderLog = Join-Path $RunRoot 'Logs\step2f-capture.log'
$args = New-CommonArguments 'game' $renderLog (Merge-Cvars $baseCvars) $true
$gameLedger = Invoke-UnrealLaunch "step2f-profile-$Step2fProfile-$Step2fCaptureView" $args `
$renderLog (Join-Path $RunRoot 'Logs\step2f-capture.stdout.log') `
(Join-Path $RunRoot 'Logs\step2f-capture.stderr.log')
$GameMetrics = Get-StreamingMetrics $renderLog
$HorizonMetrics = Get-HorizonMetrics $tracePath $gameLedger $GameMetrics
$HorizonRenderMetrics = Get-HorizonRenderMetrics $gameLedger $renderLog
if ($HorizonMetrics.status -ne 'ok') {
Add-Failure "step2f capture render trace did not settle: $($HorizonMetrics.status)"
}
if ($HorizonRenderMetrics.status -ne 'passed') {
Add-Failure "step2f profile $Step2fProfile in-game capture failed: $($HorizonRenderMetrics.status)"
} else {
$profileNames = @('OpenVaults', 'TightNetwork', 'ChamberHalls', 'ShaftForest', 'FloatingArchipelago', 'PillaredCathedral', 'TerracedBasin', 'HyperComplex')
$profileName = $profileNames[$Step2fProfile]
$captureDirectory = Join-Path $PluginRoot 'Saved\Research\step2f\captures'
Ensure-Directory $captureDirectory
$captureName = '{0}_{1}.png' -f $profileName, $Step2fCaptureView
$capturePath = Join-Path $captureDirectory $captureName
$image = @($HorizonRenderMetrics.images | Sort-Object modified_utc | Select-Object -Last 1)
if ($image.Count -eq 0 -or -not (Test-Path -LiteralPath $image[0].path -PathType Leaf)) {
Add-Failure "step2f profile $Step2fProfile image path was missing after capture"
} else {
Copy-Item -LiteralPath $image[0].path -Destination $capturePath -Force
$HorizonRenderMetrics.saved_capture = $capturePath
}
}
}
'determinism' {
$defaultDump = Join-Path $RunRoot 'tile_hashes_default.json'
$crtFma3OffDump = Join-Path $RunRoot 'tile_hashes_crt_fma3_off.json'
@@ -1932,6 +2004,7 @@ $result = [ordered]@{
commandlet = $CommandletMetrics
region_eval = if ($Scenario -eq 'region-eval') { $CommandletMetrics } else { $null }
step2e = if ($Scenario -eq 'step2e') { $CommandletMetrics } else { $null }
step2f = if ($Scenario -eq 'step2f') { $CommandletMetrics } else { $null }
game = $GameMetrics
horizon = $HorizonMetrics
horizon_render = $HorizonRenderMetrics