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:
Fr0zkaandClaude Opus 5.5 committed 2026-11-02 10:11:37 +01:00
1 parent 4290672d1c
commit ff52c9b576
17 files changed
+861 -12

No files matched your search

+26 -1
View File
@@ -7157,6 +7157,23 @@ private:
const float top=std::max(StampEllipsoidSdf(x,y,z,halfSize),-z);
return SmoothMinDistance(lower,top,round*2.0f);
}
static float StampStepsSdf(float x,float y,float z,
const std::array<float,3>& halfSize,std::uint16_t stepCount)
{
if(stepCount<2||stepCount>128)return std::numeric_limits<float>::infinity();
const float treadWidth=(2.0f*halfSize[0])/stepCount;
const float riserHeight=(2.0f*halfSize[2])/stepCount;
float distance=std::numeric_limits<float>::infinity();
for(std::uint16_t step=0;step<stepCount;++step)
{
const float stepHeight=(step+1)*riserHeight;
const float centerX=-halfSize[0]+(step+0.5f)*treadWidth;
const float centerZ=-halfSize[2]+stepHeight*0.5f;
const std::array<float,3> extent={treadWidth*0.5f,halfSize[1],stepHeight*0.5f};
distance=std::min(distance,StampRoundedBoxSdf(x-centerX,y,z-centerZ,extent,0.0f));
}
return distance;
}
static float StampContinuousSweptDeckSdf(const FStampRuntime& stamp,
float x,float y,float z)
{
@@ -7295,6 +7312,13 @@ private:
case VoxelForgeCore::ResolvedSdfStampKindV1::fillPlatform:
distance=StampRoundedBoxSdf(localX,localY,localZ,
stamp.halfExtentsVoxels,stamp.roundingRadiusVoxels);break;
case VoxelForgeCore::ResolvedSdfStampKindV1::fillBox:
case VoxelForgeCore::ResolvedSdfStampKindV1::carveBox:
distance=StampRoundedBoxSdf(localX,localY,localZ,
stamp.halfExtentsVoxels,stamp.roundingRadiusVoxels);break;
case VoxelForgeCore::ResolvedSdfStampKindV1::fillSteps:
distance=StampStepsSdf(localX,localY,localZ,stamp.halfExtentsVoxels,
stamp.record->stepCount);break;
case VoxelForgeCore::ResolvedSdfStampKindV1::fillDais:
if(ResolvedLayout&&ResolvedLayout->stampVocabularyVersion
>=VoxelForgeCore::ResolvedLayoutStampVocabularyVersionV2)
@@ -7471,7 +7495,8 @@ private:
||worldMicrometres[axis]>record.boundsMaximumMicrometres[axis])return;
const float distance=StampSdf(runtime,X,Y,Z);
if(record.kind==VoxelForgeCore::ResolvedSdfStampKindV1::carveEllipsoid
||record.kind==VoxelForgeCore::ResolvedSdfStampKindV1::carveArch)
||record.kind==VoxelForgeCore::ResolvedSdfStampKindV1::carveArch
||record.kind==VoxelForgeCore::ResolvedSdfStampKindV1::carveBox)
composed=SmoothMaxDistance(composed,-distance,runtime.smoothWidthVoxels);
else
composed=SmoothMinDistance(composed,distance,runtime.smoothWidthVoxels);