Skip to content

Drop @experimental from the TSL guides node once an external consumer wires it #3

Description

@DennisSmolek

The temporal-guides contract passed its cross-repo acceptance gate (spec M6): an external SSGI/SVGF consumer replaced its private temporal front-end with upscaler.guides and measured bit-identical still-camera stability, 1.275 s vs 1.288 s teleport reconvergence. @experimental came off the raw surface and MomentsPass in #1.

TemporalGuidesNode / temporalGuides() / UpscalerNode's guides option kept the tag. The reason is narrow and worth preserving: the contract those expose is the accepted one — what has no external mileage is the graph plumbing:

  • stable node identity across frames while ping-ponged products get re-pointed
  • the 1×1 nearest placeholder that keeps r32float format inference from ever seeing a filterable stand-in
  • graph-dep registration order (the guides node must precede the color chain so its dispatch lands before effect renders)
  • linked vs standalone mode selection, and the monolithic-dispatch() fallback on frames where the early stage couldn't run

All of that is verified by us only, via examples/13-guides-node and its dispatch-spy probe (120 guides + 120 late, 0 monolithic over 1 s).

Close when: a consumer outside this repo has built a THREE.PostProcessing graph on temporalGuides(...) + upscale(..., { guides }) and reported it working — then drop the tag from src/TemporalGuidesNode.ts, src/UpscalerNode.ts, and the status lines in README/TEMPORAL-GUIDES-SPEC.md. If integration instead surfaces ergonomic problems, this is the issue to redesign under while the tag still permits it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions