| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
Each ridge layer is a function of world-x (ridged multifractal value noise, domain-warped, one function and a parameter row per layer) instead of a periodic strip. World-x is baked in 1.2-viewport chunks on demand: the first view bakes one chunk per layer, the rest are baked in ~6 ms tasks, and the compositor slides a track that is recycled each chunk. A slow yaw/pitch sway rides on top. ridgeBake.ts shades each column from the crest slope against the sun with a lit rim, a light-to-haze face gradient and erosion streaks, reusing the existing aerial perspective as the depth treatment. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> |
||
| .. | ||
| bundle.cjs | ||
| demo.ts | ||
| drive.cjs | ||
| entry.ts | ||
| gradAxis.cjs | ||
| README.md | ||
| ridgeDemo.ts | ||
Scene harness
Compiles, renders and times the background scene (src/app/features/scene/) in headless
Chromium. Not shipped, not run by CI.
node bundle.cjs <outdir> # esbuild bundle of entry.ts plus an index.html
node drive.cjs <outdir> compile # compile and link each stage, JSON report
node drive.cjs <outdir> shots <pngdir> # rest, mid pull-back and pulled-back screenshots
node gradAxis.cjs <shaders dir> # numeric check that noise gradients are (d/dx, d/dz-as-.y, ...): terrainNormal axis
node drive.cjs <outdir> measure # GPU time per pass by timer query, two viewports, two levels
node drive.cjs <outdir> variants # the same with source patches (no erosion, no tree, value-only fbm)
node drive.cjs <outdir> trace # mean trace steps per pixel and pass ms at three camera poses, PREPASS=0,1 arms
node drive.cjs <outdir> diff <pngdir> # one frozen frame with and without the prepass, pixel diff and both PNGs
node drive.cjs <outdir> phacelle # the Phacelle gradient probe behind world.ts `phacelleGradBound`
Needs esbuild and playwright@1.48.2 on NODE_PATH and a Chromium. The first run was done on a
host with no GPU, so drive.cjs launches with --use-angle=swiftshader (software Vulkan). On a
machine with a GPU, remove those flags to measure the real device. bundle.cjs must run from a
directory whose ancestors hold no empty package.json (esbuild reads them).
Timings from SwiftShader are CPU time: use them for the split between passes and for before and after of one change, never as a phone frame time.