chexit
278f356aa6
Scope camera picture milestones to the run whose frame drew them
...
A camera shown only as the screen's own view was never prepared: the note
required a non-empty picture list. Two runs picking the same local id both
claimed the screen's frame, though only the first one's camera was drawn
from it. The client now notes whether the frame was a world frame and the
(run, camera id) the screen's world was drawn from, so the main-view
milestone belongs to the run whose selection the screen used, and a title
or loading frame reports the path off without erasing earlier milestones.
A world transition clears the submission, the main-view selection and the
milestones: another world's cameras are not drawn. A camera given to
set-main-view drops its picture target, so its milestone starts over until
a frame is drawn from it. prepared stays a host-side encoding milestone,
not target registration, not a GPU fence, not a visible pixel.
Also gate the client's note on the `mods` feature: without it the default
horizon-client build did not compile.
Verified: horizon-mods 37 unit, 44 sandbox (1 ignored; real Wasmtime
guests, the two-run test shows each id 7 follows only its own pictures and
selection) and 4 api_reference; client checks and build with and without
`mods`; gfx lib tests.
Co-Authored-By: Kimi Code <noreply@moonshot.cn >
2026-11-04 21:04:47 +03:00
chexit
efe017ffb1
Report per-run camera picture readiness milestones
...
API 30 adds render.camera-status: availability, the last noted frame's
mod-camera picture path, the calling run's accepted set-views submission
for this world generation, and per-camera prepared flags. A camera is
prepared when the renderer encoded its picture into the texture target
in a real frame of this generation, or a world frame rendered from it as
the set-main-view selection: a host-side encoding milestone, not target
registration, not a GPU fence, not a visible pixel. An empty set-views
clears the request; a resubmission, world transition or mod reload waits
for a new frame. The renderer reports the pictures it drew each frame;
the game notes the frame after a successful render. Verified with two
real Wasmtime guests sharing local camera id 7: each run's readiness
follows only its own submission and main-view choice, and a world
transition resets both.
Co-Authored-By: Kimi Code <noreply@moonshot.cn >
2026-11-04 21:04:47 +03:00
chexit
73b9d30704
Free a failed film take's files and keep the finished one
...
The writer removed its video, raw sound and log only when a take was
cancelled, so an encoder error or a non-zero ffmpeg exit left them in the
films folder. A failed take now removes exactly the files it wrote; the
log's last lines move into the error, since the log itself goes.
The encoder always writes <name>.video.mp4, and <name>.mp4 appears only
after a successful mux or rename. A failed, cancelled or no-audio take
therefore cannot overwrite or delete a film of an earlier export with the
same name. The writer's entry point takes the ffmpeg and its arguments so
a test can drive a failing encoder.
Co-Authored-By: Kimi Code <noreply@moonshot.ai >
2026-11-04 20:17:29 +03:00
chexit
45b43f00df
Preserve geometric normals for dynamic block models
...
Co-Authored-By: Kimi Code <noreply@moonshot.ai >
2026-11-04 17:51:24 +03:00
chexit
57f8b2853c
Scope mod camera targets to their running owner
...
Co-Authored-By: Codex <noreply@openai.com >
2026-11-04 16:19:04 +03:00
chexit
d8fa77b000
Report per-run sound source application milestones
...
Co-Authored-By: Codex <noreply@openai.com >
2026-11-04 16:12:51 +03:00
chexit
6230ec7031
Report per-run point light processing milestones
...
Co-Authored-By: Codex <noreply@openai.com >
2026-11-04 16:09:12 +03:00
chexit
e44ad82a9f
test: exercise moving mass sources through offline acoustics capture
...
Co-Authored-By: Codex <noreply@openai.com >
2026-11-04 16:09:12 +03:00
chexit
f95f03c08e
Add optional mod test fuel profiling
...
Co-authored-by: Codex <codex@openai.com >
2026-11-03 11:23:47 +03:00
chexit
ed7615d362
Add flat render world to mod test scripts
...
Co-authored-by: Codex <codex@openai.com >
2026-11-03 10:35:16 +03:00
chexit
86e1d272ea
Improve mod trap diagnostics
...
Co-authored-by: Codex <codex@openai.com >
2026-11-03 10:29:06 +03:00
chexit
c89c78c470
Scope capture stops and cancel on world changes
...
Co-Authored-By: Codex <noreply@openai.com >
2026-11-03 00:22:34 +03:00
chexit
f4c1131d37
Expose scoped acoustics and capture capability states
...
Co-Authored-By: Codex <noreply@openai.com >
2026-11-03 00:18:44 +03:00
chexit
86b1014a92
Expose per-world smoke readiness to mods
...
Co-Authored-By: Codex <noreply@openai.com >
2026-11-02 22:11:51 +03:00
chexit
2095590807
Merge Horizon v0.2.97 into AirDef fork
...
Preserve AirDef replay lighting and acoustic commands while retaining upstream shadow and HDR fixes. Give the two entity shadow shaders distinct entry points.
Co-Authored-By: Codex <noreply@openai.com >
2026-11-02 01:17:43 +03:00
chexit
eae00eafc5
Preserve acoustic resets and bound worker jobs across chunk changes
...
AirDef #110 #111 #116 . Establish canonical standalone fork metadata.
Co-Authored-By: Codex GPT-6.1 Terra <noreply@openai.com >
2026-11-02 01:04:43 +03:00
chexit
b717c30924
Acoustics follows chunk residency and voice lifecycle ( #110 #111 #112 )
...
Co-Authored-By: Kimi <noreply@moonshot.ai >
2026-11-02 00:10:58 +03:00
chexit
6a893473a4
Mods read live blocks while replay shows history ( #105 )
...
Co-Authored-By: Kimi <noreply@moonshot.ai >
2026-11-02 00:10:58 +03:00
chexit
3de52c252c
game.world-seed (API 25)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
734f632cbf
Mod canvas with terrain tiles and mouse input (API 24), set-acoustics (API 23), acoustics stage 3: reverb
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
523c855b09
Mod chunk tickets through the server thread (API 22), softer searchlights and light halos, acoustics stage 2: echo taps
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
7012640e54
Acoustics stage 1: direct-path occlusion ported from Sound Physics Remastered 453654e (GPL-3.0, separate files), off by default; stereo output on surround devices; mixer sum in a fixed order (API 21)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
32f6161921
HD clouds: rays from a far point, so the view bob's eye offset does not bend them
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
b809f5eed0
Persistent mod sound sources: start, update, stop with generations, click-free voices, loop sections, voice budget and virtual loops (API 20)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
4cb83fcc9b
Mod command trees: command.set-tree and set-suggestions, typed parse, colouring and completion from one tree (API 19)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
94dc8eda1a
Film export: every frame in flight reaches the writer, listener follows the main view, cloud wind on film frames, set-smoke reports real activity
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
288bfb66a5
HD: coloured sun through glass and leaves, rain ripples on water, film motion blur and depth of field
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
71cdcac1db
HD clouds and fog polish: cloud panorama, cirrus, terrain-aware fog, far smoke cascade; replay world log and film clock; material overlays by sprite name
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
251bb6777f
Spot lights for mods (render.set-spot-lights, API level 16): surfaces lit in the cone, a volumetric beam stopped by depth ( #60 ); film capture (render.capture-*, set-film-quality, API level 17): fixed-step clock, frames piped to ffmpeg or PNGs, offline audio, no chat in the frames ( #58 ); the client builds without the mods feature again
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
9c33fdae2c
Mods: render.set-main-view (API level 15) renders the screen's world from a mod camera with the full pipeline, so replays get HD and the post effects; small mod views get the post pass with their own camera
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
43392aec6b
HD smoke: young trails drawn at least as wide as a grid cell (density scaled to keep the mass), gentler bulges, so a trail is a smooth ribbon and not a chain of puffs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
4a6ab8117a
HD clouds composited by depth so terrain and vehicles inside or behind the layer are hidden and those in front stay in front ( #67 ); world-anchored noise everywhere (cloud detail by height above the layer, fog, smoke and puddle scales dividing the wrap) ( #68 ); the replay's time is visual only, gameplay sky darkening uses the world's time ( #70 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
b1aaf32851
HD: volumetric smoke and missile trails with clear tunnels through fog and cloud (render.set-smoke, API level 14; #54 ); sun speculars by material, wet surfaces and puddles in rain, wind in foliage (HORIZON_HD_SPECULAR=0, HORIZON_HD_WIND=0, HORIZON_HD_SMOKE=0); HD shaders checked for HLSL translation in their own test
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
74d1e61813
HD clouds: noise scales that divide the camera's 65536-block wrap, so the clouds and their shadows no longer jump at x or z = 0
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
60eb9be45f
HD split into modules (gfx/hd/: one Rust file and one WGSL file per pass, a shared prelude), contracts for colour, depth, alpha, time and coordinates written down, tests that the frame layout and bindings match between Rust and WGSL ( #45 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
0bcc4b56dc
HD fixes: rain level from the world not from rain geometry ( #41 ), TAA history on the jittered grid ( #38 ), vanilla cloud tint without a depth heuristic ( #35 ), air fog once over water ( #37 ), translucent things in front of HD water ( #36 ), cheaper sunrise fan ( #39 ), halos in thick air capped; mods: render.set-time-override (API level 13) so replays show their recorded time of day ( #57 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
f87d2c518f
Mods: world queries for simulations (render.query-rays, query-sections, world-changes; API level 12): block-exact rays and section occupancy by collision, sight or sound, answered next tick within budgets, and a log of changed sections
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
a8235704e4
HD: Photon-style sunsets (Rec. 2020 atmosphere, sun tint, blue hour; MIT), volumetric clouds with ground shadows instead of vanilla's in HD, volumetric fog with sun shafts and morning mist (HORIZON_HD_CLOUDS=0, HORIZON_HD_VOLFOG=0)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
a8b85116f4
HD water: a darker blue, a little clearer, ripples a little higher
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
2b52657d85
HD sky and light: a physical atmosphere (Rayleigh, Mie, ozone; constants and transmittance after Photon, MIT) for the sky, haze, fog and water reflections; warmer sunlight from the atmosphere's transmittance, a gentle sky-coloured ambient, soft PCSS-lite shadows near the player, a haze round the sun; lighter water with fine ripples
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
59426881f3
HD water: no vanilla texture on the surface (the biome colour only), a darker, deeper colour
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
54ada71e63
HD water: its own pass (colour, normal, depth), the floor under it lit, a composite with world-space waves, refraction with depth absorption in the biome colour, screen-space reflections, Fresnel and a shadowed sun glint (HORIZON_HD_WATER=0 to switch off)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
172f8ef171
HD: temporal upscaling (HORIZON_HD_SCALE: world, G-buffer and lighting at a lower size, rebuilt to the window in the TAA pass); fix flickering shadows near the player (the near cascade lost its sections on frames the far one was held, the held far matrix ignored the camera's step, plants' normals turned with the camera); TAA keeps more history when still
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
17d10d1d8c
Mods: model handles (render.model-id, model-generation, set-models-by-id; API level 11) so mods send no model names each tick; clear-post and set-lighting documented
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
a321460f1c
HD: shadows draw only sun-facing quads and skip buried sections, the far cascade every second frame; TAA (Halton jitter, reprojection by depth, YCoCg variance clipping) before bloom
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
37cf7ea714
HD: GPU time per pass in the F3 timing list, half-resolution GTAO with a depth-aware blur
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
2228844b92
HD: lights culled per 16x16 tile (surface and halo lists built on the CPU), a naga test for the lighting shaders
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
72d9e70187
HD: bind groups cached until a resize or a new source, shadow passes draw only the entities that cast shadows
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
3cfa79c011
HD lighting stage 2: sun and moon shadow cascades, the world relit (sun by face angle and shadow, sky and block light through the lightmap), light shafts and halos, fog over it again, a light colour grade
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00
chexit
fff9f9a746
HD lighting: G-buffer pass, per-pixel mod point lights in HDR, bloom and tone curve; render.set-lights and render.set-lighting (API level 10)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-02 00:10:58 +03:00