ludic/tools/ludic-cli
Orkuncakilkaya 9dff8f21bd feat(render3d): one wind, and everything in the valley is moved by it
The grass had a gust built from two sines; the trees had no gust term AT ALL, only a
per-instance wobble. So the meadow rippled and the canopy above it swayed to an unrelated
rhythm, and nothing ever crossed the valley.

wind.glsl is prepended to every stage (programs.ludic, and shaders.ludic for the SPIR-V
build) so grass, crowns and water read the same field at the same world position. It
declares no uniforms on purpose: u_time and u_wind already exist in several of those
files and redeclaring them is a compile error in whichever stage includes both.

The wavelength is what made it work. At 0.030 the front was 209 m crest to crest -
longer than the meadow you can see - so the whole frame sat in one phase and the gust
read as everything breathing together. At 0.085 it is 74 m and a front crosses a view in
a couple of seconds.

R3D_DEBUG_WIND=1 paints the field on the ground. It is the only honest way to show a gust
in a still image, and two shots 0.3 s apart move by 39/255.

400 frames: GL 6.9 s, VK 7.2 s. Backends agree to 0.68/255.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 18:24:43 +03:00
..
assets.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
build.ludic fix: CSPRNG on Windows, and a window's first title is the package's app name 2026-09-17 16:22:05 +03:00
bundle.ludic fix: CSPRNG on Windows, and a window's first title is the package's app name 2026-09-17 16:22:05 +03:00
checks.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
dev.ludic feat(render3d): every shader variant as Vulkan SPIR-V, built ahead of time 2026-09-15 10:11:31 +03:00
docgen.ludic refactor(cli)!: split the contributor tool out of the ludic CLI 2026-09-05 23:15:12 +03:00
docgen_check.ludic refactor(cli)!: split the contributor tool out of the ludic CLI 2026-09-05 23:15:12 +03:00
docgen_gen.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
forgejo.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
glgen.ludic feat(windows): Gl.* on Windows, through WGL and a driver-filled thunk table 2026-09-13 02:10:36 +03:00
json.ludic feat(cli): install in one command, and call the CLI ludic 2026-09-05 22:01:52 +03:00
lsp_test.ludic feat(tooling): JetBrains IDE support, LSP navigation, barrel imports, package scripts and hooks 2026-09-16 16:13:31 +03:00
main.ludic feat(tooling): JetBrains IDE support, LSP navigation, barrel imports, package scripts and hooks 2026-09-16 16:13:31 +03:00
pack.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
packignore.ludic feat(pack): .packignore, so a pack root can leave build artefacts out 2026-09-11 18:29:32 +03:00
pkg.ludic feat(tooling): JetBrains IDE support, LSP navigation, barrel imports, package scripts and hooks 2026-09-16 16:13:31 +03:00
pkg_test.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
prelude.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
project.ludic feat(tooling): JetBrains IDE support, LSP navigation, barrel imports, package scripts and hooks 2026-09-16 16:13:31 +03:00
release.ludic feat(tooling): JetBrains IDE support, LSP navigation, barrel imports, package scripts and hooks 2026-09-16 16:13:31 +03:00
scripts.ludic feat(tooling): JetBrains IDE support, LSP navigation, barrel imports, package scripts and hooks 2026-09-16 16:13:31 +03:00
selfhost.ludic feat(lang): float and double types with ordinary operators 2026-09-16 16:13:31 +03:00
selfhost_test.ludic fix(compiler): == / != on references is identity; only text compares by content 2026-09-16 16:13:31 +03:00
shaders.ludic feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
test.ludic feat: every key on the keyboard is bindable - the F-row, the six-pack, Caps Lock and the numpad 2026-09-18 00:57:02 +03:00
toolchain.ludic feat(windows): the ludic CLI and ludic bundle on Windows 2026-09-13 03:01:33 +03:00
tools.ludic feat(jetbrains): a Ludic tool window for the package (plugin 1.6.0) 2026-09-17 12:16:22 +03:00
vkgen.ludic feat(vk): Vk.* - Vulkan 1.0-1.4 generated from the registry, loaded at run time 2026-09-15 09:52:12 +03:00