Files
yawn/coredocs/index.md
T
Ampandheaust 4784ad7e87 Render continuously and optimize the glTF viewer
Remove vsync and dirty-flag frame gating, optimize PBR sampling and lighting, add a direct-to-canvas loadout, and preserve camera state on viewer resize.

Add regression coverage and update rendering documentation.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0b382-1e79-712b-abd1-d29201c9bb5e
Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
2026-09-18 08:58:27 +00:00

1.6 KiB

layout, hero, features
layout hero features
home
name text tagline actions
Yawn raw core Worker, shared memory, and render graphs The protocol reference for building an alternative handles layer or editor without YawnCore or @yawn/handles.
theme text link
brand Boot from scratch /guide/boot
theme text link
alt Worker reference /reference/worker
title details
Raw transport Start core/worker.js, correlate replies, and handle profiler events.
title details
Shared rows Build typed views, allocate slots, and control continuous rendering.
title details
Graph wire format Encode, compile, and activate complete WebGPU render and compute graphs.

Contract at a glance

The browser main thread owns the HTML canvas and starts the module worker. The worker initializes the WASM core and WebGPU against an OffscreenCanvas. All control operations are structured-clone messages. Bulk numeric state lives in one returned SharedArrayBuffer; graphs describe how named row arrays become GPU resources.

The application is responsible for three important contracts:

  1. Correlate each reply by its request value; profiler messages are unsolicited.
  2. Shared-memory value edits are rendered continuously; no sabDirty notification is needed. Pause before updates that must not overlap rendering.
  3. Before a mutation that invalidates compiled render bundles, set signals[6] (bundleDirty), make the mutation, compile and switch a replacement graph, then let successful switch-loadout clear lane 6.

This site describes the current wire API, not the higher-level wrapper API.