Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Research4/REPORT.md
T
Fr0zkaandClaude Opus 5.5 cf57c87daf research(R4): L38 wall "ripple" is a coil-ownership step, not a wave
Offline replay of the L37 and L38 tube fields on the FI Style 2 helix shows no 7.8 m ripple from the
tube distance itself (< 0.3 cm). The real signal is a step: the upper coil's 1 m fallback floor strip,
composed independently, puts a support root 0.44 m from the lower bore's centreline at head height;
the 7.8 m "period" is a sinusoid fitted to that step. Proposes pairing the floor cap with its bore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-10-23 08:30:59 +02:00

47 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# R4 — L38 tunnel wall ripple
## Reproduction: no
On the requested 3 m radius, 3.31 m pitch, 20-control/turn helix with a 3 m bore, the audit-style wall probe does **not** reproduce L38's 7.8 m signal.
| Tube field | Fitted local period | Local amplitude | Coherent amplitude |
|---|---:|---:|---:|
| L37: chord projection, smoothed lateral centerline | 2.500 m | 0.023 cm | 0.012 cm |
| L38: nearest point on smoothed centerline | 0.9375 m | 0.002 cm | 0.001 cm |
Replaying the saved FI Style 2 controls gives raw tube amplitudes of 0.292 cm for L37 and 0.143 cm for L38. The controls in the audited windows all have a constant 3 m radius. These results rule out the tube-distance change by itself as the source of the reported 12.06 cm local / 3.38 cm coherent ripple.
## What makes the real wall step
The implementer's exact-field trace places the failure in window 2 (`127.494–159.494 m`), away from either mouth. At centerline height, one side's wall stays near 3 m while the other side's root is 0.4375 m through `s=150.744 m`; at `s=150.869 m`, the other side also moves to 0.4375 m. Those displaced roots are tagged as passage fallback support. The change in the two-sided mean is a step as the floor owner changes, not a regular 7.8 m wave.
The saved-route probe geometry at those poses is bore segment 154 with floor owner segment 134. The fallback from the upper coil's floor is independently min-composed into the lower coil's passage air. This puts a support root inside the neighboring bore. The root probe matters because it chooses the wall crossing nearest 3 m: when one side instead returns the 0.4375 m support root, the two-sided mean jumps. The period fit then reports its best sinusoid for that step; 7.812 m is not evidence of a physical 7.8 m repeat.
The fitted period is 8.20 of the 0.953 m control chords, 0.408 of the 19.138 m helical turn arc (0.414 of the 18.85 m planar circumference), or 2.36 pitches. It does not align with a natural integer repeat. Chord-to-spline mismatch and the closest-point solve are small in the raw-tube replay. The radius interpolation is not implicated because these windows have constant 3 m radii. Nonuniform Catmull–Rom span speed may perturb owner selection in the final audit window, where chord lengths grow from about 0.69–0.95 m to 2.84 m, but does not explain the failure in window 2.
## Smallest ownership correction to trial
Keep the route floor cap only inside its walk-support band (the implementer's next trial uses a 0.55 m lateral radius and 0.375 m below-floor depth). Outside that band, use the nearest bore's own `boreFloorQ`; then keep the fallback inside the solid-side domain of that same floor-limited bore:
```cpp
fallbackDistance = max(bestFallbackDistance, -bestFloorLimitedDistance);
```
The cap choice belongs immediately before `bestFloorLimitedDistance` is formed in `ApplyResolvedStratePassageCarves`; the fallback clip belongs after that distance is computed and before fallback is min-composed into `composed` ([ShapeWorldInternal.h](../../../Core/src/ShapeWorldInternal.h)). The shared-domain clip alone does not work while the cap still uses the unrelated floor owner. Pairing first makes the lower bore's floor govern the failing query, so the fallback cannot refill that bore.
Python route-root check at `s=150.744/150.869 m`: the independent 1 m fallback and the shared-domain-only variant both have a 0.5625 m root on each side. With the 0.55 m / 0.375 m cap band paired to the bore domain, neither side has a fallback root. At the owning floor, the paired model remains 0.000 m on top and -0.243 m at 0.25 m below.
For the requested before/after ripple metric, the simplified 32 m saved-route audit reports 0.003 cm at 2.375 m both before and after pairing (257/257 probes retain the 3 m outer wall). That model uses the tube as its continuous native wall and omits native FI density; it therefore cannot reproduce the missing-rock crossing or validate the real ripple amplitude. The root removal is the meaningful Python result, not an amplitude match.
The implementer's trials show the production tradeoff is unresolved: trials 9–10 with fallback clipping and a 0.40 m cap ended at 0.58 cm, only 254/1,285 covered wall samples, and 2,269 support misses. The source was restored; the owner gate is back at 12.06 cm / 7.812 m. My narrower 0.375 m route-only model demonstrates the local ownership geometry but does not establish a production fix or prove adequate support coverage.
## Scripts and limits
Scripts are in `scripts/`:
- `r4_tunnel_wall_ripple.py` compares the synthetic L37/L38 tube fields, audit probe, and saved route.
- `r4_fallback_root.py` probes fallback roots and floor support at the two traced poses.
- `r4_fallback_ripple.py` runs the simplified saved-route 32 m wall audit before/after ownership pairing.
Runs used `taskset -c 0-11 prlimit --as=6442450944`. No source files were edited; no build or heavy job was run. The working source tree changed concurrently during this research.