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>
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
// Standalone page for the ridge scene: full window, no host app. `?tier=still|low|full` picks the
|
|
// tier, `?probe=1` shows the rAF median/p95 readout. The bake record (each chunk's cost, from
|
|
// the scene's `onBake`) and the long tasks the page saw are on `window.bakes` and `window.longTasks`
|
|
// for a driver to read. Not shipped.
|
|
import { startBackgroundScene } from '../../src/app/features/scene';
|
|
import type { SceneTier } from '../../src/app/features/scene';
|
|
|
|
const q = new URLSearchParams(location.search);
|
|
const tier = (q.get('tier') ?? 'full') as SceneTier;
|
|
const canvas = document.getElementById('c') as HTMLCanvasElement;
|
|
const w = window as unknown as { scene: unknown; bakes: unknown[]; longTasks: number[]; firstViewMs: number };
|
|
w.bakes = [];
|
|
w.longTasks = [];
|
|
try {
|
|
new PerformanceObserver((l) => l.getEntries().forEach((e) => w.longTasks.push(e.duration))).observe({
|
|
entryTypes: ['longtask'],
|
|
});
|
|
} catch {
|
|
// No long-task entries in this browser.
|
|
}
|
|
const t0 = performance.now();
|
|
startBackgroundScene({ tier }, {}, {
|
|
canvas,
|
|
onBake: (b: unknown) => w.bakes.push(b),
|
|
} as never).then((scene) => {
|
|
w.firstViewMs = performance.now() - t0;
|
|
w.scene = scene;
|
|
document.title = scene ? 'ridge: running' : 'ridge: unavailable (CSS ground)';
|
|
});
|