open-standards/wai/changes/2026-11-09-int-neural-fields.md
Transaction Science b8f4e4f3b5
Some checks failed
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 13s
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 12s
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 11s
wai-app and Create / wai-app · does this change touch it (push) Successful in 13s
wai-audit collector and player integration / does this change touch it (push) Successful in 11s
WAI operation catalogue / does this change touch it (push) Successful in 10s
wai-key-proxy / does this change touch it (push) Successful in 18s
wai-fleet service / does this change touch it (push) Successful in 19s
wai-ledger service / does this change touch it (push) Successful in 15s
wai-quantum for JavaScript / does this change touch it (push) Successful in 14s
wai-quantum studio and desktop / does this change touch it (push) Successful in 17s
wai-sink-swift native sink package / does this change touch it (push) Successful in 16s
WAI Studio / does this change touch it (push) Successful in 17s
wai-sink-android native sink library / does this change touch it (push) Successful in 19s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Has been cancelled
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Has been cancelled
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Has been cancelled
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Has been cancelled
wai-audit collector and player integration / collector · linux (push) Has been cancelled
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Has been cancelled
WAI operation catalogue / the catalogue and every door · linux (push) Has been cancelled
wai-fleet service / service · linux (push) Has been cancelled
wai-fleet service / service · macos (push) Has been cancelled
wai-ledger service / service · linux (push) Has been cancelled
wai-ledger service / service · macos (push) Has been cancelled
wai-quantum for JavaScript / javascript · linux (push) Has been cancelled
wai-quantum energy-landscape jobs / does this change touch it (push) Has been cancelled
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Has been cancelled
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Has been cancelled
wai-quantum energy-landscape jobs / the same bits · macos (push) Has been cancelled
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Has been cancelled
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Has been cancelled
wai-quantum studio and desktop / studio · browser (push) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (push) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (push) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (push) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (push) Has been cancelled
WAI Studio / Studio in WebKit · linux (push) Has been cancelled
wai-key-proxy / proxy · linux (push) Has been cancelled
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 10s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 1m40s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 5m31s
wai: a neural field's levels as refinements, wai.field.int_refine
Registers wai.field.int_refine, refinement-only over the one base
wai.field.int_grid, StandardDefined: its payload WIL1 is one grid level of a
field (neural-fields §7.2). A level applies only as the field's next level, in
the features, table size and side the field declared for it; otherwise it is
refused (geometry_mismatch) and the field is as it was. The WIG1 and WIL1
parsers name each other's magic format_capability_mismatch.

staged-delivery §6.2 registers this level form (the former §6.2 and §6.3 are
now §6.3 and §6.4; staged-measurement's reference follows): the unit is the
whole field, layer k carries level K + k - 1, §4.1 step 9 is the next-level
rule, the stage hash is the SHA-256 of the render at the field's own view, the
tier decode-equivalence, every layer boundary a truncation point. So a coarse
field is presented first and every stage is presentable. SPEC §5: the
Refinement capabilities and Base admission rows, and the four residual
int_refine capabilities named as such where SPEC counts them.

wai-rs: int_field::{parse_wil1, Level, Field::apply_level, FieldStages}
(staged-delivery §4.1 for the field's one unit, a hold bound of zero);
AppliedForm::Level; the emit paths check WIL1 framing. The export tool writes
the fitted scene's two finer levels as WIL1. volumetric-conformance/fields/:
every prefix of the levels' values and frames, WIL1 faults for every check,
levels applied in order, out of order, twice, past the field and in the wrong
shape, and five staged sequences of envelopes with each outcome and the final
stage hash. field_verify.py parses and applies the levels and recomputes every
stage. A fifth planted fault, a level applied out of order, is caught by both.
The API breaks this makes are acknowledged in the change note.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 17:32:12 -05:00

5.4 KiB
Raw Permalink Blame History

Integer neural fields: wai.field.int_grid, a scene the sink computes, refined level by level by wai.field.int_refine

  • A computed capability registered (SPEC §5, Interactive, temporal & computed content): wai.field.int_grid, a volumetric scene held as a multi-resolution integer feature grid and a small integer network, StandardDefined at field-equivalence. The sink computes the content: the field's density and colour at any point of its domain, and its frame at any view by integer ray marching. neural-fields fixes every integer: a level's table is read through a direct index where its vertices fit, and through a spatial hash with a stated wrap (each product modulo 2^32) where they do not; the trilinear weights are fixed point at 2^48 and sum exactly; each layer is integer-operators' conv with a 1 × 1 kernel, its rq rounding half up by wfrac bits, a clamp to i32 and relu; the camera is splat-exact §5.3's; the samples, their lengths, the transmittance's stop and the compositing are pinned. So the values at a point and the frame at a view are the same bytes on every machine, and a frame digest can be signed and checked where the frame is presented.
  • The payload WIG1 (neural-fields §3): L levels declared and the coarsest K carried, the network's widths and layers, and the view the field is presented at (a pose of splat-exact §2's members, the samples a ray takes between t_near and t_far, and a background). A level not carried reads as zero, so a coarse prefix is a presentable field. Its checks follow integer-payloads §2's order and refuse with that extension's codes, including a network whose input width is not L · F and a degenerate pose (field_range). The emit paths check the framing with the parser a sink runs.
  • Levels as refinements (neural-fields §7; SPEC §5, Refinement capabilities and Base admission): wai.field.int_refine, refinement-only over the one base wai.field.int_grid, StandardDefined, its payload WIL1 one grid level of the field. A level applies only as the field's next level, in the features, table size and side the field declared for it, or it is refused (geometry_mismatch) and the field is as it was. staged-delivery §6.2 registers this level form (the former §6.2 and §6.3 are now §6.3 and §6.4): the unit is the whole field, layer k carries level K + k − 1, §4.1 step 9 is the next-level rule, the stage hash is the SHA-256 of the render at the field's own view, the tier is decode-equivalence, and every layer boundary is a truncation point. So a coarse field is presented first and every stage is presentable.
  • Reference implementation. wai-rs: int_field (feature field_int): parse_wig1, parse_wil1, Field::{query, render, apply_level}, View, the declared cost, FieldStages (staged-delivery §4.1 for the field's one unit), and int_field::corpus; the float-free test reads int_field.rs. tools/wai_int_field_export.py writes the payload from a JSON form and builds the corpus's scenes itself: one fitted to a procedural scene by stochastic gradient descent on each level's table in turn, through the level's own index and hash, one seeded random, one of saturating values.
  • Conformance. volumetric-conformance/fields/: three scenes, the values at 32 points and the frame digest at each scene's own view and at further views, at every prefix of the fitted scene's levels; a fault payload for every check of WIG1 and WIL1, each with its code; levels applied in order, out of order, twice, past the field's levels and in the wrong shape; and envelopes offered as layers in five sequences (in order, out of order, a refusal at each envelope step, a conflict, a level that fails the next-level rule and then conflicts), each with its stage or reason and the final stage hash. Written and checked by wai_int_field_vectors and tests/int_field.rs. field_verify.py parses every payload, applies every level and computes every value, frame and stage hash with its own integer arithmetic, sharing no code with wai-rs. Both plant five faults in their own decode (an interpolation weight off by one, a hash multiplier changed, a layer's rounding flipped to floor, one ray sample too many, a level applied out of order) and require the corpus to catch each.
  • Breaking: api:rust:wai::codecs::AppliedForm::Level: the level form is a staged form of its own; a match over AppliedForm adds the arm, and is_refinement_only already counts it.
  • Breaking: api:rust:wai::int_field::Plant::ALL: the corpus plants a fifth fault, a level applied out of order; code that iterates Plant::ALL needs no change, code that names its length reads 5.
  • Breaking: api:rust:wai::int_field::Plant::LevelOrder: that fault's variant; a match over Plant adds the arm.
  • Breaking: api:rust:wai::int_field::corpus::SCENES: each scene now names the levels that refine it; read the first member of each pair for the scene's name.
  • Breaking: api:rust:wai::int_field::corpus::Verified::applications: verify counts the level applications it reproduced; a pattern over Verified adds the field or ...
  • Breaking: api:rust:wai::int_field::corpus::Verified::offers: verify counts the layers it offered; a pattern over Verified adds the field or ...