Nishi Family › Compare › 360 Worlds -- sovereign panoramic generation from the first byte

Nishi Compare · capabilities, evidence and delivery

360 Worlds -- sovereign panoramic generation from the first byte

Compare capabilities and delivery evidence. Source discovery, qualification, deployment and accepted outcomes are separate; an open contract names work still to verify.

Seamless equirectangular panoramas, HDR light probes, six-degree-of-freedom worlds and 360-degree video from procedural scenes, text, images and sketches, rendered and learned on the estate's own stack -- vs the September 2026 field

Overview

The purpose, declared position and evidence coverage of this domain. Source presence and completed acceptance are different measures.

Where we are. MEASURED 2026-09-28 by reading the estate before planning. Present: a sovereign integer path tracer over the procgen heightfield (nx_gi_path_lib gp_trace, graphics GR42) whose radiance exists before its single display encode (gp_encode); a Q14 atmosphere with Rayleigh ratios derived per channel from the channel wavelengths (nx_atmosphere); Q16.16 CORDIC sine, cosine and atan2 (fx.nx fx_sin_cos, nx_geo_query geo_atan2); an equirectangular longitude-latitude to pixel map in the geography sense (nx_viz_geo vg_equirect); the PNG writer. ABSENT-PROVEN over buildroot/runtime with corpus_complete=1: panorama 0, cubemap 0, RGBE 0, pano_ 0; fisheye 1 (a comment); equirect 26 hits, every one geography; OpenEXR appears only as a sniffed magic number (nx_media_sniff), never read or written. No organ in the estate produces a 360-degree image, an HDR image or a light probe.

Where we need to go. OPERATOR ASK (2026-09-28): a sovereign 360-degree generative board, because the synthetic photoshoot and the VR room need environments before any licensed real model exists, built Nishi-sovereign from the first byte to match and then exceed the field, with Blockade Labs Skybox AI, PanoPulse and the diffusion research as oracles and bars and never in the build or run path. Deliverable: seamless 2:1 equirectangular panoramas and 360-degree video in LDR and HDR from procedural scenes, text, images and sketches, in any art style, that serve as backdrops, as light probes and as explorable six-degree-of-freedom worlds for the synthetic human, the VR room, fine-art prints and virtual production.

The unit. 1 u = one measured session-leg (organ plus gate plus live flip), the standing calibration. Panorama quality is published in units the sphere defines rather than the flat image: seam ratio against neighbouring columns, polar detail per unit of solid angle, round-trip error through the cubemap, dynamic range in stops, light-probe relight error in PSNR and CIEDE2000, and outside omnidirectional quality scores.
Where we are: 4 of 21 contracts. PN1 to PN4 shipped on admission day: one sphere mapping, a panoramic camera in the path tracer, a sphere referee with its thresholds as data, and Radiance RGBE out of the estate; the viewer (PN5) completes M0, and no light probe is trusted yet
Cost to the first true 360: 5.5 u. M0: sphere mapping, the panoramic camera in the path tracer, the open HDR writer, the seam and pole referee and a sovereign viewer (PN1 to PN5); every pixel rendered on the sphere, so seams are absent by construction and the dynamic range is the scene's own
Cost to a light probe you can trust: 10.5 u. M1 adds the physical sky, the relight-consistency ruler, exact depth and normal layers with every panorama, and the time-of-day and weather ladder as data
Cost to worlds and endpoints: 17 u. M2: the scene behind the panorama exported for six degrees of freedom, the VR room environment, the synthetic photoshoot backdrop and its light, and 360-degree video through the estate's own codec lane
Cost to any style and any subject: 32.5 u. M3: fine-art styles on the sphere, a licence-clean corpus, the sovereign spherical diffusion model trained on it, image-to-360 outpainting, text-to-360 with spatial control and the lift of a generated panorama to 3D
What stays outside: every rival. Blockade Labs sells 8K seamless skyboxes, 16K HDR EXR and 32-bit HDRI for LED volumes, exported as equirectangular, cubemap or HDRI to WebXR and Horizon OS [pano_blockade_202609]; PanoPulse sells text and image to 360 with outpainting, 8K equirectangular and cubemap export and hands panoramas to a third-party splat service [pano_panopulse_202609]; both are the referee's opponents, never components

Business case

AxisPositionFiguresDecision
InvestmentM0 is 5.5 u of organ work on the renderer the estate already owns, and it alone yields a true, seamless, HDR 360; the generative model (PN16) is the single large rung and is scheduled after the rulers that will judge it36 u to every milestonefund M0 and M1 now: a trusted HDR probe unblocks the synthetic photoshoot and the VR room before any model is trained
Buy vs rent vs buildRendering: OWN (the estate's path tracer). Plates: FREE and licence-clean (997 CC0 HDRIs [pano_polyhaven_hdris_202609]). Training compute for PN16: the estate's own card first, rented GPU hours only when the modelwright R7 step measures the need. Oracle generations: bought per referee run only, never as productthe only paid lines are referee access and, if measured necessary, training hoursbuild the renderer path, rent nothing until a referee shows the rendered tier cannot reach its bar
MarketFilm and virtual production buy HDRI lighting and LED backplates, games and VR buy skyboxes, virtual tours buy panoramas (the incumbents' own positioning [pano_blockade_202609] [pano_panopulse_202609]); the estate's own photoshoot and VR room need them firstthe first customer is the estate's own synthetic photoshootenter through twiningest photoshoots and the synthroom room, then virtual production with PN20
Competitive positionThe incumbents own text-to-skybox speed and style breadth; research owns training-free spherical sampling and panorama-to-world lifting; nobody publishes a panorama that is a verified light probe of a six-degree-of-freedom world with exact depth and a licence-clean training ledgerrendered truth first, learned breadth second, both measured by a referee that reads the spherecompete on probe correctness, exact ground truth and licence; match on breadth with PN16 to PN18

Latest recorded release

2026-10-03 · PN25

THE VIEWER NAMES EVERY DOOR STEP AND ALWAYS SHOWS A PICTURE, PROMOTED 2026-10-03: nx_pano_view 599e700a (350928 B, from f9b1f539) through nx_organ_ship with loss record 86f3dfe0 (28 lost runs enumerated: 13 rewritten page-script lines and the starting status line, each with its gained successor, and 14 runtime or compiler diagnostics replaced by the current toolchain generation's wording) and reviewed behaviour record bd5a1913 (review c0e4e16e: receipts first differ at page_bytes and gain the four flat fields). What it now emits: (1) step reporting on the page with elapsed ms and STALLED after the conf row door_watch_ms, every refusal, GPU validation error (uncapturederror), lost device, script error and unhandled rejection named on the status line; (2) the canvas hidden until onSubmittedWorkDone of its first frame, so a black canvas never covers the picture; (3) a flat preview: the first ladder level at or under the conf row flat_preview_width (2048), decoded at the tracer's unit and display-encoded by nx_gi_path_lib gp_encode, written by nx_png_write, named t/<cid>.png and kept by the reap (nx_pano_tiles ptl_is_tile now owns <cid>.png beside <cid>.rgbe); shown from the first byte, kept while the door opens, kept for good when no door opens, with the status naming exactly that; ?door=flat declines the door on purpose; (4) the opening exposure -9.4 EV derived from the encode's constants; (5) every-wanted-tile-resident time on the status line. nx_pano_view_gate 56 -> 70 teeth, 70/70 GREEN (T14 to T14k: PNG named by its content id, the level choice from a clock-chosen bound, the img by content id, the level-0 preview byte-identical to the gate's own gp_encode loop, no capped channel, the step needles, the honesty check with its bite-proven neg-control on the 2026-10-01 wording, the clock's watch and the exposure unit and white on the page, a superseded .png retired by the reap; T11c and T11d refuse confs missing the two new rows by name). Conf rows flat_preview_width 2048 and door_watch_ms 20000 appended to knowledge/pano_view.conf with their calibration notes (door_watch_ms is UNCALIBRATED against field data and says so).

Release history and work log

Release entries describe recorded changes; they do not establish that every capability passed evaluation.

14 of 34 capability source symbols found|0 of them authored stronger-claims|20 open|coverage 411/1000|adoption 4 full / 10 partial

Evidence profile — what the gaps on this board actually are

Unstamped. No evidence profile is published for this domain yet: run nx_swcompare_evidence pano360 and this section fills itself on the next beat. No numbers are shown, deliberately — a zero-filled profile would read as a board with no gaps, which is the one wrong answer nobody would question.

Production map

Follow the dependencies, declared acceptance criteria and recorded priorities. Inspect source binding before treating a rank as executable work.

Ranking source binding: STALE_OR_INVALID_BINDING. Recorded priorities require current acceptance evidence and resource checks before execution.

Recorded ranking withheld

Retained ranking is not bound to the current plan and matrix: STALE_OR_INVALID_BINDING. Historical data remains retained. Refresh the ranking after resolving the input differences. Latest execution outcome is unverified.

Declared roadmap — contract, acceptance, executor, effort

Ladder to SOTA

Two dated targets, and every rung's role toward them. Best in class is the proven, deployed leader today; the frontier is the research edge as of its month. Each target is dated by a sotabar row and judged against the current month by the bar-age ruler (FRESH, ATTESTED with the fallback month named, or refused). Each rung is substrate (what the target's own methods consume), an arm (a sovereign arm that triangulates without competing for the number), a contender (its done-rule is a number against the target) or superseded (kept as capability, retired as a claim), and carries the rungs it stands on.
best-in-class (T-BIC-PANO), dated by SB-PN-GEN-2609 = 2026-09 ATTESTED. The incumbent's product bar met on the estate's own stack: an 8K seamless equirectangular panorama from a text prompt in any style and a 16K HDR EXR for lighting, exported as equirectangular, cubemap or HDRI to WebXR and headsets ref pano_blockade_202609
frontier (T-FR-PANOWORLD), dated by SB-PN-WORLD-2609 = 2026-09 ATTESTED. A 360-degree scene that is also an explorable, geometry-consistent 3D world streamed in real time, with the viewer free to move ref pano_gen_202609
frontier (T-FR-PROBE), dated by SB-PN-HDR-2609 = 2026-09 ATTESTED. A generated environment that is a correct light probe: HDR radiance that relights a subject consistently with the scene it depicts, verified against a physical render rather than asserted ref pano_hdr_202609
RungCloses withDefinition of done (pre-declared)ExecutorEst.
Sphere, equirectangular and cubemap mapping as one ruler (PN1)_ABSENT_:pano_dir_from_pxOne lib maps a pixel centre to a unit direction and back for the 2:1 equirectangular layout and the six cubemap faces, composing the estate's Q16.16 CORDIC (fx.nx fx_sin_cos, nx_geo_query geo_atan2) rather than a new trigonometry. Done-rule: the round trip pixel to direction to pixel is exact for EVERY pixel of a 1024 by 512 panorama and of six 256 by 256 faces, the two edge columns map to adjacent longitudes so the wrap is continuous by construction, the cubemap and equirectangular directions agree to a printed bound, and a neg-control that drops the half-pixel centre offset is refused by the round-trip toothOrgan1 u
Panoramic camera in the path tracer (PN2)
after PN1,graphics:GR42
_ABSENT_:pano_render_traceA new organ composes nx_gi_path_lib and PN1 to cast every primary ray of a 2:1 panorama through gp_trace, so the image is rendered on the sphere rather than stitched. Done-rule: a 1024 by 512 panorama of the procgen world renders with two runs of one seed byte-identical, PN4 reads its seam as clean, and a pinhole render of the same scene matches the panorama resampled into that view within the sampling noise the gate printsOrgan1.5 u
Open HDR format: Radiance RGBE written and read (PN3)
after PN2
_ABSENT_:pano_rgbe_writeThe estate writes and reads Radiance RGBE (.hdr, the public format every HDRI tool reads) with run-length encoding. Done-rule: a known radiance ramp survives the round trip within one shared-exponent quantum, the PN2 panorama is written from its radiance BEFORE the display encode with its dynamic range in stops published, and a truncated file is refused by nameOrgan1 u
Seam, pole and sphere referee (PN4)
after PN1
_ABSENT_:pano_seam_scoreOne ruler reads any equirectangular image as a sphere: seam ratio (the wrap-boundary column difference over the median neighbouring-column difference), polar ratio (horizontal detail per row divided by the cosine of its latitude, polar caps over the equator) and cubemap round-trip error. Done-rule: a planted seam, a planted planar paste at the pole and a clean render are separated with the numbers printed, both controls fire and the clean render passesOrgan1 u
Sovereign 360-degree viewer (PN5)
after PN2,PN3
_ABSENT_:pano_view_emitThe emitter publishes a self-contained viewer page with no third-party script (the estate's wasm or WGSL lane) that shows an equirectangular image as a sphere with drag and gyroscope look-around and an exposure control for HDR. Done-rule: nx_page_verify reads it GREEN, the served bytes equal the emitted bytes, and a phone-width render has no horizontal scrollOrgan1 u
Physical sky in the panorama (PN6)
after PN2,graphics:GR26
_ABSENT_:pano_sky_physicalThe path tracer's escape radiance comes from the Rayleigh and Mie atmosphere (the physics graphics GR26 emits on the GPU, here over nx_atmosphere on the CPU) rather than the gradient sky. Done-rule: horizon-to-zenith luminance and sun colour at declared sun elevations match the model's own analytic values within the printed bound, and the time of day is a data rowOrgan1.5 u
Light-probe consistency ruler (PN7)
after PN3,PN6
_ABSENT_:pano_probe_relightA reference object (a sphere of known albedo, then the synthetic subject) rendered INSIDE the scene is compared with the same object lit only by the panorama of that scene taken from the object's position. Done-rule: relight PSNR and CIEDE2000 are printed per probe, and a clipped LDR probe and a rotated probe, the two neg-controls, both score worse than the true probeOrgan1.5 u
Ground-truth layers with every panorama (PN8)
after PN2
_ABSENT_:pano_aov_layersEvery rendered panorama ships exact depth, normal and semantic layers from the renderer's own ray hits in the same projection, so every panorama is also a labelled training sample. Done-rule: depth to point cloud to depth round-trips exactly, and a layer written in the wrong projection is refused by the PN1 toothOrgan1 u
Time of day, weather and season as data (PN9)
after PN6
_ABSENT_:pano_scene_ladderA conf row selects sun position, cloud cover, fog and season. Done-rule: the same seed and row reproduce byte-identical, and eight declared scenes render through the ladder with their rows printed beside themOrgan1 u
Six degrees of freedom: the world, not the wallpaper (PN10)
after PN8,gameengine:GE82
_ABSENT_:pano_world_exportThe procgen scene behind a panorama exports as Gaussians or mesh the gameengine VR frame (GE82) consumes. Done-rule: a viewer moved one metre sees a disocclusion the panorama could not contain, rendered rather than smeared, and the frame-pacing referee reads the declared headset tier's rateOrgan2 u
VR room environments (PN11)
after PN7,synthroom:SR7
_ABSENT_:pano_room_envThe synthroom room loads a pano360 environment as both skybox and image-based light. Done-rule: the stereo render (synthroom SR7) holds its frame budget with it on, and the light on the synthetic human agrees with the probe per PN7Organ1 u
Synthetic photoshoot backdrop and light (PN12)
after PN7,twiningest:TI12
_ABSENT_:pano_shoot_backdropA photoshoot request names a pano360 scene; the synthetic subject is relit by that scene's HDR probe (twiningest TI12) and composited on its backdrop with matched camera, horizon and exposure. Done-rule: the composite's key-light direction agrees with the probe's dominant light within a declared angle, and a mismatched probe is caught by the same toothOrgan1.5 u
360-degree video (PN13)
after PN2,PN9
_ABSENT_:pano_video_emitA camera path or a time-of-day sweep renders as equirectangular frames with the spherical metadata a headset player reads, encoded through the estate's own codec lane. Done-rule: frames are deterministic per seed, temporal flicker is measured and published, and the file plays in the PN5 viewerOrgan2 u
Fine-art styles on the sphere (PN14)
after PN4
_ABSENT_:pano_style_spherePainterly operators (Kuwahara filtering and stroke-based rendering) run in cubemap space so strokes do not stretch toward the poles. Done-rule: PN4 reads the stylised panorama clean, and the same operator applied in equirectangular space, the neg-control, fails the polar toothOrgan1.5 u
Licence-clean panorama corpus ledger (PN15)
after PN8
_ABSENT_:pano_corpus_ledgerEvery training panorama carries source, licence and permitted use: the estate's own renders with PN8 labels, the 997 HDRIs Poly Haven lists under CC0 [pano_polyhaven_hdris_202609] [pano_polyhaven_license_202609] and consented captures. Done-rule: an item without a licence, or any third-party generator's output, is refused by name, and a model card prints the ledger digest it trained onOrgan1 u
Sovereign spherical diffusion model (PN16)
after PN15,modelwright:R7
_ABSENT_:pano_gen_denoiseA flow-matching transformer on the estate's DiT bricks, trained by the estate on the PN15 corpus (the GPU step is modelwright R7), with a spherical positional encoding and wrap-around attention. Done-rule: generated panoramas pass the PN4 seam and polar teeth without post-hoc healing, and a distribution score against held-out CC0 HDRIs is published beside the oracle's for the same promptsLocal model6 u
Image to 360: outpaint a photo or a painting (PN17)
after PN16,PN1
_ABSENT_:pano_outpaintA flat image is placed on the sphere at its estimated field of view and the rest is completed, first by a procgen world matched to its horizon and palette and then by PN16 inpainting, with the observed-or-inferred mask published. Done-rule: a crop from a known panorama is completed within a declared error against the withheld truthOrgan2 u
Text to 360 with spatial control (PN18)
after PN16
_ABSENT_:pano_text_placeA prompt's directional expressions (left, behind, above) place content at the named longitudes, and a sketch or layout conditions structure. Done-rule: angular placement error on a declared prompt set is published and a swapped-direction control is caughtLocal model2 u
External referee run (PN19)
after PN4,graphics:GR63
_ABSENT_:pano_ext_refereeOmnidirectional quality scores of the GC360IQ and blind-OIQA class and a human two-alternative forced choice against the incumbents' outputs for the same prompts, the oracles run outside the build path. Done-rule: scores are published per rung, and a deliberately seamed panorama, the neg-control, scores worseOrgan1.5 u
16K HDR tier and OpenEXR (PN20)
after PN3
_ABSENT_:pano_exr_writeThe estate writes OpenEXR half-float channels, the open format LED-volume and VFX pipelines read. Done-rule: a 16384 by 8192 HDR panorama renders through the scale ladder with its door announced, and the reader round-trips it exactlyOrgan2 u
Lift a generated panorama to 3D (PN21)
after PN8,PN16
_ABSENT_:pano_lift_depthA panorama with no scene behind it (from PN16 or an oracle) is lifted to depth and Gaussians for six degrees of freedom. Done-rule: the lift's depth error is measured on rendered panoramas whose depth is known exactly (PN8) and publishedLocal model3 u
RungRoleTowardStands onWhy
PN1substrateT-BIC-PANO-every panorama, every referee and every generator maps through it
PN2substrateT-FR-PROBEPN1,graphics:GR42 OPENthe rendered radiance a trusted probe is taken from
PN3substrateT-FR-PROBEPN2the open container the probe's dynamic range lives in
PN4substrateT-BIC-PANOPN1the ruler every panorama is accepted by
PN5armT-BIC-PANOPN2,PN3the delivery surface, scored by page verification rather than competing for the quality number
PN6substrateT-FR-PROBEPN2,graphics:GR26 DONEphysical sky radiance the probe must carry
PN7contenderT-FR-PROBEPN3,PN6its done-rule is relight error against an in-scene render
PN8substrateT-FR-PANOWORLDPN2the exact geometry every lift and every training sample consumes
PN9armT-BIC-PANOPN6variety as data, measured by reproduction rather than by the quality number
PN10contenderT-FR-PANOWORLDPN8,gameengine:GE82 OPENits done-rule is a rendered disocclusion at the headset's frame rate
PN11armT-FR-PROBEPN7,synthroom:SR7 UNRESOLVED(organ-unreadable)the VR room consumes the probe under its frame budget
PN12armT-FR-PROBEPN7,twiningest:TI12 UNRESOLVED(organ-unreadable)the synthetic photoshoot consumes the probe and the backdrop
PN13armT-FR-PANOWORLDPN2,PN9time and camera motion on the same world, scored by flicker
PN14armT-BIC-PANOPN4style breadth scored by the sphere ruler
PN15substrateT-BIC-PANOPN8the corpus the sovereign model must prove it trained on
PN16contenderT-BIC-PANOPN15,modelwright:R7 UNRESOLVED(organ-unreadable)its done-rule is a distribution score beside the oracle's on the same prompts
PN17contenderT-BIC-PANOPN16,PN1its done-rule is completion error against withheld truth
PN18contenderT-BIC-PANOPN16its done-rule is angular placement error
PN19substrateT-BIC-PANOPN4,graphics:GR63 OPENthe outside referee every contender is scored by
PN20contenderT-BIC-PANOPN3the incumbent's 16K HDR tier met on the estate's renderer
PN21contenderT-FR-PANOWORLDPN8,PN16its done-rule is depth error on panoramas whose depth is known

Milestones

MilestoneRungsCumulative
M0 · The first true 360: sphere mapping, panoramic camera, open HDR, sphere referee and viewerPN1,PN2,PN3,PN4,PN55.5 u
M1 · SOTA resolution on every core: 8K and 16K through tiles, and a light probe you can trustPN6,PN7,PN8,PN9,PN22,PN2514.5 u
M2 · The doors and the endpoints: the WebGPU filtering ladder, measured frame time, the Nishi browser's native door, six degrees of freedom, the VR room, the photoshoot and videoPN10,PN11,PN12,PN13,PN23,PN24,PN26,PN2728 u
M3 · Any style and any subject: the sovereign generative lanePN14,PN15,PN16,PN17,PN18,PN2143.5 u
M4 · Refereed against the incumbents at their own tierPN19,PN2047 u
RungCloses withDefinition of done (pre-declared)ExecutorEst.
Parallel render across the machine's measured cores (PN22)
after PN2
_ABSENT_:pano_render_parallelThe panorama is cut into row bands, one per core the machine reports at run time (never a typed count), each band traced with a per-pixel random stream derived from the seed and the pixel index so the answer cannot depend on the split, and the bands are joined in place. Done-rule: the render is byte-identical at 1, 2 and the measured core count for the same seed, and the report prints the core count with the wall time beside the single-core wall timeOrgan1 u
RungRoleTowardStands onWhy
PN22substrateT-BIC-PANOPN2every rung that renders a panorama pays for one core today; the measured cores are the first factor of throughput, before any GPU door
RungCloses withDefinition of done (pre-declared)ExecutorEst.
WebGPU decode to float, mip chain and anisotropic filtering (PN23)
after PN5
_ABSENT_:pano_gpu_decodeOn the WebGPU door, the RGBE texels decode ONCE on the GPU into an rgba16float texture with a full mip chain generated on the GPU, sampled with trilinear and anisotropic filtering and seam-aware derivatives, so a wide field of view over an 8K or 16K panorama shows no minification shimmer and no seam line. Done-rule: a captured frame at the widest field of view scores lower temporal shimmer than the four-tap exact path on the same view, the seam column shows no mip spike, and the decode matches the estate's reader texel for texelOrgan1.5 u
Cube-map sampling in the shader IR (PN24)
after PN5,PN23
_ABSENT_:pano_cube_sampletexture_cube enters nx_shader_ir and nx_wgsl's WGSL backend (the gameengine skybox gains it too); the equirectangular texels are resampled on the GPU into six cube faces through nx_pano_lib's own cube convention, and the view samples the cube with seamless hardware filtering, so the poles are sampled at the equator's density. Done-rule: pole and equator rows of a captured frame carry equal texel density within the referee's bound, and the cube faces round-trip to the equirectangular texels within the resampling boundOrgan2 u
Tiled multi-resolution streaming for 8K and 16K (PN25)
after PN5,PN22
_ABSENT_:pano_tile_pyramidThe emitter cuts every level into content-addressed tiles with a one-texel border and a native tile manifest; the WebGPU door fetches only the tiles the view needs at the level whose texel density matches the screen, so an 8K or 16K panorama paints its first frame from kilobytes and sharpens as tiles arrive. Done-rule: a 16384 x 8192 HDR panorama opens with first paint under the measured budget from a cold cache, the bytes fetched for a view are within the visible-tile bound, and no seam shows at tile borders in a captured frameOrgan3 u
Measured GPU frame time on the page (PN26)
after PN5
_ABSENT_:pano_gpu_timingThe WebGPU door requests timestamp-query and publishes measured GPU milliseconds per frame beside the door line, carried to the estate through nx_gpu_timestamp_lib's lossless transport. Done-rule: the page reports a measured GPU frame time on a device that grants the feature, says UNMEASURED by name on one that does not, and the transported value matches the page's to the nanosecondOrgan0.5 u
The Nishi browser's native panorama door, superior to the WebGPU page (PN27)
after PN5,browser:BR23
_ABSENT_:pano_native_doorA native estate client (nx_pano_native) reads view.nxr, verifies every level by its content id, compiles the SAME NishiLang shader source in (never WGSL text), and renders through the sovereign GPU lane in full float radiance with HDR output straight to the display; the page's nishi-game marker names it once it exists, and the browser hands it the page URL (browser BR23's launcher passes no argument today). Done-rule: opened in the Nishi browser, the same panorama at the same view bit-compares against the reference-browser WebGPU capture at SDR, and the native door is measured superior on declared axes: radiance precision, HDR headroom delivered, frame time and resident memoryOrgan3 u
RungRoleTowardStands onWhy
PN23contenderT-BIC-PANOPN5filtering quality at the incumbents' resolutions is part of the viewer bar
PN24contenderT-BIC-PANOPN5,PN23uniform texel density at the poles is where equirectangular viewers lose to cube-based ones
PN25contenderT-BIC-PANOPN5,PN228K and 16K are the incumbents' tiers; a viewer that cannot stream them does not meet the bar
PN26substrateT-BIC-PANOPN5a frame time nobody measured cannot be claimed faster
PN27contenderT-BIC-PANOPN5,browser:BR23 UNRESOLVED(no-matrix-row)the estate's own browser is the door that must beat every third-party one on measured axes
Ladder verdict. LADDERED. Targets, rung roles and bars are counted in the tables below, each partition re-derived beside its total. Bars read FRESH against the current month 2026-10.
Ladder verdict, counted (17 rows, more than the 12-row disclosure bar)
Ladder verdict, counted
ClassCountNote
targets3sotatarget rows on the plan
best in class1targets whose class is best-in-class, by code
frontier2targets whose class is frontier, by code
undated0targets naming no bar that exists
bad class0targets whose class is neither word
duplicate0target ids an earlier row already carries
rungs27rung rows on the plan
placed27rungs carrying a rungrole row
unplaced0rungs with no role toward any target
bad role0rungrole rows naming a role the ladder does not know
bad target0rungrole rows naming a target no sotatarget row declares
rungs, summed27RECONCILED: the parts sum to the total 27
substrate10what the target's own methods consume
arm6a sovereign arm that triangulates without competing for the number
contender11its done-rule is a number against the target
superseded0kept as capability, retired as a claim
placed, summed27RECONCILED: the parts sum to the total 27
Bar freshness, counted
ClassCountNote
bars4sotabar rows on the plan
fresh0the bar month is the current month
attested4an older bar with a this-month barscan reporting no newer entry
stale0a this-month scan saw a newer month the bar ignores
unattested0nobody looked this month
malformed0a sotabar row missing a field
duplicate0bar ids an earlier row already carries
bars, summed4RECONCILED: the parts sum to the total 4
current month2026-10the month every bar is judged against
Treatment verdict. NOT DECLARED. No rung on this board declares its three-step treatment (a treat row naming the MCP row, the API route, the primitive it composes, the workflow that composes it and the agent beat that runs it); the ranker labels every rung TREATMENT-UNDECLARED until it does.

Inspect a rung and its prerequisites

Declared nodes 27. Rank input binding: STALE_OR_INVALID_BINDING. Dependency order is authored. Implementation, acceptance evidence, authority and resource readiness are unverified. No action is recommended or dispatched here.

Plan SHA-256 df174f8ebdd02d9bdbc25b3a35a0821110fb107448c99a5411bc2fb50bb04f5b. Target rows 3; role rows 27. Existing risks and release worklog retain their own scope; no node completion is inferred.

Runtime observation coverage: 0 of 27 rungs have current, identity-bound execution observations. Observation may report RED. Accepted completion remains unknown; source presence, qualification and deployment do not establish it.

Use Enter or Space on a rung to inspect its contract. Prerequisite links locate another rung in this list; open its summary to inspect it. Estimates are authored effort, not forecasts.

  1. PN1 — Sphere, equirectangular and cubemap mapping as one ruler

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: _ABSENT_:pano_dir_from_px

    Acceptance: One lib maps a pixel centre to a unit direction and back for the 2:1 equirectangular layout and the six cubemap faces, composing the estate's Q16.16 CORDIC (fx.nx fx_sin_cos, nx_geo_query geo_atan2) rather than a new trigonometry. Done-rule: the round trip pixel to direction to pixel is exact for EVERY pixel of a 1024 by 512 panorama and of six 256 by 256 faces, the two edge columns map to adjacent longitudes so the wrap is continuous by construction, the cubemap and equirectangular directions agree to a printed bound, and a neg-control that drops the half-pixel centre offset is refused by the round-trip tooth

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  2. PN2 — Panoramic camera in the path tracer

    Prerequisites: PN1 (acceptance unverified)

    Contract: _ABSENT_:pano_render_trace

    Acceptance: A new organ composes nx_gi_path_lib and PN1 to cast every primary ray of a 2:1 panorama through gp_trace, so the image is rendered on the sphere rather than stitched. Done-rule: a 1024 by 512 panorama of the procgen world renders with two runs of one seed byte-identical, PN4 reads its seam as clean, and a pinhole render of the same scene matches the panorama resampled into that view within the sampling noise the gate prints

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  3. PN3 — Open HDR format: Radiance RGBE written and read

    Prerequisites: PN2 (acceptance unverified)

    Contract: _ABSENT_:pano_rgbe_write

    Acceptance: The estate writes and reads Radiance RGBE (.hdr, the public format every HDRI tool reads) with run-length encoding. Done-rule: a known radiance ramp survives the round trip within one shared-exponent quantum, the PN2 panorama is written from its radiance BEFORE the display encode with its dynamic range in stops published, and a truncated file is refused by name

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  4. PN4 — Seam, pole and sphere referee

    Prerequisites: PN1 (acceptance unverified)

    Contract: _ABSENT_:pano_seam_score

    Acceptance: One ruler reads any equirectangular image as a sphere: seam ratio (the wrap-boundary column difference over the median neighbouring-column difference), polar ratio (horizontal detail per row divided by the cosine of its latitude, polar caps over the equator) and cubemap round-trip error. Done-rule: a planted seam, a planted planar paste at the pole and a clean render are separated with the numbers printed, both controls fire and the clean render passes

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  5. PN5 — Sovereign 360-degree viewer

    Prerequisites: PN2 (acceptance unverified), PN3 (acceptance unverified)

    Contract: _ABSENT_:pano_view_emit

    Acceptance: The emitter publishes a self-contained viewer page with no third-party script (the estate's wasm or WGSL lane) that shows an equirectangular image as a sphere with drag and gyroscope look-around and an exposure control for HDR. Done-rule: nx_page_verify reads it GREEN, the served bytes equal the emitted bytes, and a phone-width render has no horizontal scroll

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  6. PN6 — Physical sky in the panorama

    Prerequisites: PN2 (acceptance unverified)

    Contract: _ABSENT_:pano_sky_physical

    Acceptance: The path tracer's escape radiance comes from the Rayleigh and Mie atmosphere (the physics graphics GR26 emits on the GPU, here over nx_atmosphere on the CPU) rather than the gradient sky. Done-rule: horizon-to-zenith luminance and sun colour at declared sun elevations match the model's own analytic values within the printed bound, and the time of day is a data row

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  7. PN7 — Light-probe consistency ruler

    Prerequisites: PN3 (acceptance unverified), PN6 (acceptance unverified)

    Contract: _ABSENT_:pano_probe_relight

    Acceptance: A reference object (a sphere of known albedo, then the synthetic subject) rendered INSIDE the scene is compared with the same object lit only by the panorama of that scene taken from the object's position. Done-rule: relight PSNR and CIEDE2000 are printed per probe, and a clipped LDR probe and a rotated probe, the two neg-controls, both score worse than the true probe

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  8. PN8 — Ground-truth layers with every panorama

    Prerequisites: PN2 (acceptance unverified)

    Contract: _ABSENT_:pano_aov_layers

    Acceptance: Every rendered panorama ships exact depth, normal and semantic layers from the renderer's own ray hits in the same projection, so every panorama is also a labelled training sample. Done-rule: depth to point cloud to depth round-trips exactly, and a layer written in the wrong projection is refused by the PN1 tooth

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  9. PN9 — Time of day, weather and season as data

    Prerequisites: PN6 (acceptance unverified)

    Contract: _ABSENT_:pano_scene_ladder

    Acceptance: A conf row selects sun position, cloud cover, fog and season. Done-rule: the same seed and row reproduce byte-identical, and eight declared scenes render through the ladder with their rows printed beside them

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  10. PN10 — Six degrees of freedom: the world, not the wallpaper

    Prerequisites: PN8 (acceptance unverified)

    Contract: _ABSENT_:pano_world_export

    Acceptance: The procgen scene behind a panorama exports as Gaussians or mesh the gameengine VR frame (GE82) consumes. Done-rule: a viewer moved one metre sees a disocclusion the panorama could not contain, rendered rather than smeared, and the frame-pacing referee reads the declared headset tier's rate

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  11. PN11 — VR room environments

    Prerequisites: PN7 (acceptance unverified)

    Contract: _ABSENT_:pano_room_env

    Acceptance: The synthroom room loads a pano360 environment as both skybox and image-based light. Done-rule: the stereo render (synthroom SR7) holds its frame budget with it on, and the light on the synthetic human agrees with the probe per PN7

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  12. PN12 — Synthetic photoshoot backdrop and light

    Prerequisites: PN7 (acceptance unverified)

    Contract: _ABSENT_:pano_shoot_backdrop

    Acceptance: A photoshoot request names a pano360 scene; the synthetic subject is relit by that scene's HDR probe (twiningest TI12) and composited on its backdrop with matched camera, horizon and exposure. Done-rule: the composite's key-light direction agrees with the probe's dominant light within a declared angle, and a mismatched probe is caught by the same tooth

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  13. PN13 — 360-degree video

    Prerequisites: PN2 (acceptance unverified), PN9 (acceptance unverified)

    Contract: _ABSENT_:pano_video_emit

    Acceptance: A camera path or a time-of-day sweep renders as equirectangular frames with the spherical metadata a headset player reads, encoded through the estate's own codec lane. Done-rule: frames are deterministic per seed, temporal flicker is measured and published, and the file plays in the PN5 viewer

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  14. PN14 — Fine-art styles on the sphere

    Prerequisites: PN4 (acceptance unverified)

    Contract: _ABSENT_:pano_style_sphere

    Acceptance: Painterly operators (Kuwahara filtering and stroke-based rendering) run in cubemap space so strokes do not stretch toward the poles. Done-rule: PN4 reads the stylised panorama clean, and the same operator applied in equirectangular space, the neg-control, fails the polar tooth

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  15. PN15 — Licence-clean panorama corpus ledger

    Prerequisites: PN8 (acceptance unverified)

    Contract: _ABSENT_:pano_corpus_ledger

    Acceptance: Every training panorama carries source, licence and permitted use: the estate's own renders with PN8 labels, the 997 HDRIs Poly Haven lists under CC0 [@pano_polyhaven_hdris_202609] [@pano_polyhaven_license_202609] and consented captures. Done-rule: an item without a licence, or any third-party generator's output, is refused by name, and a model card prints the ledger digest it trained on

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  16. PN16 — Sovereign spherical diffusion model

    Prerequisites: PN15 (acceptance unverified)

    Contract: _ABSENT_:pano_gen_denoise

    Acceptance: A flow-matching transformer on the estate's DiT bricks, trained by the estate on the PN15 corpus (the GPU step is modelwright R7), with a spherical positional encoding and wrap-around attention. Done-rule: generated panoramas pass the PN4 seam and polar teeth without post-hoc healing, and a distribution score against held-out CC0 HDRIs is published beside the oracle's for the same prompts

    Authored effort: 6. Executor kind: Local model. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  17. PN17 — Image to 360: outpaint a photo or a painting

    Prerequisites: PN16 (acceptance unverified), PN1 (acceptance unverified)

    Contract: _ABSENT_:pano_outpaint

    Acceptance: A flat image is placed on the sphere at its estimated field of view and the rest is completed, first by a procgen world matched to its horizon and palette and then by PN16 inpainting, with the observed-or-inferred mask published. Done-rule: a crop from a known panorama is completed within a declared error against the withheld truth

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  18. PN18 — Text to 360 with spatial control

    Prerequisites: PN16 (acceptance unverified)

    Contract: _ABSENT_:pano_text_place

    Acceptance: A prompt's directional expressions (left, behind, above) place content at the named longitudes, and a sketch or layout conditions structure. Done-rule: angular placement error on a declared prompt set is published and a swapped-direction control is caught

    Authored effort: 2. Executor kind: Local model. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  19. PN19 — External referee run

    Prerequisites: PN4 (acceptance unverified)

    Contract: _ABSENT_:pano_ext_referee

    Acceptance: Omnidirectional quality scores of the GC360IQ and blind-OIQA class and a human two-alternative forced choice against the incumbents' outputs for the same prompts, the oracles run outside the build path. Done-rule: scores are published per rung, and a deliberately seamed panorama, the neg-control, scores worse

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  20. PN20 — 16K HDR tier and OpenEXR

    Prerequisites: PN3 (acceptance unverified)

    Contract: _ABSENT_:pano_exr_write

    Acceptance: The estate writes OpenEXR half-float channels, the open format LED-volume and VFX pipelines read. Done-rule: a 16384 by 8192 HDR panorama renders through the scale ladder with its door announced, and the reader round-trips it exactly

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  21. PN21 — Lift a generated panorama to 3D

    Prerequisites: PN8 (acceptance unverified), PN16 (acceptance unverified)

    Contract: _ABSENT_:pano_lift_depth

    Acceptance: A panorama with no scene behind it (from PN16 or an oracle) is lifted to depth and Gaussians for six degrees of freedom. Done-rule: the lift's depth error is measured on rendered panoramas whose depth is known exactly (PN8) and published

    Authored effort: 3. Executor kind: Local model. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  22. PN22 — Parallel render across the machine's measured cores

    Prerequisites: PN2 (acceptance unverified)

    Contract: _ABSENT_:pano_render_parallel

    Acceptance: The panorama is cut into row bands, one per core the machine reports at run time (never a typed count), each band traced with a per-pixel random stream derived from the seed and the pixel index so the answer cannot depend on the split, and the bands are joined in place. Done-rule: the render is byte-identical at 1, 2 and the measured core count for the same seed, and the report prints the core count with the wall time beside the single-core wall time

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  23. PN23 — WebGPU decode to float, mip chain and anisotropic filtering

    Prerequisites: PN5 (acceptance unverified)

    Contract: _ABSENT_:pano_gpu_decode

    Acceptance: On the WebGPU door, the RGBE texels decode ONCE on the GPU into an rgba16float texture with a full mip chain generated on the GPU, sampled with trilinear and anisotropic filtering and seam-aware derivatives, so a wide field of view over an 8K or 16K panorama shows no minification shimmer and no seam line. Done-rule: a captured frame at the widest field of view scores lower temporal shimmer than the four-tap exact path on the same view, the seam column shows no mip spike, and the decode matches the estate's reader texel for texel

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  24. PN24 — Cube-map sampling in the shader IR

    Prerequisites: PN5 (acceptance unverified), PN23 (acceptance unverified)

    Contract: _ABSENT_:pano_cube_sample

    Acceptance: texture_cube enters nx_shader_ir and nx_wgsl's WGSL backend (the gameengine skybox gains it too); the equirectangular texels are resampled on the GPU into six cube faces through nx_pano_lib's own cube convention, and the view samples the cube with seamless hardware filtering, so the poles are sampled at the equator's density. Done-rule: pole and equator rows of a captured frame carry equal texel density within the referee's bound, and the cube faces round-trip to the equirectangular texels within the resampling bound

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  25. PN25 — Tiled multi-resolution streaming for 8K and 16K

    Prerequisites: PN5 (acceptance unverified), PN22 (acceptance unverified)

    Contract: _ABSENT_:pano_tile_pyramid

    Acceptance: The emitter cuts every level into content-addressed tiles with a one-texel border and a native tile manifest; the WebGPU door fetches only the tiles the view needs at the level whose texel density matches the screen, so an 8K or 16K panorama paints its first frame from kilobytes and sharpens as tiles arrive. Done-rule: a 16384 x 8192 HDR panorama opens with first paint under the measured budget from a cold cache, the bytes fetched for a view are within the visible-tile bound, and no seam shows at tile borders in a captured frame

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  26. PN26 — Measured GPU frame time on the page

    Prerequisites: PN5 (acceptance unverified)

    Contract: _ABSENT_:pano_gpu_timing

    Acceptance: The WebGPU door requests timestamp-query and publishes measured GPU milliseconds per frame beside the door line, carried to the estate through nx_gpu_timestamp_lib's lossless transport. Done-rule: the page reports a measured GPU frame time on a device that grants the feature, says UNMEASURED by name on one that does not, and the transported value matches the page's to the nanosecond

    Authored effort: 0.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

  27. PN27 — The Nishi browser's native panorama door, superior to the WebGPU page

    Prerequisites: PN5 (acceptance unverified)

    Contract: _ABSENT_:pano_native_door

    Acceptance: A native estate client (nx_pano_native) reads view.nxr, verifies every level by its content id, compiles the SAME NishiLang shader source in (never WGSL text), and renders through the sovereign GPU lane in full float radiance with HDR output straight to the display; the page's nishi-game marker names it once it exists, and the browser hands it the page URL (browser BR23's launcher passes no argument today). Done-rule: opened in the Nishi browser, the same panorama at the same view bit-compares against the reference-browser WebGPU capture at SDR, and the native door is measured superior on declared axes: radiance precision, HDR headroom delivered, frame time and resident memory

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

    Runtime observation: UNKNOWN; outcome UNKNOWN; observed epoch -1. Declared owner: . Receipt , SHA-256 . Identity-bound observation is not accepted completion. Qualification and deployment remain unverified by this projection.

Learning and practice paths

No structured learning path is declared for this plan. Existing research, roadmap and worklog remain available above.

Rung dossiers — every record that bears on a rung, in one place

Joined by symbol, never typed. Each dossier is assembled on every publish from the rows this board already carries: the plan's rung row, the matrix row that carries its contract symbol (its status re-measured by the one symbol ruler), the gate the organ declares and the verdict the evidence referee recorded on its last run, the reference marks in the rung text, the design rows that name the rung and the work log filed against it. The capability matrix links each cell to its dossier and each dossier links back to its cell and forward to the rungs it stands on; a dependency naming no rung on this plan is written as UNRESOLVED rather than linked. Absences are named: NO-MATRIX-ROW, NO-GATE-DECLARED, UNRECORDED.
Gate verdicts: UNSTAMPED — no per-gate verdict artifact is published for this domain yet (nx_swcompare_evidence pano360 writes it beside its stamp); every gate below reads UNRECORDED until it runs.
Gate declarations: knowledge/organ_gate.conf read from this working directory (1 rows) and from the estate root (196 rows); rows in both counted once: 0; declarations read: 197. Every declaration in either copy counts, so a stub beside the publisher can never hide the root.
PN1 Sphere, equirectangular and cubemap mapping as one ruler · cell LANDED · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_dir_from_px · executor Organ · 1 u · stands on nothing
Definition of doneOne lib maps a pixel centre to a unit direction and back for the 2:1 equirectangular layout and the six cubemap faces, composing the estate's Q16.16 CORDIC (fx.nx fx_sin_cos, nx_geo_query geo_atan2) rather than a new trigonometry. Done-rule: the round trip pixel to direction to pixel is exact for EVERY pixel of a 1024 by 512 panorama and of six 256 by 256 faces, the two edge columns map to adjacent longitudes so the wrap is continuous by construction, the cubemap and equirectangular directions agree to a printed bound, and a neg-control that drops the half-pixel centre offset is refused by the round-trip tooth
Matrix cellMAP: sphere, equirectangular and cubemap mapping with an exact pixel round trip · runtime/nx_pano_lib.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_lib; declare nx_pano_lib TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-09-28 measure RESEARCH LEG 2026-09-28, every source fetched by the Nishi researcher and pinned: two arXiv API listings (360-degree generation, 80 entries; HDR and lighting, 60 entries), the Blockade Labs and PanoPulse product pages, the Poly Haven HDRI listing (997 records by two independent counters, the asset type field and the publication date field) and its licence page (all assets CC0). civitai.red answered the researcher 403 and nothing was saved. The incumbent's Sketch Mode, named in an outside summary the operator pasted, does not appear on its own mirrored page and is not cited.
2026-09-28 queue next: M0 in order PN1 (the mapping lib and its gate), PN4 (the referee, so every later rung is judged), PN2 (the panoramic camera), PN3 (RGBE), PN5 (the viewer); each ships with a gate whose controls are planted.
2026-09-29 land SHIPPED 2026-09-28: nx_pano_lib (the sphere as one ruler) through its gate nx_pano_lib_gate, promoted ed41dc74, 19/19 GREEN on the first build. The equirectangular round trip is exact AND lands on the pixel centre for every one of 524,288 pixels at 1024 by 512 and for a size the run chose from the clock (488 by 244, 119,072 pixels); the corner-mapping neg-control failed all 119,072 of its pixels (BITE-PROVEN); the cubemap round trip is exact for all 393,216 pixels of six 256 by 256 faces; every cube pixel lands within half a pitch of its cell centre plus the atan table's residue (204 and 208 Q16 units against a 265 bound); the backward direction lands on column 1023 and probes either side of -z land on columns 1021 and 2, adjacent across the wrap. Composes fx.nx CORDIC and nx_geo_query atan2; no new trigonometry.
2026-10-01 measure THE NEXT PRECISION WALL WAS PN1 ITSELF, AT THE 16K RENDER'S SUB-PIXEL GRID: nx_pano_rayfid 32768 on the Q16.16 PN1 read INSTRUMENT-FAULT -- its own unquantised round trip sent 29,160,465 of 536,870,912 centres (54 permil; 60 permil within 45 degrees of the horizon) one pixel sideways, while the camera's unit 2^30 added only 3,063 more. Half a pitch at 32768 wide is about six Q16 angle units and the CORDIC round trip reaches it: the 16K frame's 2 x 2 anti-aliasing samples would have landed in a neighbour's cell 1 time in 20
2026-10-01 land PN1 IS Q30, PROMOTED 2026-09-30: composed from nx_fixq30_lib (pi, the atan table and the gain DERIVED by series, 30-step CORDIC) -- the incumbent nx_capsearch named, not a new trigonometry; every equirectangular call takes an explicit context (pano_ctx / pano_ctx_free: fq_ctx maps 320 B, above the 256 B small arena, so each batch call makes one and frees it, never one per pixel); directions at PANO_DIR_ONE = 2^60, cube faces Q30, a longitude a hair below -pi wraps to the last column. nx_pano_lib_gate 44315205 25/25 (T11 the polar, equator and a run-chosen row of the 32768-wide grid and T12 of the 65536-wide grid round-trip exactly; T11a and T12a the Q16 PN1 rebuilt bit for bit sends 716 of 32,768 and 65,536 of 65,536 polar centres to a neighbour), nx_pano_render 4bf1ed1f, nx_pano_render_gate bd0f63cc 17/17, nx_pano_referee_gate c528a7e6 13/13 (the referee was still on the pre-y-fix PN1), nx_pano_parallel_gate 19235271 35/35, nx_pano_rayfid 859e70eb; _offc twins installed. CAPLOSS was overridden with every lost run named: the source paths fx.nx, nx_geo_query, nx_geo_distance, nx_isqrt and the symbols fx_sin_cos, fx_cordic_atan, fx_normalize_angle, geo_atan2 (the Q16 closure PN1 no longer links; the guard's own source_removed counts match), and in PN1's gate the labels renamed in this change (T4, T7, T7a, T10a, unit_dev_q32, cube_max_dlon_q16, cube_max_dlat_q16, g_dir_fx_one_y)
2026-10-01 lesson A NEG-CONTROL THAT REBUILDS HALF A DEFECTIVE SYSTEM GOES VACUOUS WHEN THE OTHER HALF IMPROVES: T10a rebuilt only the FX_ONE-y FORWARD and borrowed the lib's inverse; once the inverse was Q30 it landed the old forward's row 1761 home (0 failures) and the bite read VACUOUS, i.e. yesterday's 13 tilted centres needed BOTH Q16 halves. Rebuilt as the whole pre-2026-09-29 PN1, forward and inverse, it fires on the same 13. A neg-control stands for a SYSTEM; borrow nothing from the subject it is controlling
2026-10-01 measure the derived pi is 3,373,259,436 in Q30 against pi x 2^30 = 3,373,259,426.07: ten units, 3e-9 relative, the series' own truncation. Forward and inverse share the one pi, so round trips stay exact and the frame's absolute angle scale is off by 3e-9 -- 1/30000 of a pixel pitch at 65536 wide (emitted as pi_q30 by nx_pano_lib_gate for an outside check)
2026-10-01 measure nx_pano_rayfid 32768 full population on the Q30 PN1 chain: all 536870912 pixel centres of a 32768x16384 panorama, no sample. escaped=0, band_escaped=0 of 268435456 band pixels, dup_left=0, max_off_px=0, control_escaped=0 and band_control_escaped=0 (PN1's own inverse manufactured no escape, so the instrument is sound), 3314439 ms on the NAS, verdict=RESOLVED. Q16 PN1 had failed 54 permil of centres at this grid; Q30 resolves every one. The run's argv0 was the stage slot nx_pano_rayfid.sov.elf.new through scratch row nx_pano_rayfid_staged, reaped after this row; its identity with the promoted 859e70eb rests on the promote receipt and was not re-hashed after the run.
PN2 Panoramic camera in the path tracer · cell LANDED · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_render_trace · executor Organ · 1.5 u · stands on PN1, graphics:GR42 (UNRESOLVED: no such rung on this plan)
Definition of doneA new organ composes nx_gi_path_lib and PN1 to cast every primary ray of a 2:1 panorama through gp_trace, so the image is rendered on the sphere rather than stitched. Done-rule: a 1024 by 512 panorama of the procgen world renders with two runs of one seed byte-identical, PN4 reads its seam as clean, and a pinhole render of the same scene matches the panorama resampled into that view within the sampling noise the gate prints
Matrix cellRENDER: panoramic camera, every primary ray cast on the sphere · runtime/nx_pano_render_lib.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_render_lib; declare nx_pano_render_lib TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-09-28 lesson THE SOVEREIGN FIRST BYTE OF A 360 IS A CAMERA, NOT A MODEL: the path tracer already carries radiance before its single display encode, so one panoramic primary ray per pixel yields a seamless, exact-HDR panorama with depth and normals for free; the diffusion field spends its papers healing seams and approximating HDR from exposures, and the rendered tier is the ground truth that will judge the learned one.
2026-09-29 land SHIPPED: nx_pano_render_lib (pano_render_trace) and the nx_pano_render CLI through nx_pano_render_gate, promoted 6e529b4d (gate) and bae86d0d (first CLI), 10/10 GREEN: 32,768 paths at 128 by 64 by 4 samples, deterministic (repeat difference 0) with a live sampler (0.69 grey levels between streams); the referee reads the render clean (seam rank 948, polar ratio 115); 9 stops between the brightest and dimmest radiance; a separate pinhole looking down +z agrees with the panorama at 5.7 grey levels against a 9.4 noise-derived bound while the mirrored panorama misses at 24.2 (BITE-PROVEN). The first gate draft ran at 64 by 32, where a panorama pixel was twice the pinhole's angular size and the margin read 8.3 against 9.5: the resolution was matched before shipping, never the bound widened.
2026-09-29 measure First full-size panorama through the promoted camera (nx_pano_render, seed 77, clear weather): 1920 x 960 at 4 samples per pixel, 7,372,800 paths in 815,568 ms on ONE core (9,040 paths per second). Referee on the render: seam rank 974 permil CLEAN, polar ratio 20 permil CLEAN; 11 stops of dynamic range, radiance max 1,873 times the white-surface unit. The camera is single-threaded by construction; PN22 is the parallel door
PN3 Open HDR format: Radiance RGBE written and read · cell LANDED · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_rgbe_write · executor Organ · 1 u · stands on PN2
Definition of doneThe estate writes and reads Radiance RGBE (.hdr, the public format every HDRI tool reads) with run-length encoding. Done-rule: a known radiance ramp survives the round trip within one shared-exponent quantum, the PN2 panorama is written from its radiance BEFORE the display encode with its dynamic range in stops published, and a truncated file is refused by name
Matrix cellHDR: Radiance RGBE written and read, radiance taken before the display encode · runtime/nx_pano_rgbe.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_rgbe; declare nx_pano_rgbe TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-09-29 land SHIPPED: nx_pano_rgbe (Radiance RGBE with the format's run-length encoding, integer throughout) through nx_pano_rgbe_gate, promoted 54aa9005, 19/19 GREEN: a 40-stop ramp round-trips inside half a shared-exponent quantum on every channel, a constant image encodes to 459 bytes against 8,192 flat, the flat path covers widths under 8, file and in-memory round trips agree, a truncated file (-5), a foreign FORMAT (-3) and a missing signature (-2) are refused by name, the lowered-exponent neg-control fires on 41 channels, and a PN2 render written from its radiance BEFORE the display encode reads back within the bound with 13 stops on both sides. Per the native-formats rule RGBE is the door out; inside the estate radiance stays the renderer's own accumulator. The CLI gained an optional out.hdr argument writing exactly that.
2026-09-29 land nx_pano_render reshipped be869c07 with an optional out.hdr argument: the accumulator divided by spp and written as Radiance RGBE by pano_rgbe_write. Content ruler lost one run, the superseded usage line (allow_loss_v1 9b41e709). Behaviour change reviewed in knowledge/status/pano360_ship_review_20260928.txt (sha 5135927f): the first difference is the ms wall clock, where the live binary differs from itself (67 vs 75 ms on two runs), and the 12-byte growth is exactly the new hdr_bytes field
2026-09-29 land THE TEXEL LAYER: nx_pano_rgbe split into a container layer (rgbe_header, rgbe_row_get) and a radiance layer, with pano_rgbe_unpack (the stored texels exactly, four bytes per pixel r g b e) and pano_rgbe_pixels (the same texels from radiance) sharing ONE per-pixel encoder rgbe_px_put with the scanline writer. nx_pano_rgbe_gate 19 -> 29/29 GREEN, shipped 9c561dfc: a run-length file unpacks to exactly the texel writer's bytes on both paths, the refusals are the decoder's, and the neg-control (the same texels in the file's planar scanline order) fires the byte tooth
2026-09-29 land nx_pano_rgbe grows the texel stream writer: rgbe_row_bound, rgbe_fd_put, rgbe_px_planes, pano_rgbe_write_px (texels to a Radiance file one scanline at a time, so an 8K or 16K frame costs one scanline of scratch beyond its texels); gate 34/34 GREEN promoted 1bebd396 (T11..T11d: the stream equals the radiance encoder on the run-length and the flat path, a flipped texel byte bites)
PN4 Seam, pole and sphere referee · cell LANDED · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_seam_score · executor Organ · 1 u · stands on PN1
Definition of doneOne ruler reads any equirectangular image as a sphere: seam ratio (the wrap-boundary column difference over the median neighbouring-column difference), polar ratio (horizontal detail per row divided by the cosine of its latitude, polar caps over the equator) and cubemap round-trip error. Done-rule: a planted seam, a planted planar paste at the pole and a clean render are separated with the numbers printed, both controls fire and the clean render passes
Matrix cellREFEREE: seam ratio, polar detail per solid angle and cubemap round-trip error · runtime/nx_pano_referee.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_referee; declare nx_pano_referee TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-09-29 land SHIPPED: nx_pano_referee through nx_pano_referee_gate, promoted 0d0b7953, 13/13 GREEN with its verdict thresholds read from knowledge/pano_referee.conf. The first run (conf absent) abstained SKIP by design and printed the calibration: seam rank clean sphere 695 permil against a planted seam 0; polar ratio clean 1083, per-pixel noise 996, planted planar paste 3422; nearest-neighbour cube round-trip error 0.349 grey levels clean against 34.1 on noise. The thresholds landed as data beside that evidence (seam floor 250, polar ceiling 2000); both neg-controls BITE-PROVEN, and noise is not read as a paste.
PN5 Sovereign 360-degree viewer · cell LANDED · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_view_emit · executor Organ · 1 u · stands on PN2, PN3
Definition of doneThe emitter publishes a self-contained viewer page with no third-party script (the estate's wasm or WGSL lane) that shows an equirectangular image as a sphere with drag and gyroscope look-around and an exposure control for HDR. Done-rule: nx_page_verify reads it GREEN, the served bytes equal the emitted bytes, and a phone-width render has no horizontal scroll
Matrix cellVIEWER: sovereign 360-degree viewer page, no third-party script · runtime/nx_pano_view.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_view; declare nx_pano_view TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-09-29 queue next: PN5 the sovereign viewer (the equirectangular image as a sphere with drag and gyroscope look-around and an HDR exposure control, no third-party script, served and verified on the compare surface), then M1: PN6 the physical sky in the CPU tracer, PN7 the relight-consistency ruler, PN8 exact depth and normal layers, PN9 the scene ladder.
2026-09-29 land nx_pano_view SHIPPED 24054276 with nx_pano_view_gate 31/31 GREEN (16752370, first run). The fragment stage is written ONCE in the shader IR (nx_pano_shader_src: exact textureLoad of four RGBE texels, bilinear in radiance, seam wrap and pole clamp on nx_pano_lib's convention, exposure, Khronos PBR Neutral [pano_pbrneutral_202609], sRGB) and nx_wgsl emits it as WGSL and GLSL with an identical IR trace; nx_wgsl's one dialect map gained atan2 -> GLSL atan (additive). The emitter writes a content-addressed texel ladder (nx_canon_cid cid_of per level), the NATIVE VIEW RECORD view.nxr (NXR1, read back by the tolerant reader nx_uxf_decode) and a WebGPU page that renders into an rgba16float canvas with EXTENDED tone mapping on an HDR display and verifies each level's SHA-256 against its content id before drawing. No WebGL door, no third-party script, every reference absolute
2026-09-29 lesson OPERATOR 2026-09-29, three directions in one hour: (1) webgl isnt really our focus vs webgpu sota -- the WebGL2 door was removed and the texture ladder floor moved to WebGPU's guaranteed 8192; (2) the Nishi browser is an outcome that must be SUPERIOR to webgpu and webgl -- the emitter now writes the native view record the Nishi browser's own door reads (rung PN27); the browser board already carries the pattern: BR23's nishi-game marker launches a native estate client instead of running page script, and BR22's directive is to emit, not to hand the estate's capability to third-party 3D stacks; (3) it all needs to be SOTA, not samples or lower than SOTA resolution -- the 1920 x 960 at 4 spp render is a MACHINERY SAMPLE and is not the published deliverable. The deliverable is an 8K-or-larger HDR panorama (the bar SB-PN-GEN-2609: Blockade 8K seamless, 16K HDR) through a tiled multi-resolution viewer; PN22 (every core) and PN25 (tiles) are the critical path
2026-09-29 land the PBR Neutral tone curve both fragment stages transcribe is mirrored and pinned as its specification, the Khronos ToneMapping README (F90 0.04, Ks = 0.8 - F90 = 0.76, Kd 0.15, toe below 2 F90 = 0.08), and the shader's constants were checked against those bytes [pano_pbrneutral_202609]
PN6 Physical sky in the panorama · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_sky_physical · executor Organ · 1.5 u · stands on PN2, graphics:GR26 (UNRESOLVED: no such rung on this plan)
Definition of doneThe path tracer's escape radiance comes from the Rayleigh and Mie atmosphere (the physics graphics GR26 emits on the GPU, here over nx_atmosphere on the CPU) rather than the gradient sky. Done-rule: horizon-to-zenith luminance and sun colour at declared sun elevations match the model's own analytic values within the printed bound, and the time of day is a data row
Matrix cellSKY: physical Rayleigh and Mie sky in the rendered panorama · runtime/nx_pano_sky.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_sky; declare nx_pano_sky TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-10-01 measure EVIDENCE FOR PN6 FROM THE 8K TILE PYRAMID: 29 of the record's 171 tile slots are duplicates. Content id private-ref:2a25e94b names 11 level-0 tiles in the zenith rows and private-ref:2090164b names 4 more, so whole 512 x 512 HDR tiles are byte-identical across azimuth. The sky there is either uniform at RGBE precision or repeats with a 512-pixel period; a physical sky lit by a sun varies continuously with azimuth and elevation, so either reading is a fidelity defect this rung exists to remove. Which of the two readings holds is UNMEASURED.
2026-10-01 measure TRIANGULATED BAR as of 2026-10-01 for physically based sky and atmosphere: three schools from three groups. Real-time physically based (Epic): Hillaire renders a planet atmosphere from ground to space with small LUTs in place of high-dimensional ones, approximates an infinite number of multiple-scattering orders in real time, changes composition with art direction and weather without heavy LUT rebuilds (its figure includes a Mars-like blue sunset), scales from mobile to high-end GPUs and also accelerates path tracing (EGSR 2020). Fitted reference (Charles University): the Prague sky model fits sky dome radiance and attenuation from measured scatterer distributions, adds post-sunset skies, finite-distance in-scattering and attenuation, an observer-altitude model with downward views and polarisation, and claims to beat both analytical clear sky models and interactive approximations of atmospheric transport (ACM TOG 2021). Independent referee (Bruneton): eight graphics clear sky models measured against sky measurements and an inverted physics reference show that the fewer simplifications, the more accurate. Newest month: September 2026 cs.GR has 170 entries and no sky or atmosphere rendering title, October has none yet, and abstract searches put the newest on-subject sky model in March 2026 (Icarus 2603.05758, a learned all-weather Full Dynamic Range sky model built from captured skies) behind newer homonyms (sky-sphere terms in 3DGS reconstruction, dehazing through an atmospheric scattering model, AI weather forecasting) ; witnesses [hillaire2020_t1001] [praguesky2021_t1001] [bruneton8sky_t1001] [skysearch_t1001] [atmosearch_t1001] [csgr202609_pano_t1001] [csgr202610_pano_t1001] ; where they disagree: Hillaire trades exactness for an analytic multiple-scattering term and dynamic, even alien, compositions; Prague says interactive approximations fall short of its fit and adds polarisation and post-sunset skies, but only for the measured terrestrial atmospheres it was fitted to; Icarus starts from captured all-weather skies with clouds, which both clear-sky schools leave out, and reports that earlier learned sky models fail on the 14 EV plus solar region; Bruneton's ranking predates the 2020 and 2021 models, so no shared benchmark yet puts Hillaire, Prague and Icarus on one error axis ; the estate's running lane builds two layers: nx_atmosphere carries Hillaire's and Bruneton's Earth constants (Rayleigh scattering, Mie extinction and ozone absorption per km, 8 km and 1.2 km scale heights, an ozone tent peaking at 25 km, a 6360 to 6460 km shell) but integrates TRANSMITTANCE only (a 500-step trapezoid baked into a 64-row sun-zenith LUT), while its sky colour is still a simplified Preetham-style horizon-to-zenith blend; the live page shader (gpe_sky_atmos, graphics GR26) is a per-channel single-scatter term 1-exp(-tau*airmass) with Kasten-Young airmass clamped at 38, a sun disc, a transmittance dusk tint and aerial perspective as a mix toward the sky colour. It is BELOW the triangulated best: it has Hillaire's transmittance stage and constants but none of his multiple-scattering, sky-view or aerial-perspective LUTs, no in-scattering integral along the view ray, no spectral or polarised output and no fit to measured skies, so this rung should take Hillaire-class multiple scattering as the floor and a Prague-class fitted model as its referee
2026-10-01 measure THE THREE PN6 SKY WITNESSES ARE NOW FULL PAPERS, MIRRORED AND READ 2026-10-01 as the critic required. Floor, Hillaire 2020: the existing full-PDF mirror re-extracted (12,994,927 B of text) and read to Sec. 8 Conclusion and Sec. 9 Future work: sky and atmosphere from many viewpoints in real time with multiple scattering and no iterative per-order passes; it drifts from ground truth under dense atmospheres or strongly anisotropic phase functions yet stays plausible and energy conserving; its multiple-scattering LUT cuts a 720p path-traced atmosphere from 0.74 to 0.29 ms at 5 scattering orders and from 7.9 to 0.6 ms at 50; future work is anisotropic-phase accuracy, spatially varying atmospheres and spectral rendering [hillaire2020_t1001]. Referee, the Prague model: the 2021 TOG paper as a full PDF in place of the project-page abstract, read to Sec. 7 (OPAC constituent data, a spherical tensor-compressed in-scattering fit, observers to 15 km, finite-distance aerial perspective, post-sunset ozone blue and the Earth shadow, polarisation; reference frames up to 85k spp and 5,000 core hours against 100 spp and 2 core hours with the fit; 600 MB of data; hazy skies are OPAC extrapolations) [praguesky2021_full_bf1001], and the 2022 wide-spectral extension, 55 bins from 280 to 2480 nm with transmittance and polarisation for a ground observer, of which only the abstract and Fig. 1 were read [praguesky2022_bf1001]. Ruler, Bruneton: the full TVCG author version in place of the abstract page, read to Sec. 15 Conclusion: eight models against the Kider measurements and an inverted libRadtran; fewer approximations give more accuracy; three spectral samples suffice with a correct RGB conversion; polarisation moves luminance far less than the model-to-measurement gap; richer aerosol phase functions are the most promising lever, every model failing in the solar aureole under 20 degrees; users do not always prefer the most accurate [bruneton8sky_full_bf1001]. Three groups (Epic, Charles University, Bruneton), all peer reviewed
2026-10-01 queue the Prague 2021 supplementary PDF (https://cgg.mff.cuni.cz/wp-content/uploads/2021/05/supplement.pdf, linked from the project page) holds its Sec. 7 head-to-head with Hillaire 2020 and Bruneton 2016 and is not mirrored; it is the only witness found that puts the floor and the referee on one axis, because Bruneton's ruler predates both, so mirroring and reading it is the next PN6 research step; the body of the 2022 wide-spectral paper is also unread
2026-10-01 lesson nx_pdf_text through the job lane keeps only the first 1,048,576 B of stdout, which for an image-heavy paper is the first pages only (Bruneton: no conclusion in the capture, all of it in the 1,718,124 B file); pass the second argument (an output path under /tmp) and scan that file with nx_txtscan. Its own 16 MiB output cap also truncates papers with large embedded images (Infinigen Indoors, the Frostbite notes), and it recovered little body text from the 217 MB Area ReSTIR PDF, so every read through it must say which sections it reached
2026-10-01 measure THE HEAD-TO-HEAD THE 1790830003 QUEUE ROW ASKED FOR IS READ: the Prague 2021 supplement, mirrored, Sec. 7: the authors ran Hillaire's own source code (which implements both his 2020 model and Bruneton's 2016 model) with extinction matched to theirs and an exponential aerosol profile of equal ground-level visibility and vertical turbidity; all three agree well for an observer at 2 m and diverge as observer altitude rises, because Hillaire and Bruneton assume exponential scatterer profiles while the Prague fit uses an OPAC-based atmosphere [praguesky2021_supp_bf1001]. So the floor and the referee do share one axis, but only as a figure with no error number, and Bruneton's ruler predates both [bruneton8sky_full_bf1001]; a numeric three-way error against measured skies is still not published by any witness read so far, which is the exact measurement this rung's own referee would have to produce
PN7 Light-probe consistency ruler · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_probe_relight · executor Organ · 1.5 u · stands on PN3, PN6
Definition of doneA reference object (a sphere of known albedo, then the synthetic subject) rendered INSIDE the scene is compared with the same object lit only by the panorama of that scene taken from the object's position. Done-rule: relight PSNR and CIEDE2000 are printed per probe, and a clipped LDR probe and a rotated probe, the two neg-controls, both score worse than the true probe
Matrix cellPROBE: light-probe consistency, relit inside the scene versus relit by the panorama · runtime/nx_pano_probe.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_probe; declare nx_pano_probe TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN8 Ground-truth layers with every panorama · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_aov_layers · executor Organ · 1 u · stands on PN2
Definition of doneEvery rendered panorama ships exact depth, normal and semantic layers from the renderer's own ray hits in the same projection, so every panorama is also a labelled training sample. Done-rule: depth to point cloud to depth round-trips exactly, and a layer written in the wrong projection is refused by the PN1 tooth
Matrix cellTRUTH: exact depth, normal and semantic layers with every panorama · runtime/nx_pano_aov.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_aov; declare nx_pano_aov TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN9 Time of day, weather and season as data · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_scene_ladder · executor Organ · 1 u · stands on PN6
Definition of doneA conf row selects sun position, cloud cover, fog and season. Done-rule: the same seed and row reproduce byte-identical, and eight declared scenes render through the ladder with their rows printed beside them
Matrix cellLADDER: time of day, weather and season as data rows · runtime/nx_pano_scene.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_scene; declare nx_pano_scene TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-10-01 measure TRIANGULATED BAR as of 2026-10-01 for weather (clouds, fog, rain and wet surfaces): the best in class is split by phenomenon and by group. Clouds in production (Guerrilla, a vendor claim): Nubis cubed replaced the 2.5D cloud method of their 2015 and 2017 talks with voxel clouds that are flyable volumetric skyboxes, ray-marched with compressed signed-distance-field acceleration, modelled by fluid simulation, up-rezzed without memory-access stalls, with light-sampling acceleration and approximations of dark edges and inner glow. Clouds in research (Disney and ETH authors, SIGGRAPH Asia 2017): Deep Scattering predicts cloud radiance with a network fed a hierarchical density descriptor, because Lorenz-Mie scattering and high albedo make the silver lining and inner whiteness hard for Monte Carlo alone or diffusion theory, and reaches near-reference images within seconds. Rain and wet surfaces (Peking University, CVPR 2025): RainyGS couples physically-based raindrop and shallow-water simulation to Gaussian-splat rendering for drops, splashes and reflections at over 30 fps with intensity control. Fog and haze ride on the atmosphere witnesses (Hillaire's aerial perspective), and the only September 2026 fog entry is Tri-DehazeGS 2609.11223, an inverse method that models the medium as a separate tri-plane field through a physical scattering model. Newest month: no September 2026 cs.GR title names clouds, fog, rain, snow or weather, October has none yet, and an all-arXiv search for volumetric clouds finds nothing newer than June 2025 ; witnesses [nubis3_t1001] [deepscattering2017_t1001] [rainygs2025_t1001] [hillaire2020_t1001] [atmosearch_t1001] [volclouds_search_t1001] [csgr202609_pano_t1001] [csgr202610_pano_t1001] ; where they disagree: Guerrilla approximates the multiple-scattering look (dark edges, inner glow) with hand-built terms to hold frame rate while Disney learns it from exemplars and pays seconds per image, and neither covers rain; RainyGS gets rain and wet reflections inside a reconstructed scene rather than a generated one; the 2026 listings read here show splat reconstruction and inverse haze removal, not forward weather rendering, so the cloud bar is still the 2017 to 2023 pair ; the estate's running lane builds a 12-step front-to-back slab march through three-octave 3D value noise on the live world pages (procgen PG22: coverage from the weather field's CLEAR, OVERCAST and RAIN rows, Beer-Lambert extinction, a dual-lobe Henyey-Greenstein phase at g plus and minus 0.08, powder darkening, wind advection, a silver term toward the sun, a 2D sheet fallback on the CPU and wasm tiers) plus exponential altitude fog in nx_atmosphere, and this rung's weather ladder is still ABSENT; it is BELOW the triangulated best: the slab march is the 2.5D class the Guerrilla page says they left behind, there is no multiple-scattering model (learned or approximated), no rain, splash or wet-surface rendering, and the marched sky has no pixel referee grade or operator ACCEPT
2026-10-01 measure WEATHER WITNESSES BACKFILLED 2026-10-01, COUNTED BY GROUP PER PHENOMENON (every new source mirrored and read through nx_pdf_text this hour; vendors labelled; two papers of one group count once). CLOUDS 2 -> 4 groups: Guerrilla Nubis cubed (vendor) [nubis3_t1001], Disney and ETH Deep Scattering 2017 (peer reviewed) [deepscattering2017_t1001], EA Frostbite 2016 course notes (vendor: clouds in one constant-height slab, Perlin-Worley noise ray-marched after Schneider 2015, an artist weather texture) [frostbite2016clouds_bf1001], Singh and Kumar 2025 (a preprint Unreal shader, 35 ms per frame) [cloudsearch_bf1001]; one of the four is peer reviewed and none is from 2026, so clouds are still one peer-reviewed group short. RAIN AND WET SURFACES 1 -> 5 groups: Peking University RainyGS 2025 [rainygs2025_t1001], Inria and Laval physics-based rain insertion (particle simulator, scene lighting estimate, rain photometry, judged 40 percent more realistic in a user study) [halder2019rain_bf1001], Leeds and CMU WeatherEdit 2025 preprint (raindrops in a 4D Gaussian field) [weatheredit2025_bf1001], MIT Rendering of Wet Materials 1999 (surface water reflection plus subsurface scattering) [jensenwet1999_bf1001], Nanjing wet porous materials 2025 (porosity and saturation in the RTE, wet roads) [panwet2025_bf1001]. FOG IN FORWARD RENDERING 1 -> 4 groups: Epic Hillaire 2020 aerial perspective [hillaire2020_t1001], Inria and Laval rain-or-fog insertion [halder2019rain_bf1001], UIUC ClimateNeRF smog [climatenerf2023_bf1001], Leeds WeatherEdit fog particles [weatheredit2025_bf1001]; only Hillaire renders fog in a real-time forward pipeline, the other three synthesise it over reconstructed scenes or photographs. SNOW 0 -> 3 groups: UIUC ClimateNeRF snow accumulating on horizontal surfaces [climatenerf2023_bf1001], Leeds WeatherEdit snowflakes [weatheredit2025_bf1001], VersaGauss August 2026 preprint (snow as a simulated multiphase material in 3D Gaussians) [snowsearch_bf1001]; no venue was read from the bytes for any of the three, so snow has groups but not yet a proven peer-reviewed witness. THE 2026 CLAUSE, MEASURED over four newest-first phenomenon searches [rainsearch_bf1001] [fogsearch_bf1001] [cloudsearch_bf1001] [snowsearch_bf1001]: the only 2026 entries are Beyond Clear Skies 2608.16191 (weather rendered by a game engine for a drone dataset, so the method is the engine's), VersaGauss 2608.28069 (snow material simulation) and The Domain Is a Residue 2609.37330 (image domain translation, not rendering); there is still no 2026 forward rendering method for clouds, rain, fog or falling or lying snow, so that part of the critic's finding stands
2026-10-01 queue the PN9 bar still owes a second peer-reviewed cloud-rendering group (candidate leads named from memory and unverified, none fetched this leg: INRIA multiple anisotropic scattering in clouds 2008, KAUST cloud-dynamics simulation 2020, LIRIS meso-scale skyscapes 2020) and a venue read from the bytes for ClimateNeRF, Halder 2019 and the wet-porous paper (their arXiv abstract pages carry the comment line); a 2026 forward weather method was searched for in four phenomenon searches and not found, so the newest forward witness stays 2025
2026-10-01 measure VENUE AND SECOND-CLOUD FOLLOW-UP: Halder 2019 is ICCV 2019 per its arXiv abstract-page comment (mirrored knowledge/fetched/cmp_pano360_halder2019_rain_abs.html, sha256 d4592ddb1bb31ac7108bbb846cc4eb2995445f49565a6dd0e2d1e8269641121f), so rain and fog each carry a byte-verified peer-reviewed group beside RainyGS and Hillaire 2020 [halder2019rain_bf1001]; ClimateNeRF's arXiv page (mirrored knowledge/fetched/cmp_pano360_climatenerf2023_abs.html, sha256 a8741b53ba9596aaa50e3d8468aceb7b60ccfccc59d47108abe225ca0549097b) carries only a project-page comment, so its venue stays unproven and snow still has no byte-verified peer-reviewed witness [climatenerf2023_bf1001]; an arXiv search for multiple-scattering cloud rendering returned 5 entries and none is a cloud method [cloudscattersearch_bf1001], so the second peer-reviewed cloud group stays open (queue row 1790830001)
PN10 Six degrees of freedom: the world, not the wallpaper · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_world_export · executor Organ · 2 u · stands on PN8, gameengine:GE82 (UNRESOLVED: no such rung on this plan)
Definition of doneThe procgen scene behind a panorama exports as Gaussians or mesh the gameengine VR frame (GE82) consumes. Done-rule: a viewer moved one metre sees a disocclusion the panorama could not contain, rendered rather than smeared, and the frame-pacing referee reads the declared headset tier's rate
Matrix cellWORLD: the scene behind the panorama exported for six degrees of freedom · runtime/nx_pano_world.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_world; declare nx_pano_world TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN11 VR room environments · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_room_env · executor Organ · 1 u · stands on PN7, synthroom:SR7 (UNRESOLVED: no such rung on this plan)
Definition of doneThe synthroom room loads a pano360 environment as both skybox and image-based light. Done-rule: the stereo render (synthroom SR7) holds its frame budget with it on, and the light on the synthetic human agrees with the probe per PN7
Matrix cellENDPOINT: VR room environment as skybox and image-based light · runtime/nx_pano_room.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_room; declare nx_pano_room TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN12 Synthetic photoshoot backdrop and light · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_shoot_backdrop · executor Organ · 1.5 u · stands on PN7, twiningest:TI12 (UNRESOLVED: no such rung on this plan)
Definition of doneA photoshoot request names a pano360 scene; the synthetic subject is relit by that scene's HDR probe (twiningest TI12) and composited on its backdrop with matched camera, horizon and exposure. Done-rule: the composite's key-light direction agrees with the probe's dominant light within a declared angle, and a mismatched probe is caught by the same tooth
Matrix cellENDPOINT: synthetic photoshoot backdrop with the subject relit by its probe · runtime/nx_pano_shoot.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_shoot; declare nx_pano_shoot TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN13 360-degree video · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_video_emit · executor Organ · 2 u · stands on PN2, PN9
Definition of doneA camera path or a time-of-day sweep renders as equirectangular frames with the spherical metadata a headset player reads, encoded through the estate's own codec lane. Done-rule: frames are deterministic per seed, temporal flicker is measured and published, and the file plays in the PN5 viewer
Matrix cellVIDEO: 360-degree video through the estate's own codec · runtime/nx_pano_video.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_video; declare nx_pano_video TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN14 Fine-art styles on the sphere · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_style_sphere · executor Organ · 1.5 u · stands on PN4
Definition of donePainterly operators (Kuwahara filtering and stroke-based rendering) run in cubemap space so strokes do not stretch toward the poles. Done-rule: PN4 reads the stylised panorama clean, and the same operator applied in equirectangular space, the neg-control, fails the polar tooth
Matrix cellSTYLE: fine-art operators run on the sphere so strokes do not stretch at the poles · runtime/nx_pano_style.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_style; declare nx_pano_style TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN15 Licence-clean panorama corpus ledger · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_corpus_ledger · executor Organ · 1 u · stands on PN8
Definition of doneEvery training panorama carries source, licence and permitted use: the estate's own renders with PN8 labels, the 997 HDRIs Poly Haven lists under CC0 [pano_polyhaven_hdris_202609] [pano_polyhaven_license_202609] and consented captures. Done-rule: an item without a licence, or any third-party generator's output, is refused by name, and a model card prints the ledger digest it trained on
Matrix cellCORPUS: licence-clean panorama ledger, an oracle's output refused by name · runtime/nx_pano_corpus.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_corpus; declare nx_pano_corpus TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN16 Sovereign spherical diffusion model · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_gen_denoise · executor Local model · 6 u · stands on PN15, modelwright:R7 (UNRESOLVED: no such rung on this plan)
Definition of doneA flow-matching transformer on the estate's DiT bricks, trained by the estate on the PN15 corpus (the GPU step is modelwright R7), with a spherical positional encoding and wrap-around attention. Done-rule: generated panoramas pass the PN4 seam and polar teeth without post-hoc healing, and a distribution score against held-out CC0 HDRIs is published beside the oracle's for the same prompts
Matrix cellGENERATE: sovereign spherical diffusion model trained on the ledger · runtime/nx_pano_gen.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_gen; declare nx_pano_gen TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN17 Image to 360: outpaint a photo or a painting · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_outpaint · executor Organ · 2 u · stands on PN16, PN1
Definition of doneA flat image is placed on the sphere at its estimated field of view and the rest is completed, first by a procgen world matched to its horizon and palette and then by PN16 inpainting, with the observed-or-inferred mask published. Done-rule: a crop from a known panorama is completed within a declared error against the withheld truth
Matrix cellOUTPAINT: a flat photo or painting completed to 360 degrees with its inferred mask published · runtime/nx_pano_outpaint.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_outpaint; declare nx_pano_outpaint TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN18 Text to 360 with spatial control · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_text_place · executor Local model · 2 u · stands on PN16
Definition of doneA prompt's directional expressions (left, behind, above) place content at the named longitudes, and a sketch or layout conditions structure. Done-rule: angular placement error on a declared prompt set is published and a swapped-direction control is caught
Matrix cellPLACE: text to 360 with directions and layout placed on the sphere · runtime/nx_pano_place.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_place; declare nx_pano_place TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN19 External referee run · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_ext_referee · executor Organ · 1.5 u · stands on PN4, graphics:GR63 (UNRESOLVED: no such rung on this plan)
Definition of doneOmnidirectional quality scores of the GC360IQ and blind-OIQA class and a human two-alternative forced choice against the incumbents' outputs for the same prompts, the oracles run outside the build path. Done-rule: scores are published per rung, and a deliberately seamed panorama, the neg-control, scores worse
Matrix cellREFEREE: outside omnidirectional quality scores and a human two-alternative forced choice · runtime/nx_pano_extref.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_extref; declare nx_pano_extref TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN20 16K HDR tier and OpenEXR · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_exr_write · executor Organ · 2 u · stands on PN3
Definition of doneThe estate writes OpenEXR half-float channels, the open format LED-volume and VFX pipelines read. Done-rule: a 16384 by 8192 HDR panorama renders through the scale ladder with its door announced, and the reader round-trips it exactly
Matrix cellHDR: 16K tier and OpenEXR half-float written and read · runtime/nx_pano_exr.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_exr; declare nx_pano_exr TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN21 Lift a generated panorama to 3D · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_lift_depth · executor Local model · 3 u · stands on PN8, PN16
Definition of doneA panorama with no scene behind it (from PN16 or an oracle) is lifted to depth and Gaussians for six degrees of freedom. Done-rule: the lift's depth error is measured on rendered panoramas whose depth is known exactly (PN8) and published
Matrix cellLIFT: a generated panorama lifted to depth and Gaussians, the lift error measured on known depth · runtime/nx_pano_lift.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_lift; declare nx_pano_lift TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN22 Parallel render across the machine's measured cores · cell LANDED · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_render_parallel · executor Organ · 1 u · stands on PN2
Definition of doneThe panorama is cut into row bands, one per core the machine reports at run time (never a typed count), each band traced with a per-pixel random stream derived from the seed and the pixel index so the answer cannot depend on the split, and the bands are joined in place. Done-rule: the render is byte-identical at 1, 2 and the measured core count for the same seed, and the report prints the core count with the wall time beside the single-core wall time
Matrix cellPARALLEL: the panorama render split across the machine's measured cores, deterministic at any split · runtime/nx_pano_parallel.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_parallel; declare nx_pano_parallel TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-09-29 land nx_pano_parallel (lib, contract pano_render_parallel) + nx_pano_parallel_gate 34/34 GREEN, promoted f183f110: the frame traced on every core is byte-identical to the single-core pano_render_trace frame at one worker, at every worker (8 of 8), in two uneven multi-row bands and as one band -- texels, display bytes, paths and radiance range; the streamed HDR equals the radiance encoder and unpacks to the rendered texels; both neg-controls bite (another seed 1112 differing bytes, one flipped texel 1 byte)
2026-09-29 measure nx_pano_parallel_gate run 1 on west_nas under load: 54 x 27 at 4 spp = 5832 paths; single core 1715 ms, one worker 1985 ms, 8 workers 464 ms; speed-up of every worker over one 4278 permil (published, never asserted: a shared box makes it volatile)
2026-09-29 lesson a structured scope holds at most max-children-per-scope children (knowledge/sc_scope.conf, 1024), so the production band is ceil(H / min(1024, H)) rows -- the finest cut the scope admits: an 8K frame is 1024 bands of 4 rows, 16K is 1024 of 8, and the working set is the outputs plus one band per worker
2026-09-29 queue the 8K frame (8192 x 4096, 4 spp, seed 77) is rendering on every core at nice 19 into knowledge/pano360/pano360_s77_w8192_spp4.hdr; its stdout receipt goes to /tmp and will be lost while /tmp is full, so its figures will be read back from the HDR itself; then nx_pano_view on it into the compare docroot, nx_page_verify, and a captured frame for the referee
2026-09-29 land the queued 8K frame finished: knowledge/pano360/pano360_s77_w8192_spp4.hdr, 8192x4096 Radiance RGBE (header -Y 4096 +X 8192, SOFTWARE=nishi nx_pano_rgbe), 21,331,246 B, seed 77, 4 samples per pixel, rendered on every core by nx_pano_render 0d23d5c7; still below the bar: SB-PN-GEN-2609 asks 8K seamless and 16K HDR, and 4 spp is visibly noisy with no denoiser rung yet
PN23 WebGPU decode to float, mip chain and anisotropic filtering · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_gpu_decode · executor Organ · 1.5 u · stands on PN5
Definition of doneOn the WebGPU door, the RGBE texels decode ONCE on the GPU into an rgba16float texture with a full mip chain generated on the GPU, sampled with trilinear and anisotropic filtering and seam-aware derivatives, so a wide field of view over an 8K or 16K panorama shows no minification shimmer and no seam line. Done-rule: a captured frame at the widest field of view scores lower temporal shimmer than the four-tap exact path on the same view, the seam column shows no mip spike, and the decode matches the estate's reader texel for texel
Matrix cellGPU DECODE: RGBE decoded once on the WebGPU device into float with a mip chain and anisotropic filtering · runtime/nx_pano_gpu_decode.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_gpu_decode; declare nx_pano_gpu_decode TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN24 Cube-map sampling in the shader IR · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_cube_sample · executor Organ · 2 u · stands on PN5, PN23
Definition of donetexture_cube enters nx_shader_ir and nx_wgsl's WGSL backend (the gameengine skybox gains it too); the equirectangular texels are resampled on the GPU into six cube faces through nx_pano_lib's own cube convention, and the view samples the cube with seamless hardware filtering, so the poles are sampled at the equator's density. Done-rule: pole and equator rows of a captured frame carry equal texel density within the referee's bound, and the cube faces round-trip to the equirectangular texels within the resampling bound
Matrix cellCUBE SAMPLING: the sphere sampled as six faces through nx_pano_lib's convention, poles at the equator's density · runtime/nx_pano_cube.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_cube; declare nx_pano_cube TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN25 Tiled multi-resolution streaming for 8K and 16K · cell LANDED · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_tile_pyramid · executor Organ · 3 u · stands on PN5, PN22
Definition of doneThe emitter cuts every level into content-addressed tiles with a one-texel border and a native tile manifest; the WebGPU door fetches only the tiles the view needs at the level whose texel density matches the screen, so an 8K or 16K panorama paints its first frame from kilobytes and sharpens as tiles arrive. Done-rule: a 16384 x 8192 HDR panorama opens with first paint under the measured budget from a cold cache, the bytes fetched for a view are within the visible-tile bound, and no seam shows at tile borders in a captured frame
Matrix cellTILES: every level cut into content-addressed tiles, fetched only where the view looks, for 8K and 16K · runtime/nx_pano_tiles.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_tiles; declare nx_pano_tiles TAB <gate> and the ship loop proves it and the verdict lands here.
Work log2026-09-29 land nx_pano_tiles (lib: pano_tile_count, pano_tile_crop, pano_tile_pyramid) cuts every level of the texel ladder into content-addressed tiles t/<cid>.rgbe, so an 8K or 16K panorama opens from one tile; nx_pano_shader_src grows pano_view_fragment_tiled (a level table and a page table as read-only storage, a loop that falls back to coarser levels until a resident tile answers, four exact texel taps) and pano_view_tiled_textures, the one owner of the stage's textures; nx_pano_view emits the tiled page (coarsest level whose texel density covers the screen, tiles probed against the view and widened by one ring, fetched nearest the centre first, every tile's SHA-256 checked against its content id, one atlas texture, least-recently-wanted eviction, the last level pinned) and a native record carrying the tile edge and every level's tile ids. nx_pano_view_gate 44/44 GREEN promoted 7c1a3132 (40 superseded runs and the behaviour change reviewed, evidence knowledge/status/pano360_view_gate_ship_evidence_20260929.txt); nx_pano_view promoted 2ee1452e through /api/promote with expect_sha256 (33 superseded runs enumerated in record loss-510338953c4f), _offc twin refreshed. Tile edge 512 and atlas budget 200 MiB are conf rows calibrated from the incumbents [pano_krpano_tiles_202609] [pano_marzipano_202609] [pano_krpano_memory_202609]. Done-rule NOT met: no 16384 x 8192 frame and no cold-cache first-paint measurement yet
2026-09-29 measure the promoted CLI on the 64 x 32 gate fixture: rc=0, levels=1, tiles=1, tile_edge=512 from the conf row, tiled WGSL fragment 3427 B with no refusal, page 19652 B, native record 752 B; the gate's own run on a clock-chosen edge between 17 and 31 texels (partial right and bottom tiles) proves every level-0 tile an exact crop named by its content id and level 1, reassembled from its tiles, the 2 x 2 radiance mean within half a quantum
2026-09-29 lesson the storage bindings were first written as the texture binding plus one; nx_wgsl gives a sampled 2D texture two slots (its companion sampler takes the second) and refuses a storage buffer on that slot, so the bindings are now DERIVED from the backend's own rule (wg_tex_binding over a probe module holding the stage's one texture set), never counted by hand
2026-09-29 lesson /api/build answered produced-no-elf with an empty diag, and every nx_job_run output came back empty, because /tmp on the NAS (tmpfs, 81737 entries) was FULL: nx_fs_write code=-28, nx_diskfree used_permil=1000 avail 0; the lane's own compile had succeeded. A first debt row named a target-specific cause and was superseded within minutes by 1790667724 carrying the witness. A capture that could not be written must name ENOSPC on its own path rather than blame the compiler
2026-09-29 measure 8K tiled view emitted from that frame: nx_pano_view 2ee1452e -> PANO-VIEW rc=0 levels=5 tiles=171 tile_edge=512 ev_min=-11 ev_max=1 clamped_exponents=0 wgsl_vs=173 wgsl_fs=3427 page_bytes=32567 record_bytes=13307 record_cid=private-ref:243c1923, served at /compare/pano360/view; the first tile private-ref:f5da7818 (524,288 B) came back through the edge and hashes to its own name [pano_krpano_tiles_202609]
2026-09-29 measure nx_page_verify on /compare/pano360/view: VERDICT=GREEN with one accessibility finding, h1-count=0 (want exactly 1), the page opened body and main straight into the viewer. Fixed in source the same hour: nx_pano_view emits an h1 (class pv-head) with the title above the viewer, one CSS rule reusing the bar's padding and divider; gate teeth T9k exactly one h1, T9l the h1 names the title, T9m neg-control a doubled heading reads more than one; the gate compiled 5729ccba (439,256 B), and its run waits on /tmp space
2026-09-29 queue visual and interaction review UNVERIFIED: nx_cdp_capture on the NAS refuses CD-BROWSER-ABSENT candidates=2 because knowledge/cdp_capture.conf names only the laptop's Edge through WSL interop (cms CM13); until a real browser renders /compare/pano360/view and a referee counts seams, tile swaps and first paint on the pixels, the 8K view is served, not reviewed
2026-09-29 land THE VIEW PAGE CARRIES ITS ONE HEADING, PROMOTED 2026-09-29: nx_pano_view fa2ab20c (313,296 B) and nx_pano_view_gate 5729ccba (439,256 B, 47/47 GREEN -- T9k exactly one h1 actual=1 expected=1, T9l the h1 names the panorama by its title, T9m the neg-control reads a doubled heading as more than one and a closing tag as none); the content ruler lost 0 runs for both and the view gained exactly the .pv-head rule and the h1 open tag; /compare/pano360/view re-emitted with the identical argv, record_cid unchanged (private-ref:a319f1ec the 171 tiles and the native record are byte-identical, only the page moved), page 32,765 B; nx_page_verify on the live URL GREEN with single-h1 OK, heading-order OK, landmark main OK, a11y-issues=0, view.nxr 13,307 B status 200 -- static checks only, the pixel review is still the queue row above
2026-09-29 measure THE /tmp OUTAGE THAT BLOCKED THIS LANE'S GATE RUNS AND BUILDS IS CLEARED: /tmp 1000 -> 587 permil with 7.8 GB free. The filler was another lane's clock row (lang LN100 progendiff: /tmp/progen_live 7.8 GB in 236,721 files), found by nx_dirbytes, the census organ built here (promoted 054baba3, gate 18/18: allocated bytes by entry and by name family, symlinks counted never followed, two counters reconciled), and fixed at its root in the progendiff organ (journal lang.plan 1790674420-1790674424, debt 1790674394)
2026-09-29 retract THE 8K FRAME WAS 8192 x 4096 IN SIZE, NOT IN RESOLUTION -- the PN22 land row and the PN25 view rows of 2026-09-29 claimed an 8K panorama that the camera could not resolve. Measured by nx_pano_rayfid (new ruler: every pixel's centre ray mapped back through PN1's own inverse, the unquantised direction first as the control): at the tracer's fx1024 direction unit 775 permil of the 33,554,432 pixels cast a ray that landed in ANOTHER pixel (687 permil within 45 degrees of the horizon), 475 permil cast exactly their left neighbour's ray, and the largest landing offset was 4,096 px; at 4096 wide 434 permil escaped, at 2048 wide 142 permil, at 16384 wide 927 permil with 720 permil duplicated. A 1/1024 quantum is about 9.8e-4 rad and an 8K pixel is 7.7e-4 rad, so neighbouring pixels shared rays and every pixel showed the scene from a direction up to pixels away. The 8K tiles served at /compare/pano360/view are that frame until the ray-resolved render replaces them
2026-09-29 measure RAY FIDELITY AFTER THE FIX, THE WHOLE POPULATION AT EVERY WIDTH (nx_pano_rayfid e1d851a9): 2048 unit 2^22, 4096 unit 2^24, 8192 unit 2^26 and 16384 unit 2^28 all read escaped=0 dup_left=0 max_off_px=0 control_escaped=0 verdict=RESOLVED (16384: 134,217,728 pixels, 362 s). The 16K pass first read INSTRUMENT-FAULT: PN1's own inverse returned 3,134 of 134,217,728 unquantised centres to the row NORTH of their own (2,958 of them within 45 degrees of the horizon, all named ones py 1761 -> 1760), because PN1 scaled y by FX_ONE while x and z carried the Q16 CORDIC sine and cosine, whose pair is unit length only to a few parts in ten thousand; y now takes the pair's actual length (vm_isqrt), the mismatch cancels in the inverse's atan2, and the 16K control reads 0. PN1's gate had proven every pixel only at 1024 wide (2^10); its header's 16K claim had never been measured
2026-09-29 land THE CAMERA RESOLVES EVERY PIXEL, PROMOTED 2026-09-29: the primary ray's unit is derived from the frame it must resolve (pano_ray_unit: the smallest power of two at or above W^2 of the sampling grid, never coarser than GP_FX, capped where three squared components fit an i64 -- the smallest equirectangular pixel spans about 2 pi^2 / W^2 radians), cast through ONE conversion (pano_ray_quantize / pano_ray_fx) that the render and the ruler share; the tracer's first event takes that unit (gp_trace_u, gp_march_u, gp_norm3_u in nx_gi_path_lib and wg_sky_u in nx_worldgen, each old name kept as its fx1024 wrapper) while bounce rays stay fx1024 Monte Carlo draws. nx_pano_render 02e056f4, nx_pano_render_gate 3fdacb4e (17/17: T8 the ruler walks the whole 2 x GP_FX frame, T8a control home, T8b zero escapes, T8c zero duplicates, T8d neg-control the tracer unit leaves 300,472 rays in other pixels BITE-PROVEN, T8e unit 2^28 at 16K, T8f floor GP_FX), nx_pano_lib_gate fc08000e (21/21: T10 the 16K row 1761 round-trips, T10a the rebuilt FX_ONE-y direction fails 13 centres of that row BITE-PROVEN), nx_pano_parallel_gate f65167cd (35/35, any band split still one frame), nx_pano_rayfid e1d851a9 registered; content ruler lost only pano_q32_per_fx, a dead helper removed
2026-09-29 lesson A NEUTRALITY TEST AGAINST A BINARY OF ANOTHER VINTAGE CONVICTS A NEUTRAL CHANGE: the pinhole tracer rebuilt with the generalised tracer rendered a different PNG than the served nx_gi_path (eba1436c vs 577d0bb3) with every ray-event count identical, and the served binary was 26.6 days old. The pre-change nx_worldgen and nx_gi_path_lib were rebuilt by reversing the exact edits on scratch copies and proven byte-exact by hash against the flow-back's agreed base (2560674f and 513c7f4c), compiled in the same lane the same hour as a control, and rendered eba1436c -- identical to the candidate. The generalisation is byte-neutral for every fx1024 caller; the served binary simply predates other seats' changes. Control sources retired reversibly (knowledge/retired/*pre0929*)
2026-09-29 queue the ray-resolved 8K frame is rendering (nx_pano_render 02e056f4, seed 77, 4 spp, every core at nice 19, pid 22077, -> knowledge/pano360/pano360_s77_w8192_spp4_r2.hdr); when it lands: re-emit /compare/pano360/view from the _r2 HDR, nx_page_verify, then the 16384 x 8192 frame the PN25 done-rule names (its 2 x 2 anti-aliasing grid is 32768 wide, unit 2^30 -- the i64 cap -- whose full-population fidelity run is in flight). nx_gi_path was rebuilt only as the neutrality proof and is NOT promoted: its stage slot holds a rebuild from current sources, which differ from its 26-day-old served binary by other seats' work, the graphics lane's to ship
2026-10-01 land THE RAY-RESOLVED 8K FRAME IS LIVE at /compare/pano360/view: knowledge/pano360/pano360_s77_w8192_spp4_r2.hdr (nx_pano_render 02e056f4, 8192 x 4096, seed 77, 4 spp on a 16384-wide sub-pixel grid at unit 2^28, 134,217,728 paths in 4,859 s on 8 workers, seam CLEAN 974 permil, polar CLEAN 4 permil, 14 stops, 19,305,129 B, sha 8dee0590); nx_pano_view emitted 5 levels and 171 tiles, page 32,869 B, record private-ref:595112f8; nx_page_verify GREEN, static checks only -- browser rendering and the referee's look at the served frame are still owed
2026-10-01 queue the full-population nx_pano_rayfid 32768 on the Q30 PN1 is running (/tmp/rayfid_q30_32768.out); when it reads RESOLVED, the 16384 x 8192 frame is the PN25 done-rule render (seed 77, 4 spp, 32768-wide sub-pixel grid at unit 2^30, about 4x the 8K frame's 81 min) -- its memory footprint is read from nx_pano_render's own buffers before launch. LITTER NAMED: re-emitting the view left the unresolved frame's 142 tiles (about 148 MB of 327 MB) in sites/nishifamily/compare/pano360/view/t, referenced by no record; nx_pano_view has no reap path, so every re-emit of a changed frame accumulates one superseded pyramid -- the remedy is a verb on the emitter (retire, reversibly, every tile the new record does not name), owed before the 16K emit
2026-10-01 land THE TILE REAP SHIPPED 2026-09-30: nx_pano_tiles gained pano_tile_reap (every <cid>.rgbe in <out_dir>/t that the new record does not name is RENAMED into an archive, all names listed before the first rename; a file that is not a tile is left and counted; nothing is deleted); nx_pano_view hands its tile ids back through res (PVW_R_TILE_CIDS) and the CLI reaps after a successful emit into knowledge/retired/<out_dir flattened>_t-<epoch> (nx_retire_path's naming), printing a PANO-VIEW-REAP line; nx_pano_view_gate 44 -> 56 teeth, T13 to T13h on a clock-named orphan reaped twice (id named: kept; id not named: moved byte-for-byte), T13h BITE-PROVEN, two consecutive runs 56/56 GREEN (idempotent: the gate empties its own archive first, and its first run retired 44 tiles earlier gate runs had left in its fixture); contentdiff GREEN one-way gain, lost 0, on both organs; promoted nx_pano_view f9b1f539 (321808 B) and nx_pano_view_gate e29c5100 (450936 B), _offc twins installed, scratch row reaped. LIVE: the 8K view re-emitted from the same HDR and title: tiles_kept=142 tiles_retired=171 tile_dir_other=0 retire_refused=0 into knowledge/retired/sites_nishifamily_compare_pano360_view_t-1790820359; partition 142 + 171 = 313 files and 148373504 + 178782208 = 327155712 B, the before-state to the byte; nx_page_verify GREEN (page 200 32869 B, view.nxr 200, a11y 0). Browser rendering of the re-emitted page is UNVERIFIED (static checks only).
2026-10-01 retract The 2026-09-29 queue row's figure of 142 orphaned tiles (about 148 MB) was WRONG: it was 313 files minus 171 record SLOTS, which assumed every slot is its own file. Content addressing makes identical tiles one file: the ray-resolved record's 171 slots resolve to 142 distinct files (148.4 MB), and the superseded frame's orphans were 171 files (178.8 MB). The discriminating evidence was the reap's kept count and the nx_dirbytes partition of t/ before and after; I first read the correct receipt as an inverted predicate because the plan's number was the wrong one.
2026-10-01 lesson A SLOT COUNT IS NOT A FILE COUNT UNDER CONTENT ADDRESSING: identical content is one file, so a number derived as total minus slots understates the orphans by exactly the duplicate count, and a correct receipt then reads as inverted. Reconcile with the partition (kept plus retired equals the before-state, to the byte) before diagnosing the subject.
2026-10-03 measure THE STARTING STALL, LOCATED BY EVIDENCE 2026-10-03: the laptop Edge oracle shot the live page 22 ms after load (CD-SETTLED ms=22, the capture waits only for readyState and fonts), so its black viewer and frozen starting word were a photograph taken before the door ran. With every door step now announced on the page (adapter, device, atlas, shader pipeline, canvas context, base tiles, first frame) and a finite pulse on the status line that the capture's motion-settle waits for, the same oracle reads on the probe page /compare/pano360/viewprobe (8192 x 4096, 171 tiles): adapter 118 ms (max texture 16384), device 73-77 ms, atlas 16384 x 3072 for 171 tiles 0-1 ms, shader pipeline 27-29 ms, canvas context 0 ms, base tile verified 68-78 ms, first frame 354-361 ms after start, every tile the view wants resident at 1244 ms with 16.5 MiB fetched (17 of 171 tiles). So the WebGPU door does open in Edge; it did not stall. A Firefox or Waterfox stall is UNVERIFIED: the estate's capture organ drives Edge only, and the page now names the step it waits on in any browser.
2026-10-03 measure THE REAL DEFECT BEHIND THE BLANK VIEW WAS EXPOSURE, MEASURED IN THE SAME ORACLE: once the door drew, the WebGPU frame at 0 EV read near-white over the whole canvas. The texels are radiance at the unit nx_pano_render hands its RGBE writer (GP_FX x GP_MAXCH = 261120) while gp_encode's display white is GP_MAXCH x GP_FX x GP_FX, so a stored 1.0 is 1/1024 of display white and the page's 0 EV is about ten stops over (the texels' own span reads ev_min=-11). The page now opens at log2(exposure x unit / white) = log2(3/2048) = -9.4 EV, the exposure at which the tracer's own display encode reads these texels, and the captured frame matches the flat preview's brightness (desktop and phone doors, receipt OK); ?ev= still overrides.
2026-10-03 queue CACHING SOURCE-LANDED, DEPLOY WAITING ON AN ADMIN CAP: the no-store on every tile is the compare gateway's single response writer (nx_compare_gw cgw_send, route nishifamily.com /compare -> :18102 gated in proxy_routes.conf). The pure core nx_compare_gw_lib gained cg_content_addressed and cg_cache_control: a board file whose last path segment is nxc1- plus 64 lowercase hex plus a dot and an extension answers Cache-Control private, max-age=31536000, immutable (private because the board is access-gated, so no shared cache may hand a gated tile to a visitor the gateway refuses); every other file keeps no-store. The daemon's board-file serve now writes through cgw_send_cc with that value. nx_compare_gw_gate 55/55 GREEN with T46/T46a and a bite-proven neg-control (a 63-digit id, upper-case hex, a missing extension and a content-addressed directory above a mutable file all keep no-store). nx_compare_gw built --build-only: _build/nx_compare_gw.sov.elf 290104 B sha256 02bf9c3b1c935a4f52461818b9d61a6e22a7111331daa4b7f39c184e3c114b69, NOT deployed: it is the daemon every /compare request crosses, it needs the health-checked /api/deploy, and this seat's admin cap expired at 1791038653 (minting a new one needs that cap). Recipe for the owner: nx_contentdiff nx_compare_gw.elf against the staged build, then POST /api/deploy target=<the deploy_targets.conf row for the compare gateway>&confirm=yes&expect_sha256=<staged sha>, then nx_https_get a tile with --headers and read Cache-Control.
2026-10-03 land THE VIEWER NAMES EVERY DOOR STEP AND ALWAYS SHOWS A PICTURE, PROMOTED 2026-10-03: nx_pano_view 599e700a (350928 B, from f9b1f539) through nx_organ_ship with loss record 86f3dfe0 (28 lost runs enumerated: 13 rewritten page-script lines and the starting status line, each with its gained successor, and 14 runtime or compiler diagnostics replaced by the current toolchain generation's wording) and reviewed behaviour record bd5a1913 (review c0e4e16e: receipts first differ at page_bytes and gain the four flat fields). What it now emits: (1) step reporting on the page with elapsed ms and STALLED after the conf row door_watch_ms, every refusal, GPU validation error (uncapturederror), lost device, script error and unhandled rejection named on the status line; (2) the canvas hidden until onSubmittedWorkDone of its first frame, so a black canvas never covers the picture; (3) a flat preview: the first ladder level at or under the conf row flat_preview_width (2048), decoded at the tracer's unit and display-encoded by nx_gi_path_lib gp_encode, written by nx_png_write, named t/<cid>.png and kept by the reap (nx_pano_tiles ptl_is_tile now owns <cid>.png beside <cid>.rgbe); shown from the first byte, kept while the door opens, kept for good when no door opens, with the status naming exactly that; ?door=flat declines the door on purpose; (4) the opening exposure -9.4 EV derived from the encode's constants; (5) every-wanted-tile-resident time on the status line. nx_pano_view_gate 56 -> 70 teeth, 70/70 GREEN (T14 to T14k: PNG named by its content id, the level choice from a clock-chosen bound, the img by content id, the level-0 preview byte-identical to the gate's own gp_encode loop, no capped channel, the step needles, the honesty check with its bite-proven neg-control on the 2026-10-01 wording, the clock's watch and the exposure unit and white on the page, a superseded .png retired by the reap; T11c and T11d refuse confs missing the two new rows by name). Conf rows flat_preview_width 2048 and door_watch_ms 20000 appended to knowledge/pano_view.conf with their calibration notes (door_watch_ms is UNCALIBRATED against field data and says so).
2026-10-03 measure THE 16K VIEW IS LIVE AND MEASURED, AS FAR AS THE ORACLE ALLOWS: the 16384 x 8192 frame knowledge/pano360/pano360_s77_w16384_spp4.hdr (71849037 B, written 1790842533; the render process has exited, nx_proc_observe ABSENT_IN_COMPLETED_SCAN over 757 pids) emitted by the promoted nx_pano_view 599e700a in about 10 s: levels=6 tiles=683 slots, 350 distinct files kept (349 tiles plus the flat preview), record private-ref:697b7509, page 73886 B, flat 2048 x 1024 PNG 1093956 B, flat_capped_channels=0; the reap retired the 8K frame's 142 tiles into knowledge/retired/sites_nishifamily_compare_pano360_view_t-1791042828. nx_page_verify GREEN (page 200, view.nxr 200, flat PNG DECODE-OK 2048x1024, a11y 0). PN25 done-rule, laptop Edge oracle over the edge, every visit cold because tiles are still served no-store: first frame 538 ms after start (adapter 123, device 93, atlas 16384 x 3584 for 200 slots 0, pipeline 69, base tile 149, first frame 103), every tile the default view wants resident at 4954 ms with 25 of 683 tiles and 24.5 MiB fetched (level 2 of 6, 4096 wide), plus the 1.09 MB flat preview and the 74 KB page; looking straight at the wrap seam (?yaw=180&fov=40, level 1 of 6, 8192 wide) first frame 480 ms, resident 7197 ms, 33 tiles 32.5 MiB, and no seam is visible at the screen centre where longitude 180 sits -- that seam reading is my eyeball on one capture (an interpretation, not a referee), so the no-seam clause stays UNPROVEN until a pixel referee scores it. The done-rule's cold-cache clause is met by construction and its warm-cache counterpart waits on the gateway deploy.
2026-10-03 lesson A CAPTURE THAT SETTLES ON readyState PHOTOGRAPHS THE PAGE BEFORE ITS SCRIPT HAS DONE ANYTHING: the oracle shot the old page 22 ms after load, so the black box and the frozen first status word were the instrument's timing, and the defect the frame then showed once the door drew (ten stops of over-exposure) was invisible to it. A page whose work is asynchronous owes the oracle a signal it already waits on (here a finite pulse on the status line, finished when every wanted tile is resident) and owes the reader each step by name; and a status writer that returns early until the work succeeds hides exactly the failures it exists to report.
2026-10-03 queue OPEN AFTER 2026-10-03: (1) nx_pano_view_gate 14421faa (70/70 GREEN inside the ship loop) is STAGED, NOT PROMOTED: nx_organ_ship refuses its behaviour leg because the served gate e29c5100 now exits 1 on the shared /tmp fixture (the new gate leaves a <cid>.png in the fixture's tile directory and the old gate's T13e counts it as a second non-tile), loss record 671f7732 is enumerated (the same 28 runs as the organ's); promote needs /api/promote with an admin cap or a loop rule for a gate whose incumbent reads RED on the successor's fixture. Until then the served gate reads RED for a fixture reason, not a subject reason; nx_retire_path could not move the stray PNG (rename rc=-18, /tmp is another filesystem). (2) Deploy the compare gateway 02bf9c3b so content-addressed tiles cache (row 1791042600). (3) Firefox or Waterfox behaviour is UNVERIFIED (the capture organ drives Edge only); the page now names the step it waits on in any browser, so the operator's next look reads the stall directly. (4) In flat mode the exposure slider is still drawn and moves nothing. (5) The renderer stores radiance at 1/GP_FX of display white (nx_pano_render hands unit GP_FX x GP_MAXCH while gp_encode's white is GP_MAXCH x GP_FX x GP_FX); the page compensates at open with a derived exposure, and a renderer-unit fix would need re-renders of every banked HDR. (6) Pixel referee for the seam and a warm-cache first-paint number for the done-rule.
PN26 Measured GPU frame time on the page · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_gpu_timing · executor Organ · 0.5 u · stands on PN5
Definition of doneThe WebGPU door requests timestamp-query and publishes measured GPU milliseconds per frame beside the door line, carried to the estate through nx_gpu_timestamp_lib's lossless transport. Done-rule: the page reports a measured GPU frame time on a device that grants the feature, says UNMEASURED by name on one that does not, and the transported value matches the page's to the nanosecond
Matrix cellGPU TIMING: measured GPU milliseconds per frame on the page, transported losslessly to the estate · runtime/nx_pano_gpu_timing.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_gpu_timing; declare nx_pano_gpu_timing TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
PN27 The Nishi browser's native panorama door, superior to the WebGPU page · cell WATCHING · gate NO-GATE-DECLARED
Contract_ABSENT_:pano_native_door · executor Organ · 3 u · stands on PN5, browser:BR23 (UNRESOLVED: no such rung on this plan)
Definition of doneA native estate client (nx_pano_native) reads view.nxr, verifies every level by its content id, compiles the SAME NishiLang shader source in (never WGSL text), and renders through the sovereign GPU lane in full float radiance with HDR output straight to the display; the page's nishi-game marker names it once it exists, and the browser hands it the page URL (browser BR23's launcher passes no argument today). Done-rule: opened in the Nishi browser, the same panorama at the same view bit-compares against the reference-browser WebGPU capture at SDR, and the native door is measured superior on declared axes: radiance precision, HDR headroom delivered, frame time and resident memory
Matrix cellNATIVE DOOR: the Nishi browser opens view.nxr natively, same shader source, float radiance, HDR to the display · runtime/nx_pano_native.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_pano_native; declare nx_pano_native TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet

dossiers=27 cells_joined=27 no_matrix_row=0 (sum 27) gates_recorded=0 gates_unrecorded=0 no_gate_declared=27 (sum 27 of cells_joined) evgates=UNSTAMPED

Capability comparisons

Compare the field, search individual capabilities and open their source and adoption evidence. Documented presence does not establish comparative quality.

Position map — centrality and distinctiveness

The four-quadrant map the field uses for brand strategy (Dawar and Bagga, HBR June 2015), re-derived from this matrix on every publish. Centrality is the share of the category's feature mass a player covers, each feature weighted by how many hold it; distinctiveness is the average lead over each rival on the rows the player holds; breadth is the depth-weighted share of the whole matrix (the bubble); depth is how deeply the rows held are held; momentum is the day-over-day move off the spine (green rising, red falling, grey until day two); the dashed path runs first day → previous day → today. Dividers are the category means. Axes are fitted to the field of play, so read the tick numerals, not the frame. Rival marks are documented presence, so a rival's position reads the record, never its quality. The picture grades its own readability below; the table beside it is the same data for a screen reader or a second method.

Rows. 34 feature rows mapped of 34 matrix rows; 0 substrate rows (kernels, bounds and instruments the plan's rungrole marks substrate) are the estate's scaffolding, not category features, and stay off the map
Views. 2D cut: centrality, distinctiveness · 3D cube: centrality, distinctiveness, breadth · axes registered: centrality, distinctiveness, breadth, depth, momentum · a board picks its own in knowledge/compare/pano360.cdmap (cut|x|y, cube|x|y|z); absent = the HBR defaults
Position map, two-dimensional cutOne bubble per player. Bubble area is breadth, the ring colour is momentum, the dashed lines are the category means, and both axes are fitted to the field of play with their tick numerals shown. Every value is repeated in the table that follows. 100 200 300 400 500 600 200 300 400 500 600 700 800 centrality (permil, fitted 100–600) distinctiveness (permil, fitted 200–800) mean 430 mean 443 Unconventional Aspirational Peripheral Mainstream Nishi, centrality 525, distinctiveness 595, breadth 274, depth 666, momentum 0 Blockade Labs Skybox AI, centrality 450, distinctiveness 404, breadth 127, depth 619, momentum 0 PanoPulse, centrality 475, distinctiveness 309, breadth 107, depth 523, momentum 0 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), centrality 400, distinctiveness 476, breadth 137, depth 666, momentum 0 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista), centrality 300, distinctiveness 433, breadth 88, depth 600, momentum 0 Nishi Blockade Labs Skybox AI PanoPulse Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360) Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)

bubble area = breadth · ring = momentum (green rising, red falling, grey until day two) · dashed = category means · axes fitted to the field of play: centrality 100–600, distinctiveness 200–800 of 0–1000 permil (the full range put every player in one corner)
readability of the 2D cut, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 2 · mark overlaps 0 (a fact of the data: two players that close are that close) · data spread 463 permil of the plot · quadrant words unseated 0
text contrast, measured with wcag2-ratio (floors from contrast.conf), light theme: labels 16.24 (floor 4.50) · notes 16.24 (floor 4.50) · quadrant words 5.89 (floor 4.50) · tick numerals 5.89 (floor 4.50) · axis titles 5.59 (floor 4.50) · dark theme: labels 13.78 (floor 4.50) · quadrant words 5.55 (floor 4.50) · axis titles 5.97 (floor 4.50) · dark classes under their floor 0 (one figure serves both themes: a dark shortfall is a token to fix, never a class to hide) · classes refused under their floor 0 (a refused class is not drawn; the scale classes are measured, never hidden) · export: SVG PNG (receipt, rendered by the estate's own rasteriser from this page)
Position map, three-dimensional cubeThe same players in an isometric cube. Each axis is fitted to its own field of play and carries numerals on the floor grid and the vertical axis; each bubble drops a dotted line to its floor shadow so height reads as height. Values are in the table that follows. 100 200 300 400 500 600 200 300 400 500 600 700 800 50 100 150 200 250 300 centrality distinctiveness breadth Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): centrality 300, distinctiveness 433, breadth 88 PanoPulse: centrality 475, distinctiveness 309, breadth 107 Blockade Labs Skybox AI: centrality 450, distinctiveness 404, breadth 127 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): centrality 400, distinctiveness 476, breadth 137 Nishi: centrality 525, distinctiveness 595, breadth 274 Nishi Blockade Labs Skybox AI PanoPulse Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360) Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)
axes fitted: centrality 100–600 · distinctiveness 200–800 · breadth 50–300 permil · farther bubbles are painted first, nearer ones over them · the floor shadow is each bubble's (x, y) at height 0
readability of the 3D cube, self-graded by the layout ruler: label overlaps 1 · labels over marks 3 · off-canvas 3 · unresolved labels 1 · mark overlaps 0 (a fact of the data: two players that close are that close) · data spread 236 permil of the plot
Position map, small multiplesEvery pair of registered axes as one small cut. Each panel fits both axes to the field of play, the dashed lines are the category means, bubble area is breadth and the ring colour is momentum; the legend below names the colours. 250 600 200 700 distinctiveness vs centrality Nishi: centrality 525, distinctiveness 595 Blockade Labs Skybox AI: centrality 450, distinctiveness 404 PanoPulse: centrality 475, distinctiveness 309 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): centrality 400, distinctiveness 476 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): centrality 300, distinctiveness 433 250 600 50 300 breadth vs centrality Nishi: centrality 525, breadth 274 Blockade Labs Skybox AI: centrality 450, breadth 127 PanoPulse: centrality 475, breadth 107 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): centrality 400, breadth 137 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): centrality 300, breadth 88 250 600 500 700 depth vs centrality Nishi: centrality 525, depth 666 Blockade Labs Skybox AI: centrality 450, depth 619 PanoPulse: centrality 475, depth 523 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): centrality 400, depth 666 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): centrality 300, depth 600 250 600 480 520 momentum vs centrality Nishi: centrality 525, momentum 500 Blockade Labs Skybox AI: centrality 450, momentum 500 PanoPulse: centrality 475, momentum 500 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): centrality 400, momentum 500 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): centrality 300, momentum 500 200 700 50 300 breadth vs distinctiveness Nishi: distinctiveness 595, breadth 274 Blockade Labs Skybox AI: distinctiveness 404, breadth 127 PanoPulse: distinctiveness 309, breadth 107 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): distinctiveness 476, breadth 137 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): distinctiveness 433, breadth 88 200 700 500 700 depth vs distinctiveness Nishi: distinctiveness 595, depth 666 Blockade Labs Skybox AI: distinctiveness 404, depth 619 PanoPulse: distinctiveness 309, depth 523 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): distinctiveness 476, depth 666 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): distinctiveness 433, depth 600 200 700 480 520 momentum vs distinctiveness Nishi: distinctiveness 595, momentum 500 Blockade Labs Skybox AI: distinctiveness 404, momentum 500 PanoPulse: distinctiveness 309, momentum 500 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): distinctiveness 476, momentum 500 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): distinctiveness 433, momentum 500 50 300 500 700 depth vs breadth Nishi: breadth 274, depth 666 Blockade Labs Skybox AI: breadth 127, depth 619 PanoPulse: breadth 107, depth 523 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): breadth 137, depth 666 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): breadth 88, depth 600 50 300 480 520 momentum vs breadth Nishi: breadth 274, momentum 500 Blockade Labs Skybox AI: breadth 127, momentum 500 PanoPulse: breadth 107, momentum 500 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): breadth 137, momentum 500 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): breadth 88, momentum 500 500 700 480 520 momentum vs depth Nishi: depth 666, momentum 500 Blockade Labs Skybox AI: depth 619, momentum 500 PanoPulse: depth 523, momentum 500 Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360): depth 666, momentum 500 Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista): depth 600, momentum 500
Nishi Blockade Labs Skybox AI PanoPulse Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360) Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)
10 panels over 5 registered axes, every pair once (the lower axis on x, the higher on y) · each panel fitted to its own field of play, first and last tick numerals shown · no labels in a small cut, the legend names the colours; the grade below reports the mark terms only (MM summed over the panels, spread averaged)
readability of the small multiples, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 1 (a fact of the data: two players that close are that close) · data spread 535 permil of the plot
PlayerQuadrantcentralitydistinctivenessbreadthdepthmomentumRows heldDays on spineFirst seen
NishiAspirational5255952746660 since 2026-10-031442026-09-28
Blockade Labs Skybox AIMainstream4504041276190 since 2026-10-03742026-09-28
PanoPulseMainstream4753091075230 since 2026-10-03742026-09-28
Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360)Unconventional4004761376660 since 2026-10-03742026-09-28
Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Peripheral300433886000 since 2026-10-03542026-09-28
DayMatrix rows reviewedPlayers recorded
2026-09-28285
2026-09-29345
2026-10-03345
2026-10-08345

players 5|matrix rows 34|feature mass 40|centrality mean 430|distinctiveness mean 443|axes 5|spine days 4 (shown 4)|rows written today 0|readability defects 2D 0 cube 7|spine knowledge/status/cdmap/pano360.spine

How to read this evidence. A Nishi source mark records whether the named symbol is declared in the selected source file. It does not establish working behavior or accepted delivery. A watching tag names an expected source entry; discovering it updates source coverage only. A dark tag means the file exists but the named symbol was not found: inspect the source and contract before assuming the capability is missing or renaming code. Peer codes are authored assessments; unassessed means no comparison is established, not absence. Qualification, deployment identity, runtime observations and acceptance must carry their own evidence. Adoption records the catalog's observed path through source, build, promotion, registration and invocation; libraries use importer evidence and gates use declared execution surfaces. A full catalog path does not establish quality, freshness or a successful user outcome. Partial and unknown states retain their stated next action. Census stamps: importers asof 1790637268, gate census asof 1790104131 (unix seconds; -1 = census absent).

Capability matrix — measured against source

◉ authored stronger claim; source present● present◐ partial○ absent? unassessed; excluded from relative comparison · click any capability for its evidence

Peer cell coverage: authored assessed 136, unassessed 0. Authored assessments are not verified outcomes.

CapabilityNishiBlockade Labs Skybox AIPanoPulseResearch diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360)Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)
RENDER
sovereign integer path tracer, every pixel the mean of Monte Carlo paths over the procgen worldMeasured: gp_trace exists in runtime/nx_gi_path_lib.nx, verified at emit. Owned by graphics GR42 and composed here, never re-implemented: radiance is carried as throughput times colour and averaged before one display encode, so a panoramic camera over it yields HDR radiance directly. None of the four mirrored rival records describes rendering the environment it sells Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
●○○○○
ENCODE
radiance mapped to display once, Reinhard at a declared exposureMeasured: gp_encode exists in runtime/nx_gi_path_lib.nx, verified at emit. The single point where HDR becomes LDR; the RGBE writer (PN3) takes the radiance before this call, which is why an exact-HDR panorama costs no new light transport Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
●○○○○
SKY
Rayleigh and Mie coefficients per atmospheric body in Q14Measured: nx_atmosphere_rayleigh_q14 exists in runtime/nx_atmosphere.nx, verified at emit. The CPU path tracer's escape radiance still comes from the procgen gradient sky; PN6 routes it through this model, the physics graphics GR26 already emits in the GPU sky shader Adoption: REGISTERED-UNAUTHORISED — PARTIAL: registered, no cap ever minted; no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
not adopted: registered, no cap ever minted; no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked)
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: registered, no cap ever minted; no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked)
●○○○○
TRIG
CORDIC sine and cosine over the full circle in Q16.16Measured: fx_sin_cos exists in runtime/fx.nx, verified at emit. Sixteen CORDIC iterations, about 3e-5 radian resolution, so a pixel centre of an 8K panorama maps to its direction within a small fraction of a pixel; PN1 composes it rather than a new trigonometry Adoption: SOURCE-ONLY — PARTIAL: source exists, never compiled: /api/build it.
not adopted: source exists, never compiled: /api/build it
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: source exists, never compiled: /api/build it
●○○○○
CORDIC atan2 in every quadrant, reusing the fx atan tableMeasured: geo_atan2 exists in runtime/_hdl_build/nx_geo_query.nx, verified at emit. The inverse half of the sphere map, direction to longitude and latitude, that PN1 composes Adoption: LIB-WIRED importers=4 nonval=2 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
●○○○○
MAP
equirectangular longitude-latitude to pixel in the geography senseMeasured: vg_equirect exists in runtime/_hdl_build/nx_viz_geo.nx, verified at emit. The same projection for maps in whole degrees; PN1 is its sphere-of-directions twin with sub-pixel centres and an exact round trip Adoption: SOURCE-ONLY — PARTIAL: source exists, never compiled: /api/build it.
not adopted: source exists, never compiled: /api/build it
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: source exists, never compiled: /api/build it
●○○○○
PNG
the estate's own PNG writer for LDR panoramasMeasured: nx_png_write_rgb exists in runtime/nx_png_write.nx, verified at emit. The LDR container every panorama also ships in; HDR needs PN3 Adoption: LIB-WIRED importers=90 nonval=49 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
●○○○○
MAP
sphere, equirectangular and cubemap mapping with an exact pixel round tripMeasured: pano_dir_from_px exists in runtime/nx_pano_lib.nx, verified at emit. PN1. Blockade and PanoPulse export equirectangular and cubemap layouts [pano_blockade_202609] [pano_panopulse_202609], graded Part because the conversion exists as an export whose accuracy is not published; the research works natively on equirectangular projections [pano_gen_202609] Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
dossiernot adopted: imported only by validation organs (gates, tests, benches): wire it into a shipping program
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulseCons not adopted yet: imported only by validation organs (gates, tests, benches): wire it into a shipping program
●◐◐●●
RENDER
panoramic camera, every primary ray cast on the sphereMeasured: pano_render_trace exists in runtime/nx_pano_render_lib.nx, verified at emit. PN2. No mirrored rival record renders a scene into a panorama; all four generate or reconstruct. WorldRover argues rendering supplies geometry and correspondence that capture cannot [pano_gen_202609] Adoption: LIB-UNCENSUSED — PARTIAL: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime).
dossiernot adopted: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
●○○○○
HDR
Radiance RGBE written and read, radiance taken before the display encodeMeasured: pano_rgbe_write exists in runtime/nx_pano_rgbe.nx, verified at emit. PN3. Blockade sells 32-bit HDRI lighting and 16K HDR EXR [pano_blockade_202609]; LatentHDR generates panoramic HDR by decoupling exposure in latent space [pano_hdr_202609], outside the four columns Adoption: LIB-UNCENSUSED — PARTIAL: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime).
dossiernot adopted: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
Pros Implementing source symbol found; runtime acceptance separate; ahead of PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
●●○○○
REFEREE
seam ratio, polar detail per solid angle and cubemap round-trip errorMeasured: pano_seam_score exists in runtime/nx_pano_referee.nx, verified at emit. PN4. Blockade claims perfect seams [pano_blockade_202609] without publishing a measure; GC360IQ and viewport-unaware blind OIQA score quality, not the seam itself [pano_gen_202609] Adoption: LIB-UNCENSUSED — PARTIAL: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime).
dossiernot adopted: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
●○○○○
VIEWER
sovereign 360-degree viewer page, no third-party scriptMeasured: pano_view_emit exists in runtime/nx_pano_view.nx, verified at emit. PN5. PanoPulse ships an interactive 360-degree viewer [pano_panopulse_202609]; Blockade exports to WebXR and Horizon OS [pano_blockade_202609] Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, completed MCP invocation not established by supplied journal window; lifetime history unknown (direct execution may be recorded elsewhere; this scan does not establish lifetime use).
dossiernot adopted: callable, authorised, completed MCP invocation not established by supplied journal window; lifetime history unknown (direct execution may be recorded elsewhere; this scan does not establish lifetime use)
Pros Implementing source symbol found; runtime acceptance separate; ahead of Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: callable, authorised, completed MCP invocation not established by supplied journal window; lifetime history unknown (direct execution may be recorded elsewhere; this scan does not establish lifetime use)
●●●○○
SKY
physical Rayleigh and Mie sky in the rendered panoramaOpen — watching runtime/nx_pano_sky.nx : pano_sky_physical, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN6. No rival record describes a physical sky model; their skies are generated pixels
dossierwatching pano_sky_physical
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
PROBE
light-probe consistency, relit inside the scene versus relit by the panoramaOpen — watching runtime/nx_pano_probe.nx : pano_probe_relight, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN7. Blockade sells HDRI for lighting [pano_blockade_202609] without a published relight error; RoomLight argues the distant environment map is itself an approximation indoors and Shedding Light finds generative models' understanding of lighting unproven [pano_hdr_202609]
dossierwatching pano_probe_relight
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
TRUTH
exact depth, normal and semantic layers with every panoramaOpen — watching runtime/nx_pano_aov.nx : pano_aov_layers, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN8. Panorama-to-world methods estimate depth from the pixels (DepthMaster, OmniPoint) and lift from it [pano_gen_202609], graded Part because the depth is estimated, not exact
dossierwatching pano_aov_layers
Pros none measured yetCons behind Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); open contract; expected source declaration not established
○○○○◐
LADDER
time of day, weather and season as data rowsOpen — watching runtime/nx_pano_scene.nx : pano_scene_ladder, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN9. Rivals vary scenes by prompt text; none publishes a reproducible scene row
dossierwatching pano_scene_ladder
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
WORLD
the scene behind the panorama exported for six degrees of freedomOpen — watching runtime/nx_pano_world.nx : pano_world_export, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN10. PanoPulse hands a panorama to a third-party splat service [pano_panopulse_202609], Part and outside its own stack; Genie Sim PanoWorld, ABot-3DWorld and Pano2World lift panoramas to navigable 3D [pano_gen_202609]
dossierwatching pano_world_export
Pros none measured yetCons behind PanoPulse, Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); open contract; expected source declaration not established
○○◐○●
ENDPOINT
VR room environment as skybox and image-based lightOpen — watching runtime/nx_pano_room.nx : pano_room_env, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN11. Both incumbents export skyboxes to headsets and WebXR [pano_blockade_202609] [pano_panopulse_202609]; neither publishes the light's agreement with a subject in the room
dossierwatching pano_room_env
Pros none measured yetCons behind Blockade Labs Skybox AI, PanoPulse; open contract; expected source declaration not established
○●●○○
synthetic photoshoot backdrop with the subject relit by its probeOpen — watching runtime/nx_pano_shoot.nx : pano_shoot_backdrop, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN12. No rival record composes a relit subject into its panorama
dossierwatching pano_shoot_backdrop
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
VIDEO
360-degree video through the estate's own codecOpen — watching runtime/nx_pano_video.nx : pano_video_emit, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN13. SpheRoPE extends zero-shot spherical priors to video and PanoWorld and Pantheon360 generate 360-degree video [pano_gen_202609]; neither incumbent page claims video
dossierwatching pano_video_emit
Pros none measured yetCons behind Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); open contract; expected source declaration not established
○○○●●
STYLE
fine-art operators run on the sphere so strokes do not stretch at the polesOpen — watching runtime/nx_pano_style.nx : pano_style_sphere, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN14. Blockade sells style-prompted skyboxes [pano_blockade_202609]; SHERPA adapts planar models to wrap-around and poles for stylised panoramas [pano_gen_202609]
dossierwatching pano_style_sphere
Pros none measured yetCons behind Blockade Labs Skybox AI, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360); open contract; expected source declaration not established
○●○●○
CORPUS
licence-clean panorama ledger, an oracle's output refused by nameOpen — watching runtime/nx_pano_corpus.nx : pano_corpus_ledger, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN15. Canvas360 trains on a million paired panoramas [pano_gen_202609] and states no licence per item in its abstract; Poly Haven lists 997 HDRIs under CC0 [pano_polyhaven_hdris_202609] [pano_polyhaven_license_202609]
dossierwatching pano_corpus_ledger
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
GENERATE
sovereign spherical diffusion model trained on the ledgerOpen — watching runtime/nx_pano_gen.nx : pano_gen_denoise, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN16. Both incumbents generate panoramas from text [pano_blockade_202609] [pano_panopulse_202609]; LF-MultiDiffusion, SpheRoPE and SHERPA do it on pretrained third-party models [pano_gen_202609]; the estate trains its own
dossierwatching pano_gen_denoise
Pros none measured yetCons behind Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360); open contract; expected source declaration not established
○●●●○
OUTPAINT
a flat photo or painting completed to 360 degrees with its inferred mask publishedOpen — watching runtime/nx_pano_outpaint.nx : pano_outpaint, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN17. PanoPulse outpaints a photo to a 360-degree sphere [pano_panopulse_202609]; Canvas360 trains outpainting in context [pano_gen_202609]; none publishes which pixels were seen
dossierwatching pano_outpaint
Pros none measured yetCons behind PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360); open contract; expected source declaration not established
○○●●○
PLACE
text to 360 with directions and layout placed on the sphereOpen — watching runtime/nx_pano_place.nx : pano_text_place, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN18. Object-centric control maps left, right, front and behind onto the sphere (2608.20691) [pano_gen_202609]
dossierwatching pano_text_place
Pros none measured yetCons behind Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360); open contract; expected source declaration not established
○○○●○
REFEREE
outside omnidirectional quality scores and a human two-alternative forced choiceOpen — watching runtime/nx_pano_extref.nx : pano_ext_referee, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN19. GC360IQ predicts individual opinion on stitched panoramas and blind OIQA grades without viewports [pano_gen_202609]; the run keeps every oracle outside the build path
dossierwatching pano_ext_referee
Pros none measured yetCons behind Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360); open contract; expected source declaration not established
○○○●○
HDR
16K tier and OpenEXR half-float written and readOpen — watching runtime/nx_pano_exr.nx : pano_exr_write, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN20. Blockade sells 16K HDR in EXR for LED walls and virtual production [pano_blockade_202609]
dossierwatching pano_exr_write
Pros none measured yetCons behind Blockade Labs Skybox AI; open contract; expected source declaration not established
○●○○○
LIFT
a generated panorama lifted to depth and Gaussians, the lift error measured on known depthOpen — watching runtime/nx_pano_lift.nx : pano_lift_depth, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. PN21. Genie Sim PanoWorld, Pano2World and SphericalDreamer lift single panoramas to 3D [pano_gen_202609]; PanoPulse hands its panoramas to a third-party splat service [pano_panopulse_202609]
dossierwatching pano_lift_depth
Pros none measured yetCons behind PanoPulse, Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista); open contract; expected source declaration not established
○○◐○●
PARALLEL
the panorama render split across the machine's measured cores, deterministic at any splitMeasured: pano_render_parallel exists in runtime/nx_pano_parallel.nx, verified at emit. The incumbents render on server GPUs; the estate's first factor of throughput is every CPU core it already has, with a per-pixel random stream so the answer never depends on the split Adoption: LIB-UNCENSUSED — PARTIAL: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime).
dossiernot adopted: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
●○○○○
GPU DECODE
RGBE decoded once on the WebGPU device into float with a mip chain and anisotropic filteringOpen — watching runtime/nx_pano_gpu_decode.nx : pano_gpu_decode, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The incumbents filter their 8K spheres in hardware; the estate's viewer reads exact texels today and owes the filtered path that stays sharp without shimmer at wide fields of view
dossierwatching pano_gpu_decode
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
CUBE SAMPLING
the sphere sampled as six faces through nx_pano_lib's convention, poles at the equator's densityOpen — watching runtime/nx_pano_cube.nx : pano_cube_sample, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Equirectangular sampling spends texels at the poles; a cube lookup in the shader IR gives the gameengine skybox the same door
dossierwatching pano_cube_sample
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
TILES
every level cut into content-addressed tiles, fetched only where the view looks, for 8K and 16KMeasured: pano_tile_pyramid exists in runtime/nx_pano_tiles.nx, verified at emit. The incumbents export 8K and 16K; a viewer that fetches the whole sphere cannot serve those tiers, so the tile pyramid is the resolution rung Adoption: LIB-UNCENSUSED — PARTIAL: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime).
dossiernot adopted: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
Pros Implementing source symbol found; runtime acceptance separate; ahead of Blockade Labs Skybox AI, PanoPulse, Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360), Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista)Cons not adopted yet: a library absent from the import-graph census (younger than the last eco-graph build, or unreachable from buildroot/runtime)
●○○○○
GPU TIMING
measured GPU milliseconds per frame on the page, transported losslessly to the estateOpen — watching runtime/nx_pano_gpu_timing.nx : pano_gpu_timing, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. No incumbent publishes its viewer's frame time; the estate publishes the measurement or says UNMEASURED by name
dossierwatching pano_gpu_timing
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
NATIVE DOOR
the Nishi browser opens view.nxr natively, same shader source, float radiance, HDR to the displayOpen — watching runtime/nx_pano_native.nx : pano_native_door, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The estate's own browser is the door that must beat every third-party one on measured axes: precision, HDR headroom, frame time and memory
dossierwatching pano_native_door
Pros none measured yetCons open contract; expected source declaration not established
○○○○○
Rival-claim provenance. Every Yes, Best or Part mark in a rival column is a claim about someone else's product. A cited row carries a reference mark that resolves to a pinned mirror (the refs gate measures that); an uncited row is an observation read and is badged in its evidence until a reference lands. The badge is the receipt, never the proof: a mark proves a mirror exists, not that the mirror supports the code. The rows are counted below.
Rival claims, counted
ClassCountNote
rows with rival marks14rows carrying a Yes, Best or Part in a rival column
cited14a reference mark resolves to a pinned mirror
uncited0an observation read, badged until a reference lands
rows, summed14RECONCILED: the parts sum to the total 14

Delivery and evidence

Inspect risks, technical debt, rendered observations, experiments and references. Read scope and limitations alongside every result.

Risk register

RiskLikelihood x impactMitigation
A generated panorama relights the synthetic human wrongly: a clipped sun, radiance inconsistent with the scene it showsprobable x highPN7 admits a panorama as a light probe only with its relight error against an in-scene render published; an LDR probe is refused by name
Third-party weights enter the run path by the fastest routepossible x highthe generative lane trains only on the PN15 ledger (the estate's renders, CC0 plates, consented captures); an oracle's output is refused as training data by name and every model card prints its ledger digest
Planar diffusion output carries seams and pole smears that a flat quality score passesprobable x mediumPN4 reads the sphere: the wrap boundary against neighbouring columns and polar detail per unit of solid angle, with planted controls in both directions
16K HDR at path-tracer cost exceeds the boxpossible x mediumresolution is a tier row chosen by measured capability, the 16K door announced when taken, never a constant in the source

Release history and work log

The worked plan, on the board. Every leg appends what it measured, landed, retracted, learned and left queued, per rung, so a crash leaves the next seat a ledger here rather than a transcript to mine. Kinds: measure, land, retract, lesson, queue. Newest last.
WhenRungKindEntry
2026-09-28PN1measureRESEARCH LEG 2026-09-28, every source fetched by the Nishi researcher and pinned: two arXiv API listings (360-degree generation, 80 entries; HDR and lighting, 60 entries), the Blockade Labs and PanoPulse product pages, the Poly Haven HDRI listing (997 records by two independent counters, the asset type field and the publication date field) and its licence page (all assets CC0). civitai.red answered the researcher 403 and nothing was saved. The incumbent's Sketch Mode, named in an outside summary the operator pasted, does not appear on its own mirrored page and is not cited.
2026-09-28PN2lessonTHE SOVEREIGN FIRST BYTE OF A 360 IS A CAMERA, NOT A MODEL: the path tracer already carries radiance before its single display encode, so one panoramic primary ray per pixel yields a seamless, exact-HDR panorama with depth and normals for free; the diffusion field spends its papers healing seams and approximating HDR from exposures, and the rendered tier is the ground truth that will judge the learned one.
2026-09-28PN1queuenext: M0 in order PN1 (the mapping lib and its gate), PN4 (the referee, so every later rung is judged), PN2 (the panoramic camera), PN3 (RGBE), PN5 (the viewer); each ships with a gate whose controls are planted.
2026-09-29PN1landSHIPPED 2026-09-28: nx_pano_lib (the sphere as one ruler) through its gate nx_pano_lib_gate, promoted ed41dc74, 19/19 GREEN on the first build. The equirectangular round trip is exact AND lands on the pixel centre for every one of 524,288 pixels at 1024 by 512 and for a size the run chose from the clock (488 by 244, 119,072 pixels); the corner-mapping neg-control failed all 119,072 of its pixels (BITE-PROVEN); the cubemap round trip is exact for all 393,216 pixels of six 256 by 256 faces; every cube pixel lands within half a pitch of its cell centre plus the atan table's residue (204 and 208 Q16 units against a 265 bound); the backward direction lands on column 1023 and probes either side of -z land on columns 1021 and 2, adjacent across the wrap. Composes fx.nx CORDIC and nx_geo_query atan2; no new trigonometry.
2026-09-29PN4landSHIPPED: nx_pano_referee through nx_pano_referee_gate, promoted 0d0b7953, 13/13 GREEN with its verdict thresholds read from knowledge/pano_referee.conf. The first run (conf absent) abstained SKIP by design and printed the calibration: seam rank clean sphere 695 permil against a planted seam 0; polar ratio clean 1083, per-pixel noise 996, planted planar paste 3422; nearest-neighbour cube round-trip error 0.349 grey levels clean against 34.1 on noise. The thresholds landed as data beside that evidence (seam floor 250, polar ceiling 2000); both neg-controls BITE-PROVEN, and noise is not read as a paste.
2026-09-29PN2landSHIPPED: nx_pano_render_lib (pano_render_trace) and the nx_pano_render CLI through nx_pano_render_gate, promoted 6e529b4d (gate) and bae86d0d (first CLI), 10/10 GREEN: 32,768 paths at 128 by 64 by 4 samples, deterministic (repeat difference 0) with a live sampler (0.69 grey levels between streams); the referee reads the render clean (seam rank 948, polar ratio 115); 9 stops between the brightest and dimmest radiance; a separate pinhole looking down +z agrees with the panorama at 5.7 grey levels against a 9.4 noise-derived bound while the mirrored panorama misses at 24.2 (BITE-PROVEN). The first gate draft ran at 64 by 32, where a panorama pixel was twice the pinhole's angular size and the margin read 8.3 against 9.5: the resolution was matched before shipping, never the bound widened.
2026-09-29PN3landSHIPPED: nx_pano_rgbe (Radiance RGBE with the format's run-length encoding, integer throughout) through nx_pano_rgbe_gate, promoted 54aa9005, 19/19 GREEN: a 40-stop ramp round-trips inside half a shared-exponent quantum on every channel, a constant image encodes to 459 bytes against 8,192 flat, the flat path covers widths under 8, file and in-memory round trips agree, a truncated file (-5), a foreign FORMAT (-3) and a missing signature (-2) are refused by name, the lowered-exponent neg-control fires on 41 channels, and a PN2 render written from its radiance BEFORE the display encode reads back within the bound with 13 stops on both sides. Per the native-formats rule RGBE is the door out; inside the estate radiance stays the renderer's own accumulator. The CLI gained an optional out.hdr argument writing exactly that.
2026-09-29PN5queuenext: PN5 the sovereign viewer (the equirectangular image as a sphere with drag and gyroscope look-around and an HDR exposure control, no third-party script, served and verified on the compare surface), then M1: PN6 the physical sky in the CPU tracer, PN7 the relight-consistency ruler, PN8 exact depth and normal layers, PN9 the scene ladder.
2026-09-29PN2measureFirst full-size panorama through the promoted camera (nx_pano_render, seed 77, clear weather): 1920 x 960 at 4 samples per pixel, 7,372,800 paths in 815,568 ms on ONE core (9,040 paths per second). Referee on the render: seam rank 974 permil CLEAN, polar ratio 20 permil CLEAN; 11 stops of dynamic range, radiance max 1,873 times the white-surface unit. The camera is single-threaded by construction; PN22 is the parallel door
2026-09-29PN3landnx_pano_render reshipped be869c07 with an optional out.hdr argument: the accumulator divided by spp and written as Radiance RGBE by pano_rgbe_write. Content ruler lost one run, the superseded usage line (allow_loss_v1 9b41e709). Behaviour change reviewed in knowledge/status/pano360_ship_review_20260928.txt (sha 5135927f): the first difference is the ms wall clock, where the live binary differs from itself (67 vs 75 ms on two runs), and the 12-byte growth is exactly the new hdr_bytes field
2026-09-29PN3landTHE TEXEL LAYER: nx_pano_rgbe split into a container layer (rgbe_header, rgbe_row_get) and a radiance layer, with pano_rgbe_unpack (the stored texels exactly, four bytes per pixel r g b e) and pano_rgbe_pixels (the same texels from radiance) sharing ONE per-pixel encoder rgbe_px_put with the scanline writer. nx_pano_rgbe_gate 19 -> 29/29 GREEN, shipped 9c561dfc: a run-length file unpacks to exactly the texel writer's bytes on both paths, the refusals are the decoder's, and the neg-control (the same texels in the file's planar scanline order) fires the byte tooth
2026-09-29PN5landnx_pano_view SHIPPED 24054276 with nx_pano_view_gate 31/31 GREEN (16752370, first run). The fragment stage is written ONCE in the shader IR (nx_pano_shader_src: exact textureLoad of four RGBE texels, bilinear in radiance, seam wrap and pole clamp on nx_pano_lib's convention, exposure, Khronos PBR Neutral [pano_pbrneutral_202609], sRGB) and nx_wgsl emits it as WGSL and GLSL with an identical IR trace; nx_wgsl's one dialect map gained atan2 -> GLSL atan (additive). The emitter writes a content-addressed texel ladder (nx_canon_cid cid_of per level), the NATIVE VIEW RECORD view.nxr (NXR1, read back by the tolerant reader nx_uxf_decode) and a WebGPU page that renders into an rgba16float canvas with EXTENDED tone mapping on an HDR display and verifies each level's SHA-256 against its content id before drawing. No WebGL door, no third-party script, every reference absolute
2026-09-29PN5lessonOPERATOR 2026-09-29, three directions in one hour: (1) webgl isnt really our focus vs webgpu sota -- the WebGL2 door was removed and the texture ladder floor moved to WebGPU's guaranteed 8192; (2) the Nishi browser is an outcome that must be SUPERIOR to webgpu and webgl -- the emitter now writes the native view record the Nishi browser's own door reads (rung PN27); the browser board already carries the pattern: BR23's nishi-game marker launches a native estate client instead of running page script, and BR22's directive is to emit, not to hand the estate's capability to third-party 3D stacks; (3) it all needs to be SOTA, not samples or lower than SOTA resolution -- the 1920 x 960 at 4 spp render is a MACHINERY SAMPLE and is not the published deliverable. The deliverable is an 8K-or-larger HDR panorama (the bar SB-PN-GEN-2609: Blockade 8K seamless, 16K HDR) through a tiled multi-resolution viewer; PN22 (every core) and PN25 (tiles) are the critical path
2026-09-29PN22landnx_pano_parallel (lib, contract pano_render_parallel) + nx_pano_parallel_gate 34/34 GREEN, promoted f183f110: the frame traced on every core is byte-identical to the single-core pano_render_trace frame at one worker, at every worker (8 of 8), in two uneven multi-row bands and as one band -- texels, display bytes, paths and radiance range; the streamed HDR equals the radiance encoder and unpacks to the rendered texels; both neg-controls bite (another seed 1112 differing bytes, one flipped texel 1 byte)
2026-09-29PN22measurenx_pano_parallel_gate run 1 on west_nas under load: 54 x 27 at 4 spp = 5832 paths; single core 1715 ms, one worker 1985 ms, 8 workers 464 ms; speed-up of every worker over one 4278 permil (published, never asserted: a shared box makes it volatile)
2026-09-29PN3landnx_pano_rgbe grows the texel stream writer: rgbe_row_bound, rgbe_fd_put, rgbe_px_planes, pano_rgbe_write_px (texels to a Radiance file one scanline at a time, so an 8K or 16K frame costs one scanline of scratch beyond its texels); gate 34/34 GREEN promoted 1bebd396 (T11..T11d: the stream equals the radiance encoder on the run-length and the flat path, a flipped texel byte bites)
2026-09-29PN22lessona structured scope holds at most max-children-per-scope children (knowledge/sc_scope.conf, 1024), so the production band is ceil(H / min(1024, H)) rows -- the finest cut the scope admits: an 8K frame is 1024 bands of 4 rows, 16K is 1024 of 8, and the working set is the outputs plus one band per worker
2026-09-29PN25landnx_pano_tiles (lib: pano_tile_count, pano_tile_crop, pano_tile_pyramid) cuts every level of the texel ladder into content-addressed tiles t/<cid>.rgbe, so an 8K or 16K panorama opens from one tile; nx_pano_shader_src grows pano_view_fragment_tiled (a level table and a page table as read-only storage, a loop that falls back to coarser levels until a resident tile answers, four exact texel taps) and pano_view_tiled_textures, the one owner of the stage's textures; nx_pano_view emits the tiled page (coarsest level whose texel density covers the screen, tiles probed against the view and widened by one ring, fetched nearest the centre first, every tile's SHA-256 checked against its content id, one atlas texture, least-recently-wanted eviction, the last level pinned) and a native record carrying the tile edge and every level's tile ids. nx_pano_view_gate 44/44 GREEN promoted 7c1a3132 (40 superseded runs and the behaviour change reviewed, evidence knowledge/status/pano360_view_gate_ship_evidence_20260929.txt); nx_pano_view promoted 2ee1452e through /api/promote with expect_sha256 (33 superseded runs enumerated in record loss-510338953c4f), _offc twin refreshed. Tile edge 512 and atlas budget 200 MiB are conf rows calibrated from the incumbents [pano_krpano_tiles_202609] [pano_marzipano_202609] [pano_krpano_memory_202609]. Done-rule NOT met: no 16384 x 8192 frame and no cold-cache first-paint measurement yet
2026-09-29PN25measurethe promoted CLI on the 64 x 32 gate fixture: rc=0, levels=1, tiles=1, tile_edge=512 from the conf row, tiled WGSL fragment 3427 B with no refusal, page 19652 B, native record 752 B; the gate's own run on a clock-chosen edge between 17 and 31 texels (partial right and bottom tiles) proves every level-0 tile an exact crop named by its content id and level 1, reassembled from its tiles, the 2 x 2 radiance mean within half a quantum
2026-09-29PN25lessonthe storage bindings were first written as the texture binding plus one; nx_wgsl gives a sampled 2D texture two slots (its companion sampler takes the second) and refuses a storage buffer on that slot, so the bindings are now DERIVED from the backend's own rule (wg_tex_binding over a probe module holding the stage's one texture set), never counted by hand
2026-09-29PN5landthe PBR Neutral tone curve both fragment stages transcribe is mirrored and pinned as its specification, the Khronos ToneMapping README (F90 0.04, Ks = 0.8 - F90 = 0.76, Kd 0.15, toe below 2 F90 = 0.08), and the shader's constants were checked against those bytes [pano_pbrneutral_202609]
2026-09-29PN25lesson/api/build answered produced-no-elf with an empty diag, and every nx_job_run output came back empty, because /tmp on the NAS (tmpfs, 81737 entries) was FULL: nx_fs_write code=-28, nx_diskfree used_permil=1000 avail 0; the lane's own compile had succeeded. A first debt row named a target-specific cause and was superseded within minutes by 1790667724 carrying the witness. A capture that could not be written must name ENOSPC on its own path rather than blame the compiler
2026-09-29PN22queuethe 8K frame (8192 x 4096, 4 spp, seed 77) is rendering on every core at nice 19 into knowledge/pano360/pano360_s77_w8192_spp4.hdr; its stdout receipt goes to /tmp and will be lost while /tmp is full, so its figures will be read back from the HDR itself; then nx_pano_view on it into the compare docroot, nx_page_verify, and a captured frame for the referee
2026-09-29PN22landthe queued 8K frame finished: knowledge/pano360/pano360_s77_w8192_spp4.hdr, 8192x4096 Radiance RGBE (header -Y 4096 +X 8192, SOFTWARE=nishi nx_pano_rgbe), 21,331,246 B, seed 77, 4 samples per pixel, rendered on every core by nx_pano_render 0d23d5c7; still below the bar: SB-PN-GEN-2609 asks 8K seamless and 16K HDR, and 4 spp is visibly noisy with no denoiser rung yet
2026-09-29PN25measure8K tiled view emitted from that frame: nx_pano_view 2ee1452e -> PANO-VIEW rc=0 levels=5 tiles=171 tile_edge=512 ev_min=-11 ev_max=1 clamped_exponents=0 wgsl_vs=173 wgsl_fs=3427 page_bytes=32567 record_bytes=13307 record_cid=private-ref:243c1923, served at /compare/pano360/view; the first tile private-ref:f5da7818 (524,288 B) came back through the edge and hashes to its own name [pano_krpano_tiles_202609]
2026-09-29PN25measurenx_page_verify on /compare/pano360/view: VERDICT=GREEN with one accessibility finding, h1-count=0 (want exactly 1), the page opened body and main straight into the viewer. Fixed in source the same hour: nx_pano_view emits an h1 (class pv-head) with the title above the viewer, one CSS rule reusing the bar's padding and divider; gate teeth T9k exactly one h1, T9l the h1 names the title, T9m neg-control a doubled heading reads more than one; the gate compiled 5729ccba (439,256 B), and its run waits on /tmp space
2026-09-29PN25queuevisual and interaction review UNVERIFIED: nx_cdp_capture on the NAS refuses CD-BROWSER-ABSENT candidates=2 because knowledge/cdp_capture.conf names only the laptop's Edge through WSL interop (cms CM13); until a real browser renders /compare/pano360/view and a referee counts seams, tile swaps and first paint on the pixels, the 8K view is served, not reviewed
2026-09-29PN25landTHE VIEW PAGE CARRIES ITS ONE HEADING, PROMOTED 2026-09-29: nx_pano_view fa2ab20c (313,296 B) and nx_pano_view_gate 5729ccba (439,256 B, 47/47 GREEN -- T9k exactly one h1 actual=1 expected=1, T9l the h1 names the panorama by its title, T9m the neg-control reads a doubled heading as more than one and a closing tag as none); the content ruler lost 0 runs for both and the view gained exactly the .pv-head rule and the h1 open tag; /compare/pano360/view re-emitted with the identical argv, record_cid unchanged (private-ref:a319f1ec the 171 tiles and the native record are byte-identical, only the page moved), page 32,765 B; nx_page_verify on the live URL GREEN with single-h1 OK, heading-order OK, landmark main OK, a11y-issues=0, view.nxr 13,307 B status 200 -- static checks only, the pixel review is still the queue row above
2026-09-29PN25measureTHE /tmp OUTAGE THAT BLOCKED THIS LANE'S GATE RUNS AND BUILDS IS CLEARED: /tmp 1000 -> 587 permil with 7.8 GB free. The filler was another lane's clock row (lang LN100 progendiff: /tmp/progen_live 7.8 GB in 236,721 files), found by nx_dirbytes, the census organ built here (promoted 054baba3, gate 18/18: allocated bytes by entry and by name family, symlinks counted never followed, two counters reconciled), and fixed at its root in the progendiff organ (journal lang.plan 1790674420-1790674424, debt 1790674394)
2026-09-29PN25retractTHE 8K FRAME WAS 8192 x 4096 IN SIZE, NOT IN RESOLUTION -- the PN22 land row and the PN25 view rows of 2026-09-29 claimed an 8K panorama that the camera could not resolve. Measured by nx_pano_rayfid (new ruler: every pixel's centre ray mapped back through PN1's own inverse, the unquantised direction first as the control): at the tracer's fx1024 direction unit 775 permil of the 33,554,432 pixels cast a ray that landed in ANOTHER pixel (687 permil within 45 degrees of the horizon), 475 permil cast exactly their left neighbour's ray, and the largest landing offset was 4,096 px; at 4096 wide 434 permil escaped, at 2048 wide 142 permil, at 16384 wide 927 permil with 720 permil duplicated. A 1/1024 quantum is about 9.8e-4 rad and an 8K pixel is 7.7e-4 rad, so neighbouring pixels shared rays and every pixel showed the scene from a direction up to pixels away. The 8K tiles served at /compare/pano360/view are that frame until the ray-resolved render replaces them
2026-09-29PN25measureRAY FIDELITY AFTER THE FIX, THE WHOLE POPULATION AT EVERY WIDTH (nx_pano_rayfid e1d851a9): 2048 unit 2^22, 4096 unit 2^24, 8192 unit 2^26 and 16384 unit 2^28 all read escaped=0 dup_left=0 max_off_px=0 control_escaped=0 verdict=RESOLVED (16384: 134,217,728 pixels, 362 s). The 16K pass first read INSTRUMENT-FAULT: PN1's own inverse returned 3,134 of 134,217,728 unquantised centres to the row NORTH of their own (2,958 of them within 45 degrees of the horizon, all named ones py 1761 -> 1760), because PN1 scaled y by FX_ONE while x and z carried the Q16 CORDIC sine and cosine, whose pair is unit length only to a few parts in ten thousand; y now takes the pair's actual length (vm_isqrt), the mismatch cancels in the inverse's atan2, and the 16K control reads 0. PN1's gate had proven every pixel only at 1024 wide (2^10); its header's 16K claim had never been measured
2026-09-29PN25landTHE CAMERA RESOLVES EVERY PIXEL, PROMOTED 2026-09-29: the primary ray's unit is derived from the frame it must resolve (pano_ray_unit: the smallest power of two at or above W^2 of the sampling grid, never coarser than GP_FX, capped where three squared components fit an i64 -- the smallest equirectangular pixel spans about 2 pi^2 / W^2 radians), cast through ONE conversion (pano_ray_quantize / pano_ray_fx) that the render and the ruler share; the tracer's first event takes that unit (gp_trace_u, gp_march_u, gp_norm3_u in nx_gi_path_lib and wg_sky_u in nx_worldgen, each old name kept as its fx1024 wrapper) while bounce rays stay fx1024 Monte Carlo draws. nx_pano_render 02e056f4, nx_pano_render_gate 3fdacb4e (17/17: T8 the ruler walks the whole 2 x GP_FX frame, T8a control home, T8b zero escapes, T8c zero duplicates, T8d neg-control the tracer unit leaves 300,472 rays in other pixels BITE-PROVEN, T8e unit 2^28 at 16K, T8f floor GP_FX), nx_pano_lib_gate fc08000e (21/21: T10 the 16K row 1761 round-trips, T10a the rebuilt FX_ONE-y direction fails 13 centres of that row BITE-PROVEN), nx_pano_parallel_gate f65167cd (35/35, any band split still one frame), nx_pano_rayfid e1d851a9 registered; content ruler lost only pano_q32_per_fx, a dead helper removed
2026-09-29PN25lessonA NEUTRALITY TEST AGAINST A BINARY OF ANOTHER VINTAGE CONVICTS A NEUTRAL CHANGE: the pinhole tracer rebuilt with the generalised tracer rendered a different PNG than the served nx_gi_path (eba1436c vs 577d0bb3) with every ray-event count identical, and the served binary was 26.6 days old. The pre-change nx_worldgen and nx_gi_path_lib were rebuilt by reversing the exact edits on scratch copies and proven byte-exact by hash against the flow-back's agreed base (2560674f and 513c7f4c), compiled in the same lane the same hour as a control, and rendered eba1436c -- identical to the candidate. The generalisation is byte-neutral for every fx1024 caller; the served binary simply predates other seats' changes. Control sources retired reversibly (knowledge/retired/*pre0929*)
2026-09-29PN25queuethe ray-resolved 8K frame is rendering (nx_pano_render 02e056f4, seed 77, 4 spp, every core at nice 19, pid 22077, -> knowledge/pano360/pano360_s77_w8192_spp4_r2.hdr); when it lands: re-emit /compare/pano360/view from the _r2 HDR, nx_page_verify, then the 16384 x 8192 frame the PN25 done-rule names (its 2 x 2 anti-aliasing grid is 32768 wide, unit 2^30 -- the i64 cap -- whose full-population fidelity run is in flight). nx_gi_path was rebuilt only as the neutrality proof and is NOT promoted: its stage slot holds a rebuild from current sources, which differ from its 26-day-old served binary by other seats' work, the graphics lane's to ship
2026-10-01PN25landTHE RAY-RESOLVED 8K FRAME IS LIVE at /compare/pano360/view: knowledge/pano360/pano360_s77_w8192_spp4_r2.hdr (nx_pano_render 02e056f4, 8192 x 4096, seed 77, 4 spp on a 16384-wide sub-pixel grid at unit 2^28, 134,217,728 paths in 4,859 s on 8 workers, seam CLEAN 974 permil, polar CLEAN 4 permil, 14 stops, 19,305,129 B, sha 8dee0590); nx_pano_view emitted 5 levels and 171 tiles, page 32,869 B, record private-ref:595112f8; nx_page_verify GREEN, static checks only -- browser rendering and the referee's look at the served frame are still owed
2026-10-01PN1measureTHE NEXT PRECISION WALL WAS PN1 ITSELF, AT THE 16K RENDER'S SUB-PIXEL GRID: nx_pano_rayfid 32768 on the Q16.16 PN1 read INSTRUMENT-FAULT -- its own unquantised round trip sent 29,160,465 of 536,870,912 centres (54 permil; 60 permil within 45 degrees of the horizon) one pixel sideways, while the camera's unit 2^30 added only 3,063 more. Half a pitch at 32768 wide is about six Q16 angle units and the CORDIC round trip reaches it: the 16K frame's 2 x 2 anti-aliasing samples would have landed in a neighbour's cell 1 time in 20
2026-10-01PN1landPN1 IS Q30, PROMOTED 2026-09-30: composed from nx_fixq30_lib (pi, the atan table and the gain DERIVED by series, 30-step CORDIC) -- the incumbent nx_capsearch named, not a new trigonometry; every equirectangular call takes an explicit context (pano_ctx / pano_ctx_free: fq_ctx maps 320 B, above the 256 B small arena, so each batch call makes one and frees it, never one per pixel); directions at PANO_DIR_ONE = 2^60, cube faces Q30, a longitude a hair below -pi wraps to the last column. nx_pano_lib_gate 44315205 25/25 (T11 the polar, equator and a run-chosen row of the 32768-wide grid and T12 of the 65536-wide grid round-trip exactly; T11a and T12a the Q16 PN1 rebuilt bit for bit sends 716 of 32,768 and 65,536 of 65,536 polar centres to a neighbour), nx_pano_render 4bf1ed1f, nx_pano_render_gate bd0f63cc 17/17, nx_pano_referee_gate c528a7e6 13/13 (the referee was still on the pre-y-fix PN1), nx_pano_parallel_gate 19235271 35/35, nx_pano_rayfid 859e70eb; _offc twins installed. CAPLOSS was overridden with every lost run named: the source paths fx.nx, nx_geo_query, nx_geo_distance, nx_isqrt and the symbols fx_sin_cos, fx_cordic_atan, fx_normalize_angle, geo_atan2 (the Q16 closure PN1 no longer links; the guard's own source_removed counts match), and in PN1's gate the labels renamed in this change (T4, T7, T7a, T10a, unit_dev_q32, cube_max_dlon_q16, cube_max_dlat_q16, g_dir_fx_one_y)
2026-10-01PN1lessonA NEG-CONTROL THAT REBUILDS HALF A DEFECTIVE SYSTEM GOES VACUOUS WHEN THE OTHER HALF IMPROVES: T10a rebuilt only the FX_ONE-y FORWARD and borrowed the lib's inverse; once the inverse was Q30 it landed the old forward's row 1761 home (0 failures) and the bite read VACUOUS, i.e. yesterday's 13 tilted centres needed BOTH Q16 halves. Rebuilt as the whole pre-2026-09-29 PN1, forward and inverse, it fires on the same 13. A neg-control stands for a SYSTEM; borrow nothing from the subject it is controlling
2026-10-01PN1measurethe derived pi is 3,373,259,436 in Q30 against pi x 2^30 = 3,373,259,426.07: ten units, 3e-9 relative, the series' own truncation. Forward and inverse share the one pi, so round trips stay exact and the frame's absolute angle scale is off by 3e-9 -- 1/30000 of a pixel pitch at 65536 wide (emitted as pi_q30 by nx_pano_lib_gate for an outside check)
2026-10-01PN25queuethe full-population nx_pano_rayfid 32768 on the Q30 PN1 is running (/tmp/rayfid_q30_32768.out); when it reads RESOLVED, the 16384 x 8192 frame is the PN25 done-rule render (seed 77, 4 spp, 32768-wide sub-pixel grid at unit 2^30, about 4x the 8K frame's 81 min) -- its memory footprint is read from nx_pano_render's own buffers before launch. LITTER NAMED: re-emitting the view left the unresolved frame's 142 tiles (about 148 MB of 327 MB) in sites/nishifamily/compare/pano360/view/t, referenced by no record; nx_pano_view has no reap path, so every re-emit of a changed frame accumulates one superseded pyramid -- the remedy is a verb on the emitter (retire, reversibly, every tile the new record does not name), owed before the 16K emit
2026-10-01PN25landTHE TILE REAP SHIPPED 2026-09-30: nx_pano_tiles gained pano_tile_reap (every <cid>.rgbe in <out_dir>/t that the new record does not name is RENAMED into an archive, all names listed before the first rename; a file that is not a tile is left and counted; nothing is deleted); nx_pano_view hands its tile ids back through res (PVW_R_TILE_CIDS) and the CLI reaps after a successful emit into knowledge/retired/<out_dir flattened>_t-<epoch> (nx_retire_path's naming), printing a PANO-VIEW-REAP line; nx_pano_view_gate 44 -> 56 teeth, T13 to T13h on a clock-named orphan reaped twice (id named: kept; id not named: moved byte-for-byte), T13h BITE-PROVEN, two consecutive runs 56/56 GREEN (idempotent: the gate empties its own archive first, and its first run retired 44 tiles earlier gate runs had left in its fixture); contentdiff GREEN one-way gain, lost 0, on both organs; promoted nx_pano_view f9b1f539 (321808 B) and nx_pano_view_gate e29c5100 (450936 B), _offc twins installed, scratch row reaped. LIVE: the 8K view re-emitted from the same HDR and title: tiles_kept=142 tiles_retired=171 tile_dir_other=0 retire_refused=0 into knowledge/retired/sites_nishifamily_compare_pano360_view_t-1790820359; partition 142 + 171 = 313 files and 148373504 + 178782208 = 327155712 B, the before-state to the byte; nx_page_verify GREEN (page 200 32869 B, view.nxr 200, a11y 0). Browser rendering of the re-emitted page is UNVERIFIED (static checks only).
2026-10-01PN25retractThe 2026-09-29 queue row's figure of 142 orphaned tiles (about 148 MB) was WRONG: it was 313 files minus 171 record SLOTS, which assumed every slot is its own file. Content addressing makes identical tiles one file: the ray-resolved record's 171 slots resolve to 142 distinct files (148.4 MB), and the superseded frame's orphans were 171 files (178.8 MB). The discriminating evidence was the reap's kept count and the nx_dirbytes partition of t/ before and after; I first read the correct receipt as an inverted predicate because the plan's number was the wrong one.
2026-10-01PN6measureEVIDENCE FOR PN6 FROM THE 8K TILE PYRAMID: 29 of the record's 171 tile slots are duplicates. Content id private-ref:2a25e94b names 11 level-0 tiles in the zenith rows and private-ref:2090164b names 4 more, so whole 512 x 512 HDR tiles are byte-identical across azimuth. The sky there is either uniform at RGBE precision or repeats with a 512-pixel period; a physical sky lit by a sun varies continuously with azimuth and elevation, so either reading is a fidelity defect this rung exists to remove. Which of the two readings holds is UNMEASURED.
2026-10-01PN25lessonA SLOT COUNT IS NOT A FILE COUNT UNDER CONTENT ADDRESSING: identical content is one file, so a number derived as total minus slots understates the orphans by exactly the duplicate count, and a correct receipt then reads as inverted. Reconcile with the partition (kept plus retired equals the before-state, to the byte) before diagnosing the subject.
2026-10-01PN6measureTRIANGULATED BAR as of 2026-10-01 for physically based sky and atmosphere: three schools from three groups. Real-time physically based (Epic): Hillaire renders a planet atmosphere from ground to space with small LUTs in place of high-dimensional ones, approximates an infinite number of multiple-scattering orders in real time, changes composition with art direction and weather without heavy LUT rebuilds (its figure includes a Mars-like blue sunset), scales from mobile to high-end GPUs and also accelerates path tracing (EGSR 2020). Fitted reference (Charles University): the Prague sky model fits sky dome radiance and attenuation from measured scatterer distributions, adds post-sunset skies, finite-distance in-scattering and attenuation, an observer-altitude model with downward views and polarisation, and claims to beat both analytical clear sky models and interactive approximations of atmospheric transport (ACM TOG 2021). Independent referee (Bruneton): eight graphics clear sky models measured against sky measurements and an inverted physics reference show that the fewer simplifications, the more accurate. Newest month: September 2026 cs.GR has 170 entries and no sky or atmosphere rendering title, October has none yet, and abstract searches put the newest on-subject sky model in March 2026 (Icarus 2603.05758, a learned all-weather Full Dynamic Range sky model built from captured skies) behind newer homonyms (sky-sphere terms in 3DGS reconstruction, dehazing through an atmospheric scattering model, AI weather forecasting) ; witnesses [hillaire2020_t1001] [praguesky2021_t1001] [bruneton8sky_t1001] [skysearch_t1001] [atmosearch_t1001] [csgr202609_pano_t1001] [csgr202610_pano_t1001] ; where they disagree: Hillaire trades exactness for an analytic multiple-scattering term and dynamic, even alien, compositions; Prague says interactive approximations fall short of its fit and adds polarisation and post-sunset skies, but only for the measured terrestrial atmospheres it was fitted to; Icarus starts from captured all-weather skies with clouds, which both clear-sky schools leave out, and reports that earlier learned sky models fail on the 14 EV plus solar region; Bruneton's ranking predates the 2020 and 2021 models, so no shared benchmark yet puts Hillaire, Prague and Icarus on one error axis ; the estate's running lane builds two layers: nx_atmosphere carries Hillaire's and Bruneton's Earth constants (Rayleigh scattering, Mie extinction and ozone absorption per km, 8 km and 1.2 km scale heights, an ozone tent peaking at 25 km, a 6360 to 6460 km shell) but integrates TRANSMITTANCE only (a 500-step trapezoid baked into a 64-row sun-zenith LUT), while its sky colour is still a simplified Preetham-style horizon-to-zenith blend; the live page shader (gpe_sky_atmos, graphics GR26) is a per-channel single-scatter term 1-exp(-tau*airmass) with Kasten-Young airmass clamped at 38, a sun disc, a transmittance dusk tint and aerial perspective as a mix toward the sky colour. It is BELOW the triangulated best: it has Hillaire's transmittance stage and constants but none of his multiple-scattering, sky-view or aerial-perspective LUTs, no in-scattering integral along the view ray, no spectral or polarised output and no fit to measured skies, so this rung should take Hillaire-class multiple scattering as the floor and a Prague-class fitted model as its referee
2026-10-01PN9measureTRIANGULATED BAR as of 2026-10-01 for weather (clouds, fog, rain and wet surfaces): the best in class is split by phenomenon and by group. Clouds in production (Guerrilla, a vendor claim): Nubis cubed replaced the 2.5D cloud method of their 2015 and 2017 talks with voxel clouds that are flyable volumetric skyboxes, ray-marched with compressed signed-distance-field acceleration, modelled by fluid simulation, up-rezzed without memory-access stalls, with light-sampling acceleration and approximations of dark edges and inner glow. Clouds in research (Disney and ETH authors, SIGGRAPH Asia 2017): Deep Scattering predicts cloud radiance with a network fed a hierarchical density descriptor, because Lorenz-Mie scattering and high albedo make the silver lining and inner whiteness hard for Monte Carlo alone or diffusion theory, and reaches near-reference images within seconds. Rain and wet surfaces (Peking University, CVPR 2025): RainyGS couples physically-based raindrop and shallow-water simulation to Gaussian-splat rendering for drops, splashes and reflections at over 30 fps with intensity control. Fog and haze ride on the atmosphere witnesses (Hillaire's aerial perspective), and the only September 2026 fog entry is Tri-DehazeGS 2609.11223, an inverse method that models the medium as a separate tri-plane field through a physical scattering model. Newest month: no September 2026 cs.GR title names clouds, fog, rain, snow or weather, October has none yet, and an all-arXiv search for volumetric clouds finds nothing newer than June 2025 ; witnesses [nubis3_t1001] [deepscattering2017_t1001] [rainygs2025_t1001] [hillaire2020_t1001] [atmosearch_t1001] [volclouds_search_t1001] [csgr202609_pano_t1001] [csgr202610_pano_t1001] ; where they disagree: Guerrilla approximates the multiple-scattering look (dark edges, inner glow) with hand-built terms to hold frame rate while Disney learns it from exemplars and pays seconds per image, and neither covers rain; RainyGS gets rain and wet reflections inside a reconstructed scene rather than a generated one; the 2026 listings read here show splat reconstruction and inverse haze removal, not forward weather rendering, so the cloud bar is still the 2017 to 2023 pair ; the estate's running lane builds a 12-step front-to-back slab march through three-octave 3D value noise on the live world pages (procgen PG22: coverage from the weather field's CLEAR, OVERCAST and RAIN rows, Beer-Lambert extinction, a dual-lobe Henyey-Greenstein phase at g plus and minus 0.08, powder darkening, wind advection, a silver term toward the sun, a 2D sheet fallback on the CPU and wasm tiers) plus exponential altitude fog in nx_atmosphere, and this rung's weather ladder is still ABSENT; it is BELOW the triangulated best: the slab march is the 2.5D class the Guerrilla page says they left behind, there is no multiple-scattering model (learned or approximated), no rain, splash or wet-surface rendering, and the marched sky has no pixel referee grade or operator ACCEPT
2026-10-01PN1measurenx_pano_rayfid 32768 full population on the Q30 PN1 chain: all 536870912 pixel centres of a 32768x16384 panorama, no sample. escaped=0, band_escaped=0 of 268435456 band pixels, dup_left=0, max_off_px=0, control_escaped=0 and band_control_escaped=0 (PN1's own inverse manufactured no escape, so the instrument is sound), 3314439 ms on the NAS, verdict=RESOLVED. Q16 PN1 had failed 54 permil of centres at this grid; Q30 resolves every one. The run's argv0 was the stage slot nx_pano_rayfid.sov.elf.new through scratch row nx_pano_rayfid_staged, reaped after this row; its identity with the promoted 859e70eb rests on the promote receipt and was not re-hashed after the run.
2026-10-01PN9measureWEATHER WITNESSES BACKFILLED 2026-10-01, COUNTED BY GROUP PER PHENOMENON (every new source mirrored and read through nx_pdf_text this hour; vendors labelled; two papers of one group count once). CLOUDS 2 -> 4 groups: Guerrilla Nubis cubed (vendor) [nubis3_t1001], Disney and ETH Deep Scattering 2017 (peer reviewed) [deepscattering2017_t1001], EA Frostbite 2016 course notes (vendor: clouds in one constant-height slab, Perlin-Worley noise ray-marched after Schneider 2015, an artist weather texture) [frostbite2016clouds_bf1001], Singh and Kumar 2025 (a preprint Unreal shader, 35 ms per frame) [cloudsearch_bf1001]; one of the four is peer reviewed and none is from 2026, so clouds are still one peer-reviewed group short. RAIN AND WET SURFACES 1 -> 5 groups: Peking University RainyGS 2025 [rainygs2025_t1001], Inria and Laval physics-based rain insertion (particle simulator, scene lighting estimate, rain photometry, judged 40 percent more realistic in a user study) [halder2019rain_bf1001], Leeds and CMU WeatherEdit 2025 preprint (raindrops in a 4D Gaussian field) [weatheredit2025_bf1001], MIT Rendering of Wet Materials 1999 (surface water reflection plus subsurface scattering) [jensenwet1999_bf1001], Nanjing wet porous materials 2025 (porosity and saturation in the RTE, wet roads) [panwet2025_bf1001]. FOG IN FORWARD RENDERING 1 -> 4 groups: Epic Hillaire 2020 aerial perspective [hillaire2020_t1001], Inria and Laval rain-or-fog insertion [halder2019rain_bf1001], UIUC ClimateNeRF smog [climatenerf2023_bf1001], Leeds WeatherEdit fog particles [weatheredit2025_bf1001]; only Hillaire renders fog in a real-time forward pipeline, the other three synthesise it over reconstructed scenes or photographs. SNOW 0 -> 3 groups: UIUC ClimateNeRF snow accumulating on horizontal surfaces [climatenerf2023_bf1001], Leeds WeatherEdit snowflakes [weatheredit2025_bf1001], VersaGauss August 2026 preprint (snow as a simulated multiphase material in 3D Gaussians) [snowsearch_bf1001]; no venue was read from the bytes for any of the three, so snow has groups but not yet a proven peer-reviewed witness. THE 2026 CLAUSE, MEASURED over four newest-first phenomenon searches [rainsearch_bf1001] [fogsearch_bf1001] [cloudsearch_bf1001] [snowsearch_bf1001]: the only 2026 entries are Beyond Clear Skies 2608.16191 (weather rendered by a game engine for a drone dataset, so the method is the engine's), VersaGauss 2608.28069 (snow material simulation) and The Domain Is a Residue 2609.37330 (image domain translation, not rendering); there is still no 2026 forward rendering method for clouds, rain, fog or falling or lying snow, so that part of the critic's finding stands
2026-10-01PN9queuethe PN9 bar still owes a second peer-reviewed cloud-rendering group (candidate leads named from memory and unverified, none fetched this leg: INRIA multiple anisotropic scattering in clouds 2008, KAUST cloud-dynamics simulation 2020, LIRIS meso-scale skyscapes 2020) and a venue read from the bytes for ClimateNeRF, Halder 2019 and the wet-porous paper (their arXiv abstract pages carry the comment line); a 2026 forward weather method was searched for in four phenomenon searches and not found, so the newest forward witness stays 2025
2026-10-01PN6measureTHE THREE PN6 SKY WITNESSES ARE NOW FULL PAPERS, MIRRORED AND READ 2026-10-01 as the critic required. Floor, Hillaire 2020: the existing full-PDF mirror re-extracted (12,994,927 B of text) and read to Sec. 8 Conclusion and Sec. 9 Future work: sky and atmosphere from many viewpoints in real time with multiple scattering and no iterative per-order passes; it drifts from ground truth under dense atmospheres or strongly anisotropic phase functions yet stays plausible and energy conserving; its multiple-scattering LUT cuts a 720p path-traced atmosphere from 0.74 to 0.29 ms at 5 scattering orders and from 7.9 to 0.6 ms at 50; future work is anisotropic-phase accuracy, spatially varying atmospheres and spectral rendering [hillaire2020_t1001]. Referee, the Prague model: the 2021 TOG paper as a full PDF in place of the project-page abstract, read to Sec. 7 (OPAC constituent data, a spherical tensor-compressed in-scattering fit, observers to 15 km, finite-distance aerial perspective, post-sunset ozone blue and the Earth shadow, polarisation; reference frames up to 85k spp and 5,000 core hours against 100 spp and 2 core hours with the fit; 600 MB of data; hazy skies are OPAC extrapolations) [praguesky2021_full_bf1001], and the 2022 wide-spectral extension, 55 bins from 280 to 2480 nm with transmittance and polarisation for a ground observer, of which only the abstract and Fig. 1 were read [praguesky2022_bf1001]. Ruler, Bruneton: the full TVCG author version in place of the abstract page, read to Sec. 15 Conclusion: eight models against the Kider measurements and an inverted libRadtran; fewer approximations give more accuracy; three spectral samples suffice with a correct RGB conversion; polarisation moves luminance far less than the model-to-measurement gap; richer aerosol phase functions are the most promising lever, every model failing in the solar aureole under 20 degrees; users do not always prefer the most accurate [bruneton8sky_full_bf1001]. Three groups (Epic, Charles University, Bruneton), all peer reviewed
2026-10-01PN6queuethe Prague 2021 supplementary PDF (https://cgg.mff.cuni.cz/wp-content/uploads/2021/05/supplement.pdf, linked from the project page) holds its Sec. 7 head-to-head with Hillaire 2020 and Bruneton 2016 and is not mirrored; it is the only witness found that puts the floor and the referee on one axis, because Bruneton's ruler predates both, so mirroring and reading it is the next PN6 research step; the body of the 2022 wide-spectral paper is also unread
2026-10-01PN6lessonnx_pdf_text through the job lane keeps only the first 1,048,576 B of stdout, which for an image-heavy paper is the first pages only (Bruneton: no conclusion in the capture, all of it in the 1,718,124 B file); pass the second argument (an output path under /tmp) and scan that file with nx_txtscan. Its own 16 MiB output cap also truncates papers with large embedded images (Infinigen Indoors, the Frostbite notes), and it recovered little body text from the 217 MB Area ReSTIR PDF, so every read through it must say which sections it reached
2026-10-01PN6measureTHE HEAD-TO-HEAD THE 1790830003 QUEUE ROW ASKED FOR IS READ: the Prague 2021 supplement, mirrored, Sec. 7: the authors ran Hillaire's own source code (which implements both his 2020 model and Bruneton's 2016 model) with extinction matched to theirs and an exponential aerosol profile of equal ground-level visibility and vertical turbidity; all three agree well for an observer at 2 m and diverge as observer altitude rises, because Hillaire and Bruneton assume exponential scatterer profiles while the Prague fit uses an OPAC-based atmosphere [praguesky2021_supp_bf1001]. So the floor and the referee do share one axis, but only as a figure with no error number, and Bruneton's ruler predates both [bruneton8sky_full_bf1001]; a numeric three-way error against measured skies is still not published by any witness read so far, which is the exact measurement this rung's own referee would have to produce
2026-10-01PN9measureVENUE AND SECOND-CLOUD FOLLOW-UP: Halder 2019 is ICCV 2019 per its arXiv abstract-page comment (mirrored knowledge/fetched/cmp_pano360_halder2019_rain_abs.html, sha256 d4592ddb1bb31ac7108bbb846cc4eb2995445f49565a6dd0e2d1e8269641121f), so rain and fog each carry a byte-verified peer-reviewed group beside RainyGS and Hillaire 2020 [halder2019rain_bf1001]; ClimateNeRF's arXiv page (mirrored knowledge/fetched/cmp_pano360_climatenerf2023_abs.html, sha256 a8741b53ba9596aaa50e3d8468aceb7b60ccfccc59d47108abe225ca0549097b) carries only a project-page comment, so its venue stays unproven and snow still has no byte-verified peer-reviewed witness [climatenerf2023_bf1001]; an arXiv search for multiple-scattering cloud rendering returned 5 entries and none is a cloud method [cloudscattersearch_bf1001], so the second peer-reviewed cloud group stays open (queue row 1790830001)
2026-10-03PN25measureTHE STARTING STALL, LOCATED BY EVIDENCE 2026-10-03: the laptop Edge oracle shot the live page 22 ms after load (CD-SETTLED ms=22, the capture waits only for readyState and fonts), so its black viewer and frozen starting word were a photograph taken before the door ran. With every door step now announced on the page (adapter, device, atlas, shader pipeline, canvas context, base tiles, first frame) and a finite pulse on the status line that the capture's motion-settle waits for, the same oracle reads on the probe page /compare/pano360/viewprobe (8192 x 4096, 171 tiles): adapter 118 ms (max texture 16384), device 73-77 ms, atlas 16384 x 3072 for 171 tiles 0-1 ms, shader pipeline 27-29 ms, canvas context 0 ms, base tile verified 68-78 ms, first frame 354-361 ms after start, every tile the view wants resident at 1244 ms with 16.5 MiB fetched (17 of 171 tiles). So the WebGPU door does open in Edge; it did not stall. A Firefox or Waterfox stall is UNVERIFIED: the estate's capture organ drives Edge only, and the page now names the step it waits on in any browser.
2026-10-03PN25measureTHE REAL DEFECT BEHIND THE BLANK VIEW WAS EXPOSURE, MEASURED IN THE SAME ORACLE: once the door drew, the WebGPU frame at 0 EV read near-white over the whole canvas. The texels are radiance at the unit nx_pano_render hands its RGBE writer (GP_FX x GP_MAXCH = 261120) while gp_encode's display white is GP_MAXCH x GP_FX x GP_FX, so a stored 1.0 is 1/1024 of display white and the page's 0 EV is about ten stops over (the texels' own span reads ev_min=-11). The page now opens at log2(exposure x unit / white) = log2(3/2048) = -9.4 EV, the exposure at which the tracer's own display encode reads these texels, and the captured frame matches the flat preview's brightness (desktop and phone doors, receipt OK); ?ev= still overrides.
2026-10-03PN25queueCACHING SOURCE-LANDED, DEPLOY WAITING ON AN ADMIN CAP: the no-store on every tile is the compare gateway's single response writer (nx_compare_gw cgw_send, route nishifamily.com /compare -> :18102 gated in proxy_routes.conf). The pure core nx_compare_gw_lib gained cg_content_addressed and cg_cache_control: a board file whose last path segment is nxc1- plus 64 lowercase hex plus a dot and an extension answers Cache-Control private, max-age=31536000, immutable (private because the board is access-gated, so no shared cache may hand a gated tile to a visitor the gateway refuses); every other file keeps no-store. The daemon's board-file serve now writes through cgw_send_cc with that value. nx_compare_gw_gate 55/55 GREEN with T46/T46a and a bite-proven neg-control (a 63-digit id, upper-case hex, a missing extension and a content-addressed directory above a mutable file all keep no-store). nx_compare_gw built --build-only: _build/nx_compare_gw.sov.elf 290104 B sha256 02bf9c3b1c935a4f52461818b9d61a6e22a7111331daa4b7f39c184e3c114b69, NOT deployed: it is the daemon every /compare request crosses, it needs the health-checked /api/deploy, and this seat's admin cap expired at 1791038653 (minting a new one needs that cap). Recipe for the owner: nx_contentdiff nx_compare_gw.elf against the staged build, then POST /api/deploy target=<the deploy_targets.conf row for the compare gateway>&confirm=yes&expect_sha256=<staged sha>, then nx_https_get a tile with --headers and read Cache-Control.
2026-10-03PN25landTHE VIEWER NAMES EVERY DOOR STEP AND ALWAYS SHOWS A PICTURE, PROMOTED 2026-10-03: nx_pano_view 599e700a (350928 B, from f9b1f539) through nx_organ_ship with loss record 86f3dfe0 (28 lost runs enumerated: 13 rewritten page-script lines and the starting status line, each with its gained successor, and 14 runtime or compiler diagnostics replaced by the current toolchain generation's wording) and reviewed behaviour record bd5a1913 (review c0e4e16e: receipts first differ at page_bytes and gain the four flat fields). What it now emits: (1) step reporting on the page with elapsed ms and STALLED after the conf row door_watch_ms, every refusal, GPU validation error (uncapturederror), lost device, script error and unhandled rejection named on the status line; (2) the canvas hidden until onSubmittedWorkDone of its first frame, so a black canvas never covers the picture; (3) a flat preview: the first ladder level at or under the conf row flat_preview_width (2048), decoded at the tracer's unit and display-encoded by nx_gi_path_lib gp_encode, written by nx_png_write, named t/<cid>.png and kept by the reap (nx_pano_tiles ptl_is_tile now owns <cid>.png beside <cid>.rgbe); shown from the first byte, kept while the door opens, kept for good when no door opens, with the status naming exactly that; ?door=flat declines the door on purpose; (4) the opening exposure -9.4 EV derived from the encode's constants; (5) every-wanted-tile-resident time on the status line. nx_pano_view_gate 56 -> 70 teeth, 70/70 GREEN (T14 to T14k: PNG named by its content id, the level choice from a clock-chosen bound, the img by content id, the level-0 preview byte-identical to the gate's own gp_encode loop, no capped channel, the step needles, the honesty check with its bite-proven neg-control on the 2026-10-01 wording, the clock's watch and the exposure unit and white on the page, a superseded .png retired by the reap; T11c and T11d refuse confs missing the two new rows by name). Conf rows flat_preview_width 2048 and door_watch_ms 20000 appended to knowledge/pano_view.conf with their calibration notes (door_watch_ms is UNCALIBRATED against field data and says so).
2026-10-03PN25measureTHE 16K VIEW IS LIVE AND MEASURED, AS FAR AS THE ORACLE ALLOWS: the 16384 x 8192 frame knowledge/pano360/pano360_s77_w16384_spp4.hdr (71849037 B, written 1790842533; the render process has exited, nx_proc_observe ABSENT_IN_COMPLETED_SCAN over 757 pids) emitted by the promoted nx_pano_view 599e700a in about 10 s: levels=6 tiles=683 slots, 350 distinct files kept (349 tiles plus the flat preview), record private-ref:697b7509, page 73886 B, flat 2048 x 1024 PNG 1093956 B, flat_capped_channels=0; the reap retired the 8K frame's 142 tiles into knowledge/retired/sites_nishifamily_compare_pano360_view_t-1791042828. nx_page_verify GREEN (page 200, view.nxr 200, flat PNG DECODE-OK 2048x1024, a11y 0). PN25 done-rule, laptop Edge oracle over the edge, every visit cold because tiles are still served no-store: first frame 538 ms after start (adapter 123, device 93, atlas 16384 x 3584 for 200 slots 0, pipeline 69, base tile 149, first frame 103), every tile the default view wants resident at 4954 ms with 25 of 683 tiles and 24.5 MiB fetched (level 2 of 6, 4096 wide), plus the 1.09 MB flat preview and the 74 KB page; looking straight at the wrap seam (?yaw=180&fov=40, level 1 of 6, 8192 wide) first frame 480 ms, resident 7197 ms, 33 tiles 32.5 MiB, and no seam is visible at the screen centre where longitude 180 sits -- that seam reading is my eyeball on one capture (an interpretation, not a referee), so the no-seam clause stays UNPROVEN until a pixel referee scores it. The done-rule's cold-cache clause is met by construction and its warm-cache counterpart waits on the gateway deploy.
2026-10-03PN25lessonA CAPTURE THAT SETTLES ON readyState PHOTOGRAPHS THE PAGE BEFORE ITS SCRIPT HAS DONE ANYTHING: the oracle shot the old page 22 ms after load, so the black box and the frozen first status word were the instrument's timing, and the defect the frame then showed once the door drew (ten stops of over-exposure) was invisible to it. A page whose work is asynchronous owes the oracle a signal it already waits on (here a finite pulse on the status line, finished when every wanted tile is resident) and owes the reader each step by name; and a status writer that returns early until the work succeeds hides exactly the failures it exists to report.
2026-10-03PN25queueOPEN AFTER 2026-10-03: (1) nx_pano_view_gate 14421faa (70/70 GREEN inside the ship loop) is STAGED, NOT PROMOTED: nx_organ_ship refuses its behaviour leg because the served gate e29c5100 now exits 1 on the shared /tmp fixture (the new gate leaves a <cid>.png in the fixture's tile directory and the old gate's T13e counts it as a second non-tile), loss record 671f7732 is enumerated (the same 28 runs as the organ's); promote needs /api/promote with an admin cap or a loop rule for a gate whose incumbent reads RED on the successor's fixture. Until then the served gate reads RED for a fixture reason, not a subject reason; nx_retire_path could not move the stray PNG (rename rc=-18, /tmp is another filesystem). (2) Deploy the compare gateway 02bf9c3b so content-addressed tiles cache (row 1791042600). (3) Firefox or Waterfox behaviour is UNVERIFIED (the capture organ drives Edge only); the page now names the step it waits on in any browser, so the operator's next look reads the stall directly. (4) In flat mode the exposure slider is still drawn and moves nothing. (5) The renderer stores radiance at 1/GP_FX of display white (nx_pano_render hands unit GP_FX x GP_MAXCH while gp_encode's white is GP_MAXCH x GP_FX x GP_FX); the page compensates at open with a derived exposure, and a renderer-unit fix would need re-renders of every banked HDR. (6) Pixel referee for the seam and a warm-cache first-paint number for the done-rule.
On these two registers. Rows are declared in the domain's plan file and carry the debt id, which is the join key back to the sovereign debt plane — that plane, not this page, is the authority on state. Reconciling them automatically (the regen reading the plane and refreshing these rows) is a named, owed rung; until it lands, treat an id here as a pointer to look up, not a status to trust.
Honest verdict. NO ROW CLAIMS AN EXCEED. The board lands on 2026-09-28 with a path tracer, an atmosphere and trigonometry present as substrate and every 360-degree contract open: the estate cannot yet produce a panorama of any kind. The field's position, read this month from mirrored bytes: the incumbents sell 8K seamless text-to-360 with image outpainting and 16K HDR EXR for LED volumes; research generates spherical panoramas training-free inside pretrained diffusion transformers, lifts single panoramas to navigable 3D worlds and streams panoramic world models; HDR panoramas are still approximated from exposures inside latent space. The sovereign first byte declared here is a camera rather than a model: a panorama rendered on the sphere is seamless by construction, carries the scene's own dynamic range and ships exact depth, which makes it the ground truth that will judge the learned lane.

Person · product · place — not yet measured for this domain

Every compare carries this layer. Declare knowledge/compare/pano360.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain pano360, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).

Exclusive and shared capabilities

One capability is graded on one board; every other board references it. The fleet duplicate census (nx_rivalcensus dupes, on the fleetdupes clock row) reads every board's matrix and names each capability graded as a row on two or more boards, with a home derived from evidence: rung when exactly one board's plan contracts the symbol (that board is starred), gates when no plan contracts it and exactly one board's executed gate map runs the organ's gate (that board is plussed), ambiguous when several boards carry the deciding evidence (a decision for their seats), and none when no evidence decides it, with the reason beside it: unmapped (no board of the duplicate declares a gates map; declare the maps) or unproven (a map exists and runs none of the organ's gates; gate the organ on its proving board, or declare it a shared library by policy). A home elsewhere means this board should carry an @xrow reference to the home board's row rather than a graded row of its own; a home here means the other boards should. The table is this board's slice of one estate-wide census: the shape is shared, the rows are the board's.

This board grades 34 capabilities: 34 exclusive to it and 0 shared with other boards. Shared rows on this page: 0 = home here 0 + home elsewhere 0 + ambiguous 0 + undecided 0 + refused 0 (partition 0); undecided = unmapped 0 + unproven 0 + unevidenced 0; homonyms 0; since the previous census: new 0, resolved 0. Census FRESH age_s=7277.

Gaps from the record — what the estate does that no board carries

The record census (nx_goalmap record) reads the invoked-tool population and every plan queue row and files each organ or directive that NO matrix, plan or gates row names. A row here is a callout the boards missed: adjudicate it onto a board or declare it infrastructure. Census state STALE (age 1396382 s), sources read 4 of 7 declared — a BLIND census is a FLOOR: unread sources can only add rows.

kindnameboardsourceevidence

rows shown 0|this board's directives 0|estate-wide un-boarded organs 452 (listed in full on /compare/ecosystem)|census rows 639|malformed 0 (counted, never rendered)

References

Beyond a link list. Every reference below resolves twice — the publisher's copy and, where banked, the estate's own non-rottable library mirror with a content pin — and carries its evidence class plus the exact claim on this page it grounds. Keyed marks like [key] in the matrix notes jump here. A dash means honestly absent, never assumed.
  1. [pano_gen_202609] arXiv API listing, abstract terms (panorama OR panoramic OR equirectangular) AND (generation OR diffusion OR synthesis OR outpainting), 80 newest by submission, newest on-subject 2026-09-19 (PanoSeg3R 2609.22687), read 2026-09-28 with nx_arxiv_digest publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_panogen_20260928.xml · pin hfdb89ef287d08b9ca4b6ea8e07c6355a74ae14a921a015657e7fa727e5362361 · accessed 2026-09-28 · mirrored-indexGrounds: SB-PN-GEN-2609
  2. [pano_hdr_202609] arXiv API listing, abstract terms (HDR OR HDRI OR environment map OR lighting estimation OR light probe) AND (diffusion OR generation OR estimation OR panorama), 60 newest by submission, newest on-subject 2026-09-23 (RoomLight 2609.28300), read 2026-09-28 with nx_arxiv_digest publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_hdrlight_20260928.xml · pin hbaea340e17313d373017eb0a33cc9140db832e194a43b4e31a95c3753838ae8b · accessed 2026-09-28 · mirrored-indexGrounds: SB-PN-HDR-2609
  3. [pano_blockade_202609] Blockade Labs home page for Skybox AI, read 2026-09-28: 8K resolution with perfect seams; 16K HDR output in EXR format with full dynamic range for LED walls and virtual production; 32-bit HDRI lighting; export as equirectangular, cubemap or HDRI to WebXR and Horizon OS publisher · read in our library knowledge/fetched/cmp_pano360_blockadelabs_home_20260928.html · pin haaf43f58b76468c1ad2311b9c53f0eae0341ef7436dbdf6687f7a3a3599dfcbe · accessed 2026-09-28 · vendor-docGrounds: T-BIC-PANO
  4. [pano_panopulse_202609] PanoPulse home page, read 2026-09-28: 360-degree panorama generation from text, image-to-panorama outpainting, 8K equirectangular export, cubemap export, an interactive 360-degree viewer, VR and WebXR support; a showcased panorama was handed to a third-party splat service for 3D publisher · read in our library knowledge/fetched/cmp_pano360_panopulse_home_20260928.html · pin heeafffe5a9657b5a23b05e09e9d6d260c09707d8196c29eecfac3eeca1fc643b · accessed 2026-09-28 · vendor-docGrounds: SB-PN-GEN-2609
  5. [pano_polyhaven_hdris_202609] Poly Haven public API asset listing of type hdris: 997 records by two independent counters over the mirrored bytes (the asset type field and the date_published field) publisher · read in our library knowledge/fetched/cmp_pano360_polyhaven_hdris_20260928.json · pin h5f70c305abe3a72814317b71ca6b83f14717ac5819b03fceced8fe2f19f5083b · accessed 2026-09-28 · datasetGrounds: PN15
  6. [pano_polyhaven_license_202609] Poly Haven licence page: all assets licensed CC0, effectively public domain, for any purpose including commercial use publisher · read in our library knowledge/fetched/cmp_pano360_polyhaven_license_20260928.html · pin h0b7a23e05e933f7f28ffab64ac1302e215f44eeb69abbfac4f2c4fd331101be5 · accessed 2026-09-28 · vendor-docGrounds: PN15
  7. [pano_krpano_tiles_202609] krpano tools configuration reference, multi-resolution tilesize, read 2026-09-29 from the mirrored bytes: should be between 256 and 1024, and the today recommendation for best rendering performance is 512, a good compromise between the GPU texture upload time and the number of GPU draw calls required to fill the screen publisher · read in our library knowledge/fetched/cmp_pano360_krpano_toolsconfig_20260929.html · pin hd1c47acd027e77f00f5b12cc2eeab62eb8b5da357131463054ea64c70ec4f447 · accessed 2026-09-29 · vendor-docGrounds: PN25
  8. [pano_krpano_memory_202609] krpano XML reference, memory settings, read 2026-09-29 from the mirrored bytes: the current default settings are Desktop 150-750 MB depending on the total screen size, and Mobile or Tablets 200 MB (iOS, Android) publisher · read in our library knowledge/fetched/cmp_pano360_krpano_xmlref_20260929.html · pin h0bd754bc336e003887df0da2d506118f083e291cc702805a26e279e21fec943b · accessed 2026-09-29 · vendor-docGrounds: PN25
  9. [pano_marzipano_202609] Marzipano documentation, read 2026-09-29 from the mirrored bytes: its multiresolution cube geometry example builds every level from 512-texel tiles (tileSize 512 at sizes 512 and 1024) read from a tiles directory publisher · read in our library knowledge/fetched/cmp_pano360_marzipano_docs_20260929.html · pin h33a8e88f11a3c8a53d2043b1e8021f4eb45636dd06539edfeed51f05ccea82c2 · accessed 2026-09-29 · vendor-docGrounds: PN25
  10. [pano_pbrneutral_202609] Khronos PBR Neutral tone mapper specification (KhronosGroup ToneMapping repository README, CC-BY-4.0), read 2026-09-29 from the mirrored bytes: F90 = 0.04, Ks = 0.8 - F90, Kd = 0.15; x = min(R, G, B); f = x - x^2/(4 F90) for x at or under 2 F90, else F90; p = the largest channel minus f; pn = 1 - (1 - Ks)^2/(p + 1 - 2 Ks); g = 1/(Kd (p - pn) + 1); the output is c - f while p is at or under Ks publisher · read in our library knowledge/fetched/cmp_pano360_pbrneutral_20260929.md · pin hba6209accd4b136b712e8a70340417d7bfffde7d1d20fbef696b08877bc64ada · accessed 2026-09-29 · published-standardGrounds: PN5
  11. [hillaire2020_t1001] Hillaire (Epic Games). A Scalable and Production Ready Sky and Atmosphere Rendering Technique. Computer Graphics Forum 39(4), EGSR 2020. Read 2026-10-01 from nx_pdf_text over the mirrored PDF: a physically based planet atmosphere from ground to space views with no high-dimensional lookup tables and none of their artifacts; a new real-time approximation of light multiple scattering that approximates an infinite number of scattering orders and also accelerates path tracing; the atmosphere composition changes dynamically for art and weather without heavy LUT updates; scales from power-efficient mobile to high-end GPUs publisher · read in our library knowledge/fetched/cmp_pano360_hillaire2020_egsr.pdf · pin h83ed5ad77722785950aeeeaf27033e9f184ac4736faf1f500b212066d5adfc6d · accessed 2026-10-01 · published-paperGrounds: PN6
  12. [praguesky2021_t1001] Wilkie, Vevoda, Bashford-Rogers, Hosek, Iser, Kolarova, Rittig, Krivanek (Charles University Prague, the Prague sky model). A Fitted Radiance and Attenuation Model for Realistic Atmospheres. ACM Transactions on Graphics 40(4), article 135, 2021. Project page abstract and BibTeX read 2026-10-01: a fitted sky dome radiance and attenuation model built from scatterer distributions in atmospheric measurement data that considerably improves on the visual realism of analytical clear sky models and of interactive methods that approximate atmospheric light transport, adding post-sunset radiance, in-scattered radiance and attenuation for finite viewing distances, an observer-altitude model including downward views, and polarisation; a fully spherical in-scattering model compressed by tensor decomposition replaces the Perez-family hemispherical functions publisher · read in our library knowledge/fetched/cmp_pano360_praguesky2021.html · pin hc9402b5bbc941dc7086235c7e287dd66f917eef1ba0c111f2fad8ac3f74f139b · accessed 2026-10-01 · published-paperGrounds: PN6
  13. [bruneton8sky_t1001] Bruneton. A Qualitative and Quantitative Evaluation of 8 Clear Sky Models. arXiv 1612.04336, cs.GR, submitted 2016-12-13 (the abstract page carries no journal reference). Abstract read 2026-10-01: eight clear sky models used in computer graphics compared with each other, with measurements and with a reference model from the physics community whose parameters are obtained by inverting it, plus a perceptual study; the quantitative results confirm that the fewer simplifications and approximations used to solve the physical equations, the more accurate the results publisher · read in our library knowledge/fetched/cmp_pano360_bruneton2017_eval_abs.html · pin hd3857b6d604161ddaeca76d9858d79d10373dd228ba4e757026d3812f0d72fe6 · accessed 2026-10-01 · published-paperGrounds: PN6
  14. [skysearch_t1001] arXiv advanced search, abstract terms sky AND rendering, computer science including cross-lists, 50 per page newest announcement first, read 2026-10-01: 37 results; the three newest are not physical sky models (PanoLOG 2607.08769 uses sky-sphere modelling inside panoramic 3DGS reconstruction, July 2026; a window-view perception study and a metaverse weather-sync system, June 2026); the newest on-subject entry is Icarus 2603.05758 (Maquignaz, submitted 2026-03-05), a learned all-weather Full Dynamic Range sky model that reports DNN sky models fail on the 14 EV plus solar region and offers user-positioned sun and cloud formations for image-based lighting publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_skyrender_20261001.html · pin h86b25c4f2ce0e33ab5b174ba4ace01c4a865b03455244cb994d078942ed6956e · accessed 2026-10-01 · mirrored-indexGrounds: PN6
  15. [atmosearch_t1001] arXiv advanced search, abstract terms atmospheric AND rendering, computer science including cross-lists, 25 newest by announcement, read 2026-10-01: the only September 2026 entry is Tri-DehazeGS 2609.11223 (submitted 2026-09-10), an inverse dehazing method that keeps the clean scene in Gaussians and models the participating medium as a separate view-shared tri-plane field composed through a physical scattering model; the next twelve hits are off-subject (AI weather forecasting, dehazing restoration, acoustics, tactile fabrics, climate emulation, chart understanding, splat reconstruction) and the first forward sky-rendering entry is again Icarus 2603.05758, March 2026 publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_atmorender_20261001.html · pin h88ae06786545188f9e16a746f50353d429d86e65d30eccb14e8174a24d93e671 · accessed 2026-10-01 · mirrored-indexGrounds: PN6
  16. [csgr202609_pano_t1001] arXiv cs.GR monthly listing for September 2026 (show 2000), read 2026-10-01: Total of 170 entries, titles read by term; no title names a sky, atmosphere, volumetric cloud, fog, rain, snow or weather rendering method (SkyAnchor 2609.13903 updates aerial Gaussian scenes, a homonym; the Rain, City and Cloud hits are substrings of other words or point clouds); the October 2026 listing is cited separately publisher · read in our library knowledge/fetched/cmp_env_arxiv_csgr_list_202609.html · pin ha3a5f9952ccd7ebd84a5d21176eb8aa6619e7bd3aaa6265e6a3e748cb8dce9ef · accessed 2026-10-01 · mirrored-indexGrounds: PN9
  17. [csgr202610_pano_t1001] arXiv cs.GR monthly listing for October 2026 (show 2000), read 2026-10-01 at 02:56 UTC (fetch epoch 1790823400): the page reads No updates for this time period, so September 2026 is the newest month with entries publisher · read in our library knowledge/fetched/cmp_env_arxiv_csgr_list_202610.html · pin h01a04d5de95fd9dc53e21708920ecfe9cd67ab44a532dcd7860903b1908e764f · accessed 2026-10-01 · mirrored-indexGrounds: PN9
  18. [nubis3_t1001] Guerrilla Games talk page for Nubis cubed (Andrew Schneider, Atmospherics Lead; page dated 05 August 2023), read 2026-10-01; a vendor claim of production practice: voxel-based clouds that act as volumetric skyboxes with a time-of-day cycle from the ground and stay at high frame rates when flown through, using ray-march acceleration by compressed signed distance fields, fluid-simulation-based cloud modelling, an up-rez of dense voxel data that avoids memory-access bottlenecks, light-sampling acceleration and approximations of dark edges and inner glow, leaving behind the 2.5D cloud method of their 2015 and 2017 Advances talks publisher · read in our library knowledge/fetched/cmp_pano360_guerrilla_nubis3_20261001.html · pin h9eb88340cd2f876fd16ce8e9848cc13e908ea93eb3526eb11c4d7ed91bcdd076 · accessed 2026-10-01 · vendor-docGrounds: PN9
  19. [deepscattering2017_t1001] Kallweit, Mueller, McWilliams, Gross, Novak. Deep Scattering: Rendering Atmospheric Clouds with Radiance-Predicting Neural Networks. arXiv 1709.05418, comment ACM Transactions on Graphics (Proceedings of SIGGRAPH Asia 2017). Abstract read 2026-10-01: Lorenz-Mie scattering and the high albedo of cloud aerosols make the silver lining and the inner whiteness hard for Monte Carlo alone or for diffusion theory; radiance at each visible cloud point is predicted by a deep network fed a progressively consumed hierarchical 3D descriptor, learned from tens of cloud exemplars, nearly indistinguishable from the reference within seconds and temporally stable for animation publisher · read in our library knowledge/fetched/cmp_pano360_deepscattering_abs_20261001.html · pin he8c15641b7567f5d4ef0a84b511430d5cb03e33a938d9feb8afdfc9cce6b9722 · accessed 2026-10-01 · published-paperGrounds: PN9
  20. [rainygs2025_t1001] Dai, Ni, Shen, W. Chen, B. Chen, Chu. RainyGS: Efficient Rain Synthesis with Physically-Based Gaussian Splatting. arXiv 2503.21442 v2, comment CVPR 2025, project page under pku-vcl-geometry. Abstract read 2026-10-01: physically-based raindrop and shallow-water simulation integrated into the 3DGS rendering framework for raindrops, splashes and reflections, rain synthesised at over 30 fps with intensity control from drizzle to downpour, on real outdoor and large driving scenes, more photorealistic and physically accurate than the prior methods it compares publisher · read in our library knowledge/fetched/cmp_pano360_rainygs2025_abs.html · pin heef7cdbb9a66798536aabd09830e9f24c53428ca9054a573ffaf25c066f37e74 · accessed 2026-10-01 · published-paperGrounds: PN9
  21. [volclouds_search_t1001] arXiv search, phrase volumetric clouds in all fields, newest announcement first, read 2026-10-01: 5 results and none announced in 2026 -- the newest is June 2025 (NnD: Diffusion-based Generation of Physically-Nonnegative Objects, title read only), then a machine-learning-driven volumetric cloud rendering and procedural shader optimisation entry (February 2025, cs.GR), a light-transport-aware diffusion posterior sampling for single-view reconstruction of 3D volumes (January 2025), Volumetric Cloud Field Reconstruction (November 2023) and a point-cloud homonym (June 2021) publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_volclouds_20261001.html · pin h37d53933b40c889c394d0be091416204c0bffd1b28b94b4e56aea5c6b99f949c · accessed 2026-10-01 · mirrored-indexGrounds: PN9
  22. [bruneton8sky_full_bf1001] Bruneton. A Qualitative and Quantitative Evaluation of 8 Clear Sky Models. IEEE TVCG, author version with DOI 10.1109/TVCG.2016.2622272, arXiv 1612.04336. Full PDF mirrored 2026-10-01 (9,751,196 B) and read through nx_pdf_text (1,718,124 B of text) from the abstract to Sec. 15 Conclusion: eight graphics clear sky models (Nishita93, Nishita96, Preetham, O'Neal, Haber, Bruneton, Elek, Hosek) compared with the Kider et al. ground-truth measurements (81 samples over the sky dome, 17 daytimes), with libRadtran 2.0.1 whose aerosol parameters are inverted from those measurements, and with a perceptual study; the analytical models (Preetham, Hosek) are fast and need no precomputation but are ground-level only and need a separate aerial-perspective model, Hosek more accurate than Preetham; the numerical models support more viewpoints and aerial perspective; Nishita93 and O'Neal ignore multiple scattering; Bruneton precomputes all sun zenith angles and Elek adds wavelengths for more accuracy; 3 spectral samples suffice with a proper conversion to RGB; polarisation changes luminance far less than the model-to-measurement gap; richer aerosol layers and phase functions are the most promising accuracy gain, all models being inaccurate in the solar aureole below 20 degrees; none is perfectly accurate, and users do not necessarily prefer the most accurate publisher · read in our library knowledge/fetched/cmp_pano360_bruneton2017_eval_full.pdf · pin ha1220d40bc0ed6fd35e8fe728365fb5b371a615051d505dcd611f61ff22dd5c5 · accessed 2026-10-01 · published-paperGrounds: PN6
  23. [praguesky2021_full_bf1001] Wilkie, Vevoda (joint first authors), Bashford-Rogers (University of the West of England), Hosek, Iser, Kolarova, Rittig, Krivanek (Charles University). A Fitted Radiance and Attenuation Model for Realistic Atmospheres. ACM TOG 40(4) Article 135, August 2021, DOI 10.1145/3450626.3459758. Full paper PDF from the project page mirrored 2026-10-01 (26,368,390 B) and read through nx_pdf_text from the abstract to Sec. 7 Conclusion and Future Work: a fitted sky dome radiance and attenuation model built on OPAC standard atmospheric constituent data; a fully spherical in-scattered radiance model compressed by tensor decomposition replaces the Perez-family hemispherical functions; observer altitudes up to 15 km with downward-looking views; in-scattering and attenuation for finite viewing distances (aerial perspective); post-sunset skies with ozone twilight blue and the rising Earth shadow; a view-dependent transmission function; fitted linear polarisation consistent with the other components; the brute-force reference renders took up to 85k spp and 5,000 core hours while frames using the fitted model took 100 spp and 2 core hours inside a spectral path tracer; the full dataset needs at least 600 MB of RAM; hazier atmospheres are an extrapolation of OPAC data; direct comparisons with Hillaire 2020 and Bruneton 2016 are in Sec. 7 of the supplementary PDF, which was not fetched publisher · read in our library knowledge/fetched/cmp_pano360_praguesky2021_paper.pdf · pin hdf27316655d45dcbe685962157b6195062859e9e870f9b355d27359f3614416d · accessed 2026-10-01 · published-paperGrounds: PN6
  24. [praguesky2022_bf1001] Vevoda (Charles University and Chaos Czech), Bashford-Rogers (University of the West of England), Kolarova, Wilkie (Charles University). A Wide Spectral Range Sky Radiance Model. Computer Graphics Forum 41(7), Pacific Graphics 2022 (project page knowledge/fetched/cmp_pano360_praguesky2022_page.html). Paper PDF mirrored 2026-10-01 (2,604,644 B) and its title block, Fig. 1 caption, abstract and opening introduction read through nx_pdf_text (the body is unread): extends the Prague Sky Model with 44 more channels in the near-UV and near-IR on top of its 11 visible ones, 55 regularly spaced bins from 280 nm to 2480 nm; for a ground-based observer it gives sky dome radiance, atmospheric transmittance and polarisation, motivated by photovoltaic yield and the thermal properties of buildings as well as rendering; a standalone C++ implementation and a GUI are provided publisher · read in our library knowledge/fetched/cmp_pano360_praguesky2022_paper.pdf · pin h6a4a46651ee6c2157b4daeacbd4b2839783917d15adbf0127a7f24cbce06f608 · accessed 2026-10-01 · published-paperGrounds: PN6
  25. [climatenerf2023_bf1001] Li, Lin (joint first), Forsyth, Wang (University of Illinois Urbana-Champaign), Huang (University of Maryland College Park); Li also Zhejiang University. ClimateNeRF: Extreme Weather Synthesis in Neural Radiance Field. arXiv 2211.13226 (the venue was not read from the mirror). Full PDF mirrored 2026-10-01 (50,445,404 B), title block, Fig. 1 caption, abstract and opening introduction read through nx_pdf_text: fuses physical simulation with NeRF scene models to render smog, snow and flood as consistent movies, controlled by physically meaningful variables such as water level; snow accumulates on horizontal surfaces, trees darken for wintertime, water carries reflections and ripples; qualitative and quantitative studies rate it significantly more realistic than state-of-the-art 2D image editing and 3D NeRF stylisation. A forward weather witness for snow and fog (smog) inside a reconstructed scene, not a generated one publisher · read in our library knowledge/fetched/cmp_pano360_climatenerf2023.pdf · pin h18290bb3113c00b75d9882dc041dd05b1699a5371f959108d4f0f5f0db3c2655 · accessed 2026-10-01 · published-paperGrounds: PN9
  26. [halder2019rain_bf1001] Halder (Inria Paris), Lalonde (Universite Laval), de Charette (Inria Paris). Physics-Based Rendering for Improving Robustness to Rain. arXiv 1908.10335 (the venue was not read from the mirror). Full PDF mirrored 2026-10-01 (3,425,748 B), title block and abstract read through nx_pdf_text: a physically based pipeline that inserts rain into clear-weather images from a physical particle simulator, an estimate of the scene lighting and an accurate rain photometric model, for arbitrary amounts of rain or fog; a user study judges its rain 40 percent more realistic than the prior state of the art; on the augmented KITTI and Cityscapes, object detection drops on the order of 15 percent and semantic segmentation 60 percent in degraded weather, and refining on the augmented images improves nuScenes rain performance by 15 and 35 percent. An IJCV rain-rendering paper (DOI 10.1007/s11263-020-01366-3) is listed in the rain search mirror; its authors were not read, so it is not counted publisher · read in our library knowledge/fetched/cmp_pano360_halder2019_rain.pdf · pin h87eb43a01932915b32d69fc9cbef0d4e3c04485e4d01a7ee88d42ad0cc2d5e59 · accessed 2026-10-01 · published-paperGrounds: PN9
  27. [weatheredit2025_bf1001] Qian, Li, Markkula (University of Leeds), Guo (Carnegie Mellon University). WeatherEdit: Controllable Weather Editing with 4D Gaussian Field. arXiv 2505.20471 v3 (v1 26 May 2025, v3 7 August 2025; no journal or conference on the listing, so a preprint). Full PDF mirrored 2026-10-01 (5,860,068 B), title block and abstract read through nx_pdf_text and the rest of the abstract on the fog search listing: an all-in-one adapter in a pretrained diffusion model edits the weather background, a Temporal-View attention keeps the edit consistent across frames and views, then a dynamic 4D Gaussian field generates snowflakes, raindrops and fog whose attributes and dynamics follow physically based modelling and simulation with controllable severity, integrated with the reconstructed 3D scene and rendered; experiments on driving datasets publisher · read in our library knowledge/fetched/cmp_pano360_weatheredit2025.pdf · pin h95e055b074c86ae190afc7b5d704d11d19881096413cc074a46aef5a211faeb8 · accessed 2026-10-01 · published-paperGrounds: PN9
  28. [frostbite2016clouds_bf1001] Hillaire (EA Frostbite). Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite, SIGGRAPH 2016 course notes per the file name s2016-pbs; a vendor document, not peer reviewed. PDF mirrored 2026-10-01 (52,658,903 B) and read through nx_pdf_text, whose output reached its 16 MiB cap, so the tail of the notes is unread: Sec. 5 names Schneider 2015 (Guerrilla) as the visually similar ray-marched approach for dynamically lit volumetric clouds with Perlin-Worley volume noise and temporal integration of the scattered light; in Frostbite the clouds stay within a single slab of constant height around the earth, one participating-media material with varying density only, distributed by an artist-authored world-space weather texture publisher · read in our library knowledge/fetched/cmp_pano360_frostbite2016_skyclouds.pdf · pin ha494bacba53bec42839e2664588f2a9b1e024031d5c0ec1dc503458966c698b9 · accessed 2026-10-01 · vendor-docGrounds: PN9
  29. [jensenwet1999_bf1001] Jensen, Legakis, Dorsey (Laboratory for Computer Science, Massachusetts Institute of Technology). Rendering of Wet Materials, Eurographics Workshop on Rendering 1999. The skintwin lane's mirror (fetched from the Eurographics digital library 2026-09-28), re-read here 2026-10-01 through nx_pdf_text: wet materials look darker, brighter or more specular depending on the material and the viewing conditions, caused by a combination of liquid on the surface and inside the material; the method combines a reflection model for surface water with subsurface scattering (the skintwin row records the two-layer Fresnel surface model and the wetness-dependent Henyey-Greenstein phase function) publisher · read in our library knowledge/fetched/cmp_skintwin_jensen_wet_1999.pdf · pin h9eff4a2f34eb0255f1518cd3f3e037b748a25efcc530ef5ca5a9073f32886a7d · accessed 2026-10-01 · published-paperGrounds: PN9
  30. [panwet2025_bf1001] Pan and co-authors (Nanjing University of Science and Technology, Nanjing University, Anhui Science and Technology University). A Micro-Ellipsoid Model for Wet Porous Materials Rendering, arXiv 2401.15628 v3 (the skintwin row records ACM Transactions on Graphics; the venue line was not in the part read here). The skintwin lane's mirror, re-read here 2026-10-01 through nx_pdf_text (introduction, Sec. 3.1, Sec. 6.3 limitations, Sec. 7 conclusion): wet porous materials such as a damp road or wet sand look darker and matter for wet roads in autonomous-driving simulation; an anisotropic radiative transfer equation generalised for porosity and saturation with a transmittable micro-ellipsoid particle model, and the WetSpongeCake position-free surface model with physically meaningful parameters capturing reflection and transmission; limits: no closed form, precomputation restricts multiple scattering in spatially varying anisotropic materials, and the multiple-scattering network can fit poorly publisher · read in our library knowledge/fetched/cmp_skintwin_wetporous_2401_15628.pdf · pin h486a97270604ad896853838345e02e7b3a83260aa691ab3af41c0ca1437f985e · accessed 2026-10-01 · published-paperGrounds: PN9
  31. [rainsearch_bf1001] arXiv search, terms rain rendering in all fields, newest announcement first, 25 per page, read 2026-10-01: 22 results; the on-subject forward rendering entries are RainyGS (2025, cited separately), Physics-Based Rendering for Improving Robustness to Rain (1908.10335, cited separately) and an IJCV rain-rendering paper (DOI 10.1007/s11263-020-01366-3, authors not read, not counted); the two 2026 entries are Beyond Clear Skies 2608.16191 (Lenhard, Weinmann, Koch, August 2026: SynDroneVision-Weather, 55,187 annotated images rendered by a game-engine pipeline across three urban environments, seasons and adverse weather, so the weather rendering is the engine's, not a method of the paper) and The Domain Is a Residue 2609.37330 (submitted 29 September 2026: a 2.9M-parameter feature adapter compared with CycleGAN-Turbo on fog, night, snow, rain and haze conditions, an image domain-translation method, not forward rendering); the rest are rain removal, robustness, captioning or precipitation forecasting publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_rainrender_20261001.html · pin h515e910e7d284d7b5e35f062b818e4d37be3d4d5691b30045a11c86a2fddc895 · accessed 2026-10-01 · mirrored-indexGrounds: PN9
  32. [fogsearch_bf1001] arXiv search, terms fog rendering in all fields, newest announcement first, 25 per page, read 2026-10-01: 25 results; the on-subject forward entries are WeatherEdit 2505.20471 (snow, rain and fog in a 4D Gaussian field, cited separately) and SynFog (a photo-realistic synthetic fog dataset from end-to-end imaging simulation, date not read, not counted); the 2026 entries are the same two read in the rain search (Beyond Clear Skies, The Domain Is a Residue); the rest are inverse dehazing (DehazeGS 2501.03659, ScatterNeRF, Reliable Image Dehazing by NeRF, Removing Adverse Volumetric Effects from trained radiance fields), Rendering Participating Media Using Path Graphs, transient light transport in Mitsuba 3, robustness studies or fog-computing homonyms publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_fogrender_20261001.html · pin haa65603508bb45f8c7784b3d486995061dde565a0a4faedcfb43eea709dc3b34 · accessed 2026-10-01 · mirrored-indexGrounds: PN9
  33. [cloudsearch_bf1001] arXiv search, terms cloud rendering volumetric in all fields, newest announcement first, 25 per page, read 2026-10-01: 25 results; the only on-subject forward cloud entry is 2502.08107 (Singh, Kumar, February 2025, cs.GR, no venue on the listing, a preprint: a real-time volumetric cloud shader in Unreal Engine with ray-casting-based lighting and a dual-layer procedural noise model that drops 2D weather textures, 35 ms per frame on average and a claimed 15 percent realism gain); Full Dynamic Range Sky-Modelling for Image Based Lighting is a sky model; the rest are volumetric video, point clouds, Gaussian splatting or volume-rendering homonyms; no 2026 entry renders clouds forward publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_cloudrender_20261001.html · pin h98ff22178dcd834da01684dbfc891595688c89136d50acba442c06db92e4fdf9 · accessed 2026-10-01 · mirrored-indexGrounds: PN9
  34. [snowsearch_bf1001] arXiv search, terms snow rendering in all fields, newest announcement first, 25 per page, read 2026-10-01 (the first attempt was refused by the job lane before execution and re-run): 20 results; the on-subject entries are VersaGauss 2608.28069 (Su, Yang, Xie, Lai, submitted 28 August 2026: generation, simulation and rendering of multiphase interactions with 3D Gaussians through a Coupled Multiphase Point Method, simulating fluid, rubber, sand, snow and other materials, i.e. snow as a simulated material rather than snowfall or snow cover), ClimateNeRF 2211.13226 (snow accumulation, cited separately), Beyond Clear Skies and The Domain Is a Residue (read in the rain search); the rest are robustness, lidar in snowfall, cryosphere spectra and homonyms; no 2026 entry renders falling or accumulated snow forward publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_snowrender_20261001.html · pin h47ed2e470a34485e77ddfd62fbaf8f065ac72c3dbf5bbaa5ac31b9537036479d · accessed 2026-10-01 · mirrored-indexGrounds: PN9
  35. [praguesky2021_supp_bf1001] Wilkie, Vevoda et al. (Charles University). Supplemental Document for A Fitted Radiance and Attenuation Model for Realistic Atmospheres, ACM TOG 40(4) Article 135, linked from the project page. PDF mirrored 2026-10-01 (37,067,782 B) and its Sec. 7 comparisons and reference list read through nx_pdf_text: against exponential scatterer profiles the OPAC-based atmosphere agrees at low altitude and diverges as altitude rises; for a direct comparison the authors ran Hillaire's own source code, which implements both his 2020 model and Bruneton's 2016 model, with extinction coefficients matched to theirs and an exponential aerosol profile giving the same ground-level visibility and vertical turbidity; Fig. 18 shows a good match of all three models at a 2 m observer, with differences growing with observer altitude; the reference list gives Bruneton's evaluation as IEEE TVCG 23(12), 2641-2655 publisher · read in our library knowledge/fetched/cmp_pano360_praguesky2021_supplement.pdf · pin hefbc63908a8abad4652a128cb396bafbee03043091d5463b381e2d20d6ada83d · accessed 2026-10-01 · published-paperGrounds: PN6
  36. [cloudscattersearch_bf1001] arXiv search, terms clouds multiple scattering rendering in all fields, newest announcement first, read 2026-10-01: 5 results, none a cloud rendering method (Fi-Gaussian single-image dehazing, Gabor Fields level of detail for volume rendering, light-transport-aware diffusion posterior sampling for single-view volume reconstruction, Rendering Participating Media Using Path Graphs, an exoplanet radiative transfer model); arXiv yields no second peer-reviewed cloud-rendering group, so the next one has to come from a publisher or a lab site publisher · read in our library knowledge/fetched/cmp_pano360_arxiv_search_cloudscatter_20261001.html · pin h25e6a3129092c3579a2a81e3d5e675e1ca20b1f328b6c29bcebe13116d845c3e · accessed 2026-10-01 · mirrored-indexGrounds: PN9

generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/pano360.matrix · source checks show implementation presence; runtime and user-outcome evidence are reported separately · JavaScript supports page controls