promotional bannermobile promotional banner

Justwaves

Realistic waves and beaches for vanilla water.

JustWaves 0.7 — what it is

(it is compatible with any version iris is compatible with)

A shaderpack that only touches water. No shadow pass, no deferred lighting, no bloom, no colour grading. Everything that isn't water renders exactly the way it does with shaders off, so this drops on top of any resource pack or modpack without changing how the rest of the game looks. Iris or OptiFine, Minecraft 1.21.x.

It's one program. gbuffers_water. That's the whole pack.

Waves

The waves are Gerstner, not plain sine waves. The difference matters: a Gerstner wave drags the surface sideways as well as up and down, so it bunches up under the crest and stretches out in the trough. That's what gives you sharp peaks with wide flat gaps between them instead of a rolling bedsheet.

Six components stacked on top of each other, biggest and slowest first, each one after that shorter and faster. Wavelengths land around 12, 9, 6 and 4 blocks, which is a size you can actually see standing on a boat. The directions are deliberately ugly numbers so the pattern takes a very long time to visibly loop.

Because the displacement only depends on world position, neighbouring blocks always work out the same answer and the surface never tears at the seams.

Rain pushes the waves up. Flowing water gets calmed right down by default, because a stream does not have an ocean swell running through it.

Beaches

This is the part I'm actually pleased with.

A shader has no idea where the land is. It can't look up blocks, nobody hands it a map. What it can do is ask the depth buffer how far away the solid ground behind this pixel is — that's already been drawn, before any water was. Subtract this pixel's own distance from that and you get the thickness of water sitting in front of the sea floor.

That one number is the entire beach system:

  • Colour. Water eats red light first, then green, blue last. Thin water over sand comes out turquoise, deep water comes out navy. Same sea, same sunlight, just more of it in the way. There's a floor under it so the deep settles into dark blue rather than running all the way to black.
  • Glow in the shallows. Light bounces off pale sand just under the surface and comes back up through the water, which is why shallows look lit rather than just pale.
  • Surf. Lines of equal water thickness follow the shoreline exactly, whatever shape the shoreline happens to be. So marching those lines inward as time passes gives you waves that run up the beach — round a headland, into a cove, anywhere, for free. Plus permanent white water in the last inch, the way every real beach has.
  • Transparency. Thin water is see-through, deep water isn't.

Surface

Sky reflection that washes towards fog colour near the horizon, which is what makes distant water go pale and bright. Fresnel, so water seen along its own surface acts like a mirror. A tight sun glint that mostly disappears in rain and goes dim off the moon. Troughs sit in shadow, wave backs catch the light. Whitecaps on the very tops of crests, and only with weather about.

Underwater you get bright bands where the surface curves and focuses the light, and it turns silver when you look along it. That's total internal reflection, and it's genuinely why the underside of water looks metallic.

Tides

A slow lunar tide. Spring tides at full and new moon, neaps at the quarters, exactly like the real thing. Kept small enough that the sea never climbs out of its own block and leaves a gap at the shore.

Settings

Five option screens in the shader menu — Waves, Beach, Surface, Tides, Troubleshooting — and three profiles. LOW strips it back to plain moving water. HIGH turns everything up.

Two switches worth knowing about under Troubleshooting:

  • WATER_DETECT — how water gets recognised. Block IDs don't always arrive; it depends on the loader and the version. Default is "use the IDs if they're there, otherwise assume the translucent pass is water". Set it to 0 if stained glass starts rippling, 2 as a last resort.
  • DEBUG_WATER — paints everything the shader thinks is water bright magenta. If the sea doesn't turn magenta with this on, the shader isn't reaching the water at all and nothing else in the pack can possibly be working. Check this first, always.

The Justwaves Team

profile avatar
  • 2
    Projects
  • 3.9K
    Downloads

More from Arapatoc288

  • Sablewaves project image

    Sablewaves

    Turn Minecraft's flat oceans into fully simulated waves that physically affect your ships. SableWaves adds realistic waves, storms, wakes, breakers, and wind-driven sailing—all powered by the Sable physics engine.”

    • 3.7K
    • August 21, 2026
  • Sablewaves project image

    Sablewaves

    Turn Minecraft's flat oceans into fully simulated waves that physically affect your ships. SableWaves adds realistic waves, storms, wakes, breakers, and wind-driven sailing—all powered by the Sable physics engine.”

    • 3.7K
    • August 21, 2026