Reworking Windup Wonderland’s Water in Godot.
by Vicente C.
Published |
3
Share
The river in Windup Wonderland looked clear, but its foam kept repeating and the waterfall felt flat. After feedback on Reddit, zhan reworked both in Godot.
People liked the color and clarity of Windup Wonderland’s river in zhan’s first Reddit post. But they also spotted foam lining up in rows and a waterfall that looked more like a glowing wall. Zhan rebuilt both in a day and shared a before-and-after comparison.
The river starts as a curve drawn in Godot. Zhan’s editor tool turns it into a mesh and stores the water’s direction, speed and depth in a texture. The tool began with the curve-to-mesh code from Arnklit’s Waterways; zhan rewrote the rest.

The original foam texture repeated every few meters, putting its brightest patches in rows.

The shader also blended two moving versions of that texture, but they returned to the same positions every four seconds. It was especially noticeable in motion.

Zhan added a much larger, slowly moving noise pattern to make foam gather in some areas and leave others clear. Both moving versions share that pattern; otherwise, one would fill the gaps left by the other.

Rotating them and changing their texture offsets while they are invisible breaks the rows and the loop. The foam texture is also larger and repeats less often.
The waterfall needed a bigger change. Originally, it was a flat sheet with streaks moving down at a constant speed.

Now the shader calculates how long the water has been falling at each height, so the streaks speed up and stretch on the way down. The top stays relatively calm, while the lower part becomes more broken and white.

Zhan also replaced the sheet with a 3D shape that arcs away from the cliff and lands in the pool. It meets the flat river surface at the top, grows rounder as it falls and gets thinner as the water speeds up. The difference is easiest to see from the side.
The join between the river and the fall still needed work. Zhan tried the small dam a commenter had suggested, but it blocked floating crates.

Instead, foam now builds up as the river approaches the edge, and a separate, lumpy foam mesh covers the join. At the bottom, more foam, splashes and drifting mist mark where the water hits the pool.
Working on water or VFX in Godot?
Jettelly wishes you success in your professional career! Did you find an error? No worries! Write to us at [email protected], and we'll fix it!

Subscribe to our newsletter to stay up to date with our latest offers

© 2026 Jettelly Inc. All rights reserved. Made with ❤️ in Toronto, Canada