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.
Business case
| Axis | Position | Figures | Decision |
|---|---|---|---|
| Investment | M0 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 it | 36 u to every milestone | fund 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 build | Rendering: 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 product | the only paid lines are referee access and, if measured necessary, training hours | build the renderer path, rent nothing until a referee shows the rendered tier cannot reach its bar |
| Market | Film 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 first | the first customer is the estate's own synthetic photoshoot | enter through twiningest photoshoots and the synthroom room, then virtual production with PN20 |
| Competitive position | The 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 ledger | rendered truth first, learned breadth second, both measured by a referee that reads the sphere | compete 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 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
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
| Rung | Closes with | Definition of done (pre-declared) | Executor | Est. |
|---|---|---|---|---|
| Sphere, equirectangular and cubemap mapping as one ruler (PN1) | _ABSENT_:pano_dir_from_px | 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 | Organ | 1 u |
| Panoramic camera in the path tracer (PN2) after PN1,graphics:GR42 | _ABSENT_:pano_render_trace | 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 | Organ | 1.5 u |
| Open HDR format: Radiance RGBE written and read (PN3) after PN2 | _ABSENT_:pano_rgbe_write | 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 | Organ | 1 u |
| Seam, pole and sphere referee (PN4) after PN1 | _ABSENT_:pano_seam_score | 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 | Organ | 1 u |
| Sovereign 360-degree viewer (PN5) after PN2,PN3 | _ABSENT_:pano_view_emit | 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 | Organ | 1 u |
| Physical sky in the panorama (PN6) after PN2,graphics:GR26 | _ABSENT_:pano_sky_physical | 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 | Organ | 1.5 u |
| Light-probe consistency ruler (PN7) after PN3,PN6 | _ABSENT_:pano_probe_relight | 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 | Organ | 1.5 u |
| Ground-truth layers with every panorama (PN8) after PN2 | _ABSENT_:pano_aov_layers | 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 | Organ | 1 u |
| Time of day, weather and season as data (PN9) after PN6 | _ABSENT_:pano_scene_ladder | 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 | Organ | 1 u |
| Six degrees of freedom: the world, not the wallpaper (PN10) after PN8,gameengine:GE82 | _ABSENT_:pano_world_export | 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 | Organ | 2 u |
| VR room environments (PN11) after PN7,synthroom:SR7 | _ABSENT_:pano_room_env | 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 | Organ | 1 u |
| Synthetic photoshoot backdrop and light (PN12) after PN7,twiningest:TI12 | _ABSENT_:pano_shoot_backdrop | 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 | Organ | 1.5 u |
| 360-degree video (PN13) after PN2,PN9 | _ABSENT_:pano_video_emit | 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 | Organ | 2 u |
| Fine-art styles on the sphere (PN14) after PN4 | _ABSENT_:pano_style_sphere | 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 | Organ | 1.5 u |
| Licence-clean panorama corpus ledger (PN15) after PN8 | _ABSENT_:pano_corpus_ledger | 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 | Organ | 1 u |
| Sovereign spherical diffusion model (PN16) after PN15,modelwright:R7 | _ABSENT_:pano_gen_denoise | 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 | Local model | 6 u |
| Image to 360: outpaint a photo or a painting (PN17) after PN16,PN1 | _ABSENT_:pano_outpaint | 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 | Organ | 2 u |
| Text to 360 with spatial control (PN18) after PN16 | _ABSENT_:pano_text_place | 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 | Local model | 2 u |
| External referee run (PN19) after PN4,graphics:GR63 | _ABSENT_:pano_ext_referee | 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 | Organ | 1.5 u |
| 16K HDR tier and OpenEXR (PN20) after PN3 | _ABSENT_:pano_exr_write | 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 | Organ | 2 u |
| Lift a generated panorama to 3D (PN21) after PN8,PN16 | _ABSENT_:pano_lift_depth | 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 | Local model | 3 u |
| Rung | Role | Toward | Stands on | Why |
|---|---|---|---|---|
| PN1 | substrate | T-BIC-PANO | - | every panorama, every referee and every generator maps through it |
| PN2 | substrate | T-FR-PROBE | PN1,graphics:GR42 OPEN | the rendered radiance a trusted probe is taken from |
| PN3 | substrate | T-FR-PROBE | PN2 | the open container the probe's dynamic range lives in |
| PN4 | substrate | T-BIC-PANO | PN1 | the ruler every panorama is accepted by |
| PN5 | arm | T-BIC-PANO | PN2,PN3 | the delivery surface, scored by page verification rather than competing for the quality number |
| PN6 | substrate | T-FR-PROBE | PN2,graphics:GR26 DONE | physical sky radiance the probe must carry |
| PN7 | contender | T-FR-PROBE | PN3,PN6 | its done-rule is relight error against an in-scene render |
| PN8 | substrate | T-FR-PANOWORLD | PN2 | the exact geometry every lift and every training sample consumes |
| PN9 | arm | T-BIC-PANO | PN6 | variety as data, measured by reproduction rather than by the quality number |
| PN10 | contender | T-FR-PANOWORLD | PN8,gameengine:GE82 OPEN | its done-rule is a rendered disocclusion at the headset's frame rate |
| PN11 | arm | T-FR-PROBE | PN7,synthroom:SR7 UNRESOLVED(organ-unreadable) | the VR room consumes the probe under its frame budget |
| PN12 | arm | T-FR-PROBE | PN7,twiningest:TI12 UNRESOLVED(organ-unreadable) | the synthetic photoshoot consumes the probe and the backdrop |
| PN13 | arm | T-FR-PANOWORLD | PN2,PN9 | time and camera motion on the same world, scored by flicker |
| PN14 | arm | T-BIC-PANO | PN4 | style breadth scored by the sphere ruler |
| PN15 | substrate | T-BIC-PANO | PN8 | the corpus the sovereign model must prove it trained on |
| PN16 | contender | T-BIC-PANO | PN15,modelwright:R7 UNRESOLVED(organ-unreadable) | its done-rule is a distribution score beside the oracle's on the same prompts |
| PN17 | contender | T-BIC-PANO | PN16,PN1 | its done-rule is completion error against withheld truth |
| PN18 | contender | T-BIC-PANO | PN16 | its done-rule is angular placement error |
| PN19 | substrate | T-BIC-PANO | PN4,graphics:GR63 OPEN | the outside referee every contender is scored by |
| PN20 | contender | T-BIC-PANO | PN3 | the incumbent's 16K HDR tier met on the estate's renderer |
| PN21 | contender | T-FR-PANOWORLD | PN8,PN16 | its done-rule is depth error on panoramas whose depth is known |
Milestones
| Milestone | Rungs | Cumulative |
|---|---|---|
| M0 · The first true 360: sphere mapping, panoramic camera, open HDR, sphere referee and viewer | PN1,PN2,PN3,PN4,PN5 | 5.5 u |
| M1 · SOTA resolution on every core: 8K and 16K through tiles, and a light probe you can trust | PN6,PN7,PN8,PN9,PN22,PN25 | 14.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 video | PN10,PN11,PN12,PN13,PN23,PN24,PN26,PN27 | 28 u |
| M3 · Any style and any subject: the sovereign generative lane | PN14,PN15,PN16,PN17,PN18,PN21 | 43.5 u |
| M4 · Refereed against the incumbents at their own tier | PN19,PN20 | 47 u |
| Rung | Closes with | Definition of done (pre-declared) | Executor | Est. |
|---|---|---|---|---|
| Parallel render across the machine's measured cores (PN22) after PN2 | _ABSENT_:pano_render_parallel | 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 | Organ | 1 u |
| Rung | Role | Toward | Stands on | Why |
|---|---|---|---|---|
| PN22 | substrate | T-BIC-PANO | PN2 | every rung that renders a panorama pays for one core today; the measured cores are the first factor of throughput, before any GPU door |
| Rung | Closes with | Definition of done (pre-declared) | Executor | Est. |
|---|---|---|---|---|
| WebGPU decode to float, mip chain and anisotropic filtering (PN23) after PN5 | _ABSENT_:pano_gpu_decode | 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 | Organ | 1.5 u |
| Cube-map sampling in the shader IR (PN24) after PN5,PN23 | _ABSENT_:pano_cube_sample | 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 | Organ | 2 u |
| Tiled multi-resolution streaming for 8K and 16K (PN25) after PN5,PN22 | _ABSENT_:pano_tile_pyramid | 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 | Organ | 3 u |
| Measured GPU frame time on the page (PN26) after PN5 | _ABSENT_:pano_gpu_timing | 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 | Organ | 0.5 u |
| The Nishi browser's native panorama door, superior to the WebGPU page (PN27) after PN5,browser:BR23 | _ABSENT_:pano_native_door | 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 | Organ | 3 u |
| Rung | Role | Toward | Stands on | Why |
|---|---|---|---|---|
| PN23 | contender | T-BIC-PANO | PN5 | filtering quality at the incumbents' resolutions is part of the viewer bar |
| PN24 | contender | T-BIC-PANO | PN5,PN23 | uniform texel density at the poles is where equirectangular viewers lose to cube-based ones |
| PN25 | contender | T-BIC-PANO | PN5,PN22 | 8K and 16K are the incumbents' tiers; a viewer that cannot stream them does not meet the bar |
| PN26 | substrate | T-BIC-PANO | PN5 | a frame time nobody measured cannot be claimed faster |
| PN27 | contender | T-BIC-PANO | PN5,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, counted (17 rows, more than the 12-row disclosure bar)
| Class | Count | Note |
|---|---|---|
| targets | 3 | sotatarget rows on the plan |
| best in class | 1 | targets whose class is best-in-class, by code |
| frontier | 2 | targets whose class is frontier, by code |
| undated | 0 | targets naming no bar that exists |
| bad class | 0 | targets whose class is neither word |
| duplicate | 0 | target ids an earlier row already carries |
| rungs | 27 | rung rows on the plan |
| placed | 27 | rungs carrying a rungrole row |
| unplaced | 0 | rungs with no role toward any target |
| bad role | 0 | rungrole rows naming a role the ladder does not know |
| bad target | 0 | rungrole rows naming a target no sotatarget row declares |
| rungs, summed | 27 | RECONCILED: the parts sum to the total 27 |
| substrate | 10 | what the target's own methods consume |
| arm | 6 | a sovereign arm that triangulates without competing for the number |
| contender | 11 | its done-rule is a number against the target |
| superseded | 0 | kept as capability, retired as a claim |
| placed, summed | 27 | RECONCILED: the parts sum to the total 27 |
| Class | Count | Note |
|---|---|---|
| bars | 4 | sotabar rows on the plan |
| fresh | 0 | the bar month is the current month |
| attested | 4 | an older bar with a this-month barscan reporting no newer entry |
| stale | 0 | a this-month scan saw a newer month the bar ignores |
| unattested | 0 | nobody looked this month |
| malformed | 0 | a sotabar row missing a field |
| duplicate | 0 | bar ids an earlier row already carries |
| bars, summed | 4 | RECONCILED: the parts sum to the total 4 |
| current month | 2026-10 | the month every bar is judged against |
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.
PN1 — Sphere, equirectangular and cubemap mapping as one ruler
Prerequisites: None declared; this does not establish execution eligibility.
Contract:
_ABSENT_:pano_dir_from_pxAcceptance: 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.PN2 — Panoramic camera in the path tracer
Prerequisites: PN1 (acceptance unverified)
Contract:
_ABSENT_:pano_render_traceAcceptance: 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.PN3 — Open HDR format: Radiance RGBE written and read
Prerequisites: PN2 (acceptance unverified)
Contract:
_ABSENT_:pano_rgbe_writeAcceptance: 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.PN4 — Seam, pole and sphere referee
Prerequisites: PN1 (acceptance unverified)
Contract:
_ABSENT_:pano_seam_scoreAcceptance: 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.PN5 — Sovereign 360-degree viewer
Prerequisites: PN2 (acceptance unverified), PN3 (acceptance unverified)
Contract:
_ABSENT_:pano_view_emitAcceptance: 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.PN6 — Physical sky in the panorama
Prerequisites: PN2 (acceptance unverified)
Contract:
_ABSENT_:pano_sky_physicalAcceptance: 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.PN7 — Light-probe consistency ruler
Prerequisites: PN3 (acceptance unverified), PN6 (acceptance unverified)
Contract:
_ABSENT_:pano_probe_relightAcceptance: 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.PN8 — Ground-truth layers with every panorama
Prerequisites: PN2 (acceptance unverified)
Contract:
_ABSENT_:pano_aov_layersAcceptance: 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.PN9 — Time of day, weather and season as data
Prerequisites: PN6 (acceptance unverified)
Contract:
_ABSENT_:pano_scene_ladderAcceptance: 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.PN10 — Six degrees of freedom: the world, not the wallpaper
Prerequisites: PN8 (acceptance unverified)
Contract:
_ABSENT_:pano_world_exportAcceptance: 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.PN11 — VR room environments
Prerequisites: PN7 (acceptance unverified)
Contract:
_ABSENT_:pano_room_envAcceptance: 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.PN12 — Synthetic photoshoot backdrop and light
Prerequisites: PN7 (acceptance unverified)
Contract:
_ABSENT_:pano_shoot_backdropAcceptance: 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.PN13 — 360-degree video
Prerequisites: PN2 (acceptance unverified), PN9 (acceptance unverified)
Contract:
_ABSENT_:pano_video_emitAcceptance: 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.PN14 — Fine-art styles on the sphere
Prerequisites: PN4 (acceptance unverified)
Contract:
_ABSENT_:pano_style_sphereAcceptance: 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.PN15 — Licence-clean panorama corpus ledger
Prerequisites: PN8 (acceptance unverified)
Contract:
_ABSENT_:pano_corpus_ledgerAcceptance: 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.PN16 — Sovereign spherical diffusion model
Prerequisites: PN15 (acceptance unverified)
Contract:
_ABSENT_:pano_gen_denoiseAcceptance: 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.PN17 — Image to 360: outpaint a photo or a painting
Prerequisites: PN16 (acceptance unverified), PN1 (acceptance unverified)
Contract:
_ABSENT_:pano_outpaintAcceptance: 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.PN18 — Text to 360 with spatial control
Prerequisites: PN16 (acceptance unverified)
Contract:
_ABSENT_:pano_text_placeAcceptance: 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.PN19 — External referee run
Prerequisites: PN4 (acceptance unverified)
Contract:
_ABSENT_:pano_ext_refereeAcceptance: 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.PN20 — 16K HDR tier and OpenEXR
Prerequisites: PN3 (acceptance unverified)
Contract:
_ABSENT_:pano_exr_writeAcceptance: 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.PN21 — Lift a generated panorama to 3D
Prerequisites: PN8 (acceptance unverified), PN16 (acceptance unverified)
Contract:
_ABSENT_:pano_lift_depthAcceptance: 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.PN22 — Parallel render across the machine's measured cores
Prerequisites: PN2 (acceptance unverified)
Contract:
_ABSENT_:pano_render_parallelAcceptance: 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.PN23 — WebGPU decode to float, mip chain and anisotropic filtering
Prerequisites: PN5 (acceptance unverified)
Contract:
_ABSENT_:pano_gpu_decodeAcceptance: 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.PN24 — Cube-map sampling in the shader IR
Prerequisites: PN5 (acceptance unverified), PN23 (acceptance unverified)
Contract:
_ABSENT_:pano_cube_sampleAcceptance: 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.PN25 — Tiled multi-resolution streaming for 8K and 16K
Prerequisites: PN5 (acceptance unverified), PN22 (acceptance unverified)
Contract:
_ABSENT_:pano_tile_pyramidAcceptance: 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.PN26 — Measured GPU frame time on the page
Prerequisites: PN5 (acceptance unverified)
Contract:
_ABSENT_:pano_gpu_timingAcceptance: 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.PN27 — The Nishi browser's native panorama door, superior to the WebGPU page
Prerequisites: PN5 (acceptance unverified)
Contract:
_ABSENT_:pano_native_doorAcceptance: 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
nx_swcompare_evidence pano360 writes it beside its stamp); every gate below reads UNRECORDED until it runs.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 done | 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 |
| Matrix cell | MAP: sphere, equirectangular and cubemap mapping with an exact pixel round trip · runtime/nx_pano_lib.nx · LANDED decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | RENDER: panoramic camera, every primary ray cast on the sphere · runtime/nx_pano_render_lib.nx · LANDED decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | HDR: Radiance RGBE written and read, radiance taken before the display encode · runtime/nx_pano_rgbe.nx · LANDED decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | REFEREE: seam ratio, polar detail per solid angle and cubemap round-trip error · runtime/nx_pano_referee.nx · LANDED decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | VIEWER: sovereign 360-degree viewer page, no third-party script · runtime/nx_pano_view.nx · LANDED decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | SKY: physical Rayleigh and Mie sky in the rendered panorama · runtime/nx_pano_sky.nx · WATCHING decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | PROBE: light-probe consistency, relit inside the scene versus relit by the panorama · runtime/nx_pano_probe.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | TRUTH: exact depth, normal and semantic layers with every panorama · runtime/nx_pano_aov.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | LADDER: time of day, weather and season as data rows · runtime/nx_pano_scene.nx · WATCHING decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | WORLD: the scene behind the panorama exported for six degrees of freedom · runtime/nx_pano_world.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | ENDPOINT: VR room environment as skybox and image-based light · runtime/nx_pano_room.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | ENDPOINT: synthetic photoshoot backdrop with the subject relit by its probe · runtime/nx_pano_shoot.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | VIDEO: 360-degree video through the estate's own codec · runtime/nx_pano_video.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | STYLE: fine-art operators run on the sphere so strokes do not stretch at the poles · runtime/nx_pano_style.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | CORPUS: licence-clean panorama ledger, an oracle's output refused by name · runtime/nx_pano_corpus.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | GENERATE: sovereign spherical diffusion model trained on the ledger · runtime/nx_pano_gen.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | OUTPAINT: a flat photo or painting completed to 360 degrees with its inferred mask published · runtime/nx_pano_outpaint.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | PLACE: text to 360 with directions and layout placed on the sphere · runtime/nx_pano_place.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | REFEREE: outside omnidirectional quality scores and a human two-alternative forced choice · runtime/nx_pano_extref.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | HDR: 16K tier and OpenEXR half-float written and read · runtime/nx_pano_exr.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | LIFT: a generated panorama lifted to depth and Gaussians, the lift error measured on known depth · runtime/nx_pano_lift.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | PARALLEL: the panorama render split across the machine's measured cores, deterministic at any split · runtime/nx_pano_parallel.nx · LANDED decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | GPU 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 |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | CUBE 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 |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | TILES: every level cut into content-addressed tiles, fetched only where the view looks, for 8K and 16K · runtime/nx_pano_tiles.nx · LANDED decl |
| Gate | NO-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 log | 2026-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 done | 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 |
| Matrix cell | GPU TIMING: measured GPU milliseconds per frame on the page, transported losslessly to the estate · runtime/nx_pano_gpu_timing.nx · WATCHING decl |
| Gate | NO-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 log | no 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 done | 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 |
| Matrix cell | NATIVE DOOR: the Nishi browser opens view.nxr natively, same shader source, float radiance, HDR to the display · runtime/nx_pano_native.nx · WATCHING decl |
| Gate | NO-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 log | no 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.
knowledge/compare/pano360.cdmap (cut|x|y, cube|x|y|z); absent = the HBR defaultsbubble 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)
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
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
| Player | Quadrant | centrality | distinctiveness | breadth | depth | momentum | Rows held | Days on spine | First seen |
|---|---|---|---|---|---|---|---|---|---|
| Nishi | Aspirational | 525 | 595 | 274 | 666 | 0 since 2026-10-03 | 14 | 4 | 2026-09-28 |
| Blockade Labs Skybox AI | Mainstream | 450 | 404 | 127 | 619 | 0 since 2026-10-03 | 7 | 4 | 2026-09-28 |
| PanoPulse | Mainstream | 475 | 309 | 107 | 523 | 0 since 2026-10-03 | 7 | 4 | 2026-09-28 |
| Research diffusion panoramas (LF-MultiDiffusion, SpheRoPE, SHERPA, Canvas360) | Unconventional | 400 | 476 | 137 | 666 | 0 since 2026-10-03 | 7 | 4 | 2026-09-28 |
| Panorama-to-world research (Genie Sim PanoWorld, ABot-3DWorld, Pano2World, AlayaVista) | Peripheral | 300 | 433 | 88 | 600 | 0 since 2026-10-03 | 5 | 4 | 2026-09-28 |
| Day | Matrix rows reviewed | Players recorded |
|---|---|---|
| 2026-09-28 | 28 | 5 |
| 2026-09-29 | 34 | 5 |
| 2026-10-03 | 34 | 5 |
| 2026-10-08 | 34 | 5 |
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
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.
No capabilities match this filter or search.
| Capability | 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) |
|---|---|---|---|---|---|
| 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).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.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.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.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).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).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).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).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 — watchingruntime/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 pixelsPros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
| PROBE | |||||
light-probe consistency, relit inside the scene versus relit by the panoramaOpen — watchingruntime/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]Pros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
| TRUTH | |||||
exact depth, normal and semantic layers with every panoramaOpen — watchingruntime/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 exactPros 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 — watchingruntime/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 rowPros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
| WORLD | |||||
the scene behind the panorama exported for six degrees of freedomOpen — watchingruntime/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]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 — watchingruntime/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 roomPros 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 — watchingruntime/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 panoramaPros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
| VIDEO | |||||
360-degree video through the estate's own codecOpen — watchingruntime/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 videoPros 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 — watchingruntime/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]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 — watchingruntime/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]Pros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
| GENERATE | |||||
sovereign spherical diffusion model trained on the ledgerOpen — watchingruntime/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 ownPros 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 — watchingruntime/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 seenPros 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 — watchingruntime/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]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 — watchingruntime/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 pathPros 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 — watchingruntime/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]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 — watchingruntime/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]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).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 — watchingruntime/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 viewPros 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 — watchingruntime/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 doorPros 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).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 — watchingruntime/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 namePros 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 — watchingruntime/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 memoryPros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
| Class | Count | Note |
|---|---|---|
| rows with rival marks | 14 | rows carrying a Yes, Best or Part in a rival column |
| cited | 14 | a reference mark resolves to a pinned mirror |
| uncited | 0 | an observation read, badged until a reference lands |
| rows, summed | 14 | RECONCILED: 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
| Risk | Likelihood x impact | Mitigation |
|---|---|---|
| A generated panorama relights the synthetic human wrongly: a clipped sun, radiance inconsistent with the scene it shows | probable x high | PN7 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 route | possible x high | the 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 passes | probable x medium | PN4 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 box | possible x medium | resolution 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
| When | Rung | Kind | Entry |
|---|---|---|---|
| 2026-09-28 | PN1 | 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 | PN2 | 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-28 | PN1 | 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 | PN1 | 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-09-29 | PN4 | 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. |
| 2026-09-29 | PN2 | 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 | PN3 | 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 | PN5 | 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 | PN2 | 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 |
| 2026-09-29 | PN3 | 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 | PN3 | 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 | PN5 | 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 | PN5 | 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 | PN22 | 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 | PN22 | 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 | PN3 | 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) |
| 2026-09-29 | PN22 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN5 | 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] |
| 2026-09-29 | PN25 | 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 | PN22 | 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 | PN22 | 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 |
| 2026-09-29 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN1 | 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 | PN1 | 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 | PN1 | 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 | PN1 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN6 | 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 | PN25 | 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-01 | PN6 | 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 | PN9 | 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 | PN1 | 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. |
| 2026-10-01 | PN9 | 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 | PN9 | 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 | PN6 | 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 | PN6 | 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 | PN6 | 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 | PN6 | 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 |
| 2026-10-01 | PN9 | 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) |
| 2026-10-03 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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 | PN25 | 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. |
Person · product · place — not yet measured for this domain
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
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.
| kind | name | board | source | evidence |
|---|
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
- [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· pinhfdb89ef287d08b9ca4b6ea8e07c6355a74ae14a921a015657e7fa727e5362361· accessed 2026-09-28 · mirrored-indexGrounds: SB-PN-GEN-2609 - [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· pinhbaea340e17313d373017eb0a33cc9140db832e194a43b4e31a95c3753838ae8b· accessed 2026-09-28 · mirrored-indexGrounds: SB-PN-HDR-2609 - [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· pinhaaf43f58b76468c1ad2311b9c53f0eae0341ef7436dbdf6687f7a3a3599dfcbe· accessed 2026-09-28 · vendor-docGrounds: T-BIC-PANO - [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· pinheeafffe5a9657b5a23b05e09e9d6d260c09707d8196c29eecfac3eeca1fc643b· accessed 2026-09-28 · vendor-docGrounds: SB-PN-GEN-2609 - [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· pinh5f70c305abe3a72814317b71ca6b83f14717ac5819b03fceced8fe2f19f5083b· accessed 2026-09-28 · datasetGrounds: PN15 - [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· pinh0b7a23e05e933f7f28ffab64ac1302e215f44eeb69abbfac4f2c4fd331101be5· accessed 2026-09-28 · vendor-docGrounds: PN15 - [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· pinhd1c47acd027e77f00f5b12cc2eeab62eb8b5da357131463054ea64c70ec4f447· accessed 2026-09-29 · vendor-docGrounds: PN25 - [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· pinh0bd754bc336e003887df0da2d506118f083e291cc702805a26e279e21fec943b· accessed 2026-09-29 · vendor-docGrounds: PN25 - [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· pinh33a8e88f11a3c8a53d2043b1e8021f4eb45636dd06539edfeed51f05ccea82c2· accessed 2026-09-29 · vendor-docGrounds: PN25 - [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· pinhba6209accd4b136b712e8a70340417d7bfffde7d1d20fbef696b08877bc64ada· accessed 2026-09-29 · published-standardGrounds: PN5 - [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· pinh83ed5ad77722785950aeeeaf27033e9f184ac4736faf1f500b212066d5adfc6d· accessed 2026-10-01 · published-paperGrounds: PN6 - [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· pinhc9402b5bbc941dc7086235c7e287dd66f917eef1ba0c111f2fad8ac3f74f139b· accessed 2026-10-01 · published-paperGrounds: PN6 - [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· pinhd3857b6d604161ddaeca76d9858d79d10373dd228ba4e757026d3812f0d72fe6· accessed 2026-10-01 · published-paperGrounds: PN6 - [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· pinh86b25c4f2ce0e33ab5b174ba4ace01c4a865b03455244cb994d078942ed6956e· accessed 2026-10-01 · mirrored-indexGrounds: PN6 - [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· pinh88ae06786545188f9e16a746f50353d429d86e65d30eccb14e8174a24d93e671· accessed 2026-10-01 · mirrored-indexGrounds: PN6 - [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· pinha3a5f9952ccd7ebd84a5d21176eb8aa6619e7bd3aaa6265e6a3e748cb8dce9ef· accessed 2026-10-01 · mirrored-indexGrounds: PN9 - [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· pinh01a04d5de95fd9dc53e21708920ecfe9cd67ab44a532dcd7860903b1908e764f· accessed 2026-10-01 · mirrored-indexGrounds: PN9 - [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· pinh9eb88340cd2f876fd16ce8e9848cc13e908ea93eb3526eb11c4d7ed91bcdd076· accessed 2026-10-01 · vendor-docGrounds: PN9 - [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· pinhe8c15641b7567f5d4ef0a84b511430d5cb03e33a938d9feb8afdfc9cce6b9722· accessed 2026-10-01 · published-paperGrounds: PN9 - [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· pinheef7cdbb9a66798536aabd09830e9f24c53428ca9054a573ffaf25c066f37e74· accessed 2026-10-01 · published-paperGrounds: PN9 - [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· pinh37d53933b40c889c394d0be091416204c0bffd1b28b94b4e56aea5c6b99f949c· accessed 2026-10-01 · mirrored-indexGrounds: PN9 - [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· pinha1220d40bc0ed6fd35e8fe728365fb5b371a615051d505dcd611f61ff22dd5c5· accessed 2026-10-01 · published-paperGrounds: PN6 - [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· pinhdf27316655d45dcbe685962157b6195062859e9e870f9b355d27359f3614416d· accessed 2026-10-01 · published-paperGrounds: PN6 - [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· pinh6a4a46651ee6c2157b4daeacbd4b2839783917d15adbf0127a7f24cbce06f608· accessed 2026-10-01 · published-paperGrounds: PN6 - [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· pinh18290bb3113c00b75d9882dc041dd05b1699a5371f959108d4f0f5f0db3c2655· accessed 2026-10-01 · published-paperGrounds: PN9 - [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· pinh87eb43a01932915b32d69fc9cbef0d4e3c04485e4d01a7ee88d42ad0cc2d5e59· accessed 2026-10-01 · published-paperGrounds: PN9 - [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· pinh95e055b074c86ae190afc7b5d704d11d19881096413cc074a46aef5a211faeb8· accessed 2026-10-01 · published-paperGrounds: PN9 - [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· pinha494bacba53bec42839e2664588f2a9b1e024031d5c0ec1dc503458966c698b9· accessed 2026-10-01 · vendor-docGrounds: PN9 - [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· pinh9eff4a2f34eb0255f1518cd3f3e037b748a25efcc530ef5ca5a9073f32886a7d· accessed 2026-10-01 · published-paperGrounds: PN9 - [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· pinh486a97270604ad896853838345e02e7b3a83260aa691ab3af41c0ca1437f985e· accessed 2026-10-01 · published-paperGrounds: PN9 - [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· pinh515e910e7d284d7b5e35f062b818e4d37be3d4d5691b30045a11c86a2fddc895· accessed 2026-10-01 · mirrored-indexGrounds: PN9 - [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· pinhaa65603508bb45f8c7784b3d486995061dde565a0a4faedcfb43eea709dc3b34· accessed 2026-10-01 · mirrored-indexGrounds: PN9 - [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· pinh98ff22178dcd834da01684dbfc891595688c89136d50acba442c06db92e4fdf9· accessed 2026-10-01 · mirrored-indexGrounds: PN9 - [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· pinh47ed2e470a34485e77ddfd62fbaf8f065ac72c3dbf5bbaa5ac31b9537036479d· accessed 2026-10-01 · mirrored-indexGrounds: PN9 - [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· pinhefbc63908a8abad4652a128cb396bafbee03043091d5463b381e2d20d6ada83d· accessed 2026-10-01 · published-paperGrounds: PN6 - [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· pinh25e6a3129092c3579a2a81e3d5e675e1ca20b1f328b6c29bcebe13116d845c3e· 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