proto: liminal looks - pool rooms, backrooms grid, staircase to nowhere, terraced hills (L161)
Stamp vocabulary v7 (opt-in fillBox, carveBox, fillSteps; carveArch reused); flat-field liminal stamp fixtures; capsule walk audit with doorway-width gate (1.2 m control fails as expected). Clang/GCC W1/W8/W12 identical; owner canonical hashes unchanged; fast tier 273/273. Terraced wide view not yet legible. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
1 parent
4290672d1c
commit
ff52c9b576
17 files changed
+861
-12
No files matched your search
@@ -22,6 +22,7 @@
|
||||
#include <limits>
|
||||
#include <numeric>
|
||||
#include <queue>
|
||||
#include <sstream>
|
||||
#include <string_view>
|
||||
#include <thread>
|
||||
#include <tuple>
|
||||
@@ -2385,7 +2386,8 @@ namespace StandaloneStreamBenchmark
|
||||
double MovingCameraDurationSeconds=12.0,double MovingCameraDwellSeconds=5.0,
|
||||
bool bColdWorkerTimeline=false,bool bAuditPassageSourceClamp=false,
|
||||
bool bAuditPassageCarveReach=false,bool bAuditPassageTileSeams=false,
|
||||
bool bAuditLiminalRoadWalk=false)
|
||||
bool bAuditLiminalRoadWalk=false,
|
||||
const std::filesystem::path& LiminalStampWalkAuditPath={})
|
||||
{
|
||||
using Clock=std::chrono::steady_clock;
|
||||
const std::clock_t ColdCpuOrigin=std::clock();
|
||||
@@ -2555,7 +2557,8 @@ namespace StandaloneStreamBenchmark
|
||||
||bAuditOreVeinYield||bAuditLandmarkReachability||bAuditStrateTransitions
|
||||
||bAuditResolvedLayoutPassages||bAuditResolvedLayoutBoundaries
|
||||
||bAuditTileShapeReadiness||bAuditBasePageEquivalence||bAuditRouteParity
|
||||
||bAuditPassageSourceClamp||bAuditPassageCarveReach||bAuditLiminalRoadWalk;
|
||||
||bAuditPassageSourceClamp||bAuditPassageCarveReach||bAuditLiminalRoadWalk
|
||||
||!LiminalStampWalkAuditPath.empty();
|
||||
const bool bDeferFarWorld=bIncludeFarWorld&&!bMovingCameraTrace&&!bFarWorldAudit;
|
||||
VoxelForgeCore::ShapeBuildRequest ShapeRequest;
|
||||
ShapeRequest.minVoxel={FineMin.X,FineMin.Y,FineMin.Z};
|
||||
@@ -2821,7 +2824,8 @@ namespace StandaloneStreamBenchmark
|
||||
Streamer.Stop();
|
||||
return passed?0:11;
|
||||
}
|
||||
if(bAuditResolvedLayoutPassages||bAuditLiminalRoadWalk)
|
||||
if(bAuditResolvedLayoutPassages||bAuditLiminalRoadWalk
|
||||
||!LiminalStampWalkAuditPath.empty())
|
||||
{
|
||||
if(ResolvedLayout==nullptr||!CoreSnapshot.resolvedLayout())
|
||||
{Streamer.Stop();std::fprintf(stderr,"[ResolvedWalkAudit] missing resolved-layout snapshot\n");return 2;}
|
||||
@@ -3230,6 +3234,82 @@ namespace StandaloneStreamBenchmark
|
||||
}
|
||||
return passed;
|
||||
};
|
||||
if(!LiminalStampWalkAuditPath.empty())
|
||||
{
|
||||
struct FDoorwayWidthGate
|
||||
{
|
||||
std::string prefix;
|
||||
std::uint32_t widthAxis=0;
|
||||
double minimumWidthMetres=0.0;
|
||||
};
|
||||
std::ifstream auditFile(LiminalStampWalkAuditPath);
|
||||
std::vector<std::array<double,3>> walkPath;
|
||||
std::vector<FDoorwayWidthGate> doorwayGates;
|
||||
bool inputValid=static_cast<bool>(auditFile);
|
||||
std::string line;
|
||||
while(inputValid&&std::getline(auditFile,line))
|
||||
{
|
||||
if(line.empty()||line[0]=='#')continue;
|
||||
std::istringstream fields(line);
|
||||
char record=0;fields>>record;
|
||||
if(record=='P')
|
||||
{
|
||||
std::array<double,3> point{};
|
||||
fields>>point[0]>>point[1]>>point[2];
|
||||
inputValid=inputValid&&static_cast<bool>(fields)
|
||||
&&std::isfinite(point[0])&&std::isfinite(point[1])
|
||||
&&std::isfinite(point[2]);
|
||||
if(inputValid)
|
||||
walkPath.push_back({point[0]/coreMetres,
|
||||
point[1]/coreMetres,point[2]/coreMetres});
|
||||
}
|
||||
else if(record=='D')
|
||||
{
|
||||
FDoorwayWidthGate gate;
|
||||
fields>>gate.prefix>>gate.widthAxis>>gate.minimumWidthMetres;
|
||||
inputValid=inputValid&&static_cast<bool>(fields)
|
||||
&&!gate.prefix.empty()&&gate.widthAxis<2
|
||||
&&std::isfinite(gate.minimumWidthMetres)
|
||||
&&gate.minimumWidthMetres>=1.5;
|
||||
if(inputValid)doorwayGates.push_back(std::move(gate));
|
||||
}
|
||||
else inputValid=false;
|
||||
}
|
||||
std::uint64_t doorwayCount=0;
|
||||
double narrowestDoorway=std::numeric_limits<double>::infinity();
|
||||
bool doorwayWidthsPass=inputValid;
|
||||
for(const auto& gate:doorwayGates)
|
||||
{
|
||||
std::uint64_t found=0;
|
||||
for(const auto& stamp:ResolvedLayout->stamps)
|
||||
{
|
||||
if(!stamp.stableId.starts_with(gate.prefix))continue;
|
||||
++found;++doorwayCount;
|
||||
const double width=2.0*stamp.halfExtentsMicrometres[gate.widthAxis]/1.0e6;
|
||||
narrowestDoorway=std::min(narrowestDoorway,width);
|
||||
if(width+1.0e-9<gate.minimumWidthMetres)doorwayWidthsPass=false;
|
||||
}
|
||||
doorwayWidthsPass=doorwayWidthsPass&&found>0;
|
||||
}
|
||||
if(doorwayCount==0)narrowestDoorway=0.0;
|
||||
const FWalkAudit walkAudit=inputValid&&walkPath.size()>=2
|
||||
?auditPlayerPath(Shape,walkPath,0.125,0.125,1.125,3,0.45):FWalkAudit{};
|
||||
const bool passed=inputValid&&doorwayWidthsPass&&walkAudit.passed;
|
||||
std::printf("[LiminalStampWalkAudit] path_points=%zu stations=%llu capsule_samples=%llu "
|
||||
"blocked=%llu support_samples=%llu unsupported=%llu grade_failures=%llu "
|
||||
"doorways=%llu narrowest_doorway_m=%.3f minimum_doorway_m=1.500 "
|
||||
"status=%s\n",walkPath.size(),
|
||||
static_cast<unsigned long long>(walkAudit.centers),
|
||||
static_cast<unsigned long long>(walkAudit.capsuleSamples),
|
||||
static_cast<unsigned long long>(walkAudit.blocked),
|
||||
static_cast<unsigned long long>(walkAudit.supportSamples),
|
||||
static_cast<unsigned long long>(walkAudit.unsupported),
|
||||
static_cast<unsigned long long>(walkAudit.gradeFailures),
|
||||
static_cast<unsigned long long>(doorwayCount),narrowestDoorway,
|
||||
passed?"PASS":"FAIL");
|
||||
Streamer.Stop();
|
||||
return passed?0:14;
|
||||
}
|
||||
if(bAuditLiminalRoadWalk&&!bAuditResolvedLayoutPassages)
|
||||
{
|
||||
const bool passed=auditLiminalRoadWalk(true);
|
||||
|
||||
Reference in new issue
Block a user