Pixel-art water surface with wave glyphs and caustics
In your harnessProcedural textureMIT
Generate a tileable pixel-art water tile at a chosen art resolution: dithered depth shades, evenly spread wave glyphs, sparkles, an optional caustic light network and foam clusters, with per-pixel normal, height, low roughness and occlusion maps. Use for seas, lagoons, swamps and rivers in 2D games.

What it takes and gives
- Entry point
- generate
- Maps
- albedo, normal, roughness, height, ao
- Parameters
- art_pixels, waves, wave_length, sparkles, caustics, foam, depth_patches, relief and 3 more
- Presets
- default, shallow_lagoon, swamp, rapids
- Tileable
- yes
- Command line
- python pixel_water_surface.py --size 1024 --seed 7 --preset NAME --out DIR [--width W --height H] [--set NAME=VALUE] [--directx-normal] [--orm]
- Godot material
- material.tres
- Blender builder
- blender_material.build_material(folder)
Limits. A still frame of stylized pixel art, not a wave simulation, and it does not animate; for motion, scroll the tile or swap seeds. The light from the top left is baked into the wave glyph colours. Caustics are a Voronoi line pattern, not traced light. Roughness and height are values per drawn class, and the normal map treats each art pixel as a flat facet. Output sizes that are not a whole multiple of art_pixels give art pixels of unequal widths. Occlusion is a blurred-height estimate posterized to eighths.
Details
- Kind
- Procedural texture
- Engine
- Python 3.10 or later
- Files
- 12 files, 172.8 KB
- Licence
- MIT
- Declared effects
- runs commands, writes files
- Checked with
- Godot 4.7.2, gl_compatibility
- Checks
- command line generates declared maps, maps decode, maps have declared size and channels, maps tile without a seam, normal vectors unit length facing out, maps carry detail, godot imports the maps, godot material template loads every map, godot compatibility render, capture shows the textured surface, blender builds the material
- Techniques
- Poisson-disc sampling on a torus for glyph placement, Ordered dithering with a 4 x 4 Bayer matrix, Voronoi border lines as a caustic network, Thresholded fractal noise for foam clusters, Per-art-pixel normals by central differences
- Tags
- texture, pixel art, tileable, water, sea, waves, 2d, game tile
- Identity
library.supply.creative_originals.8c5546991bb725bb0a57b6d5.29ea6d0ecfde1dab- Version
29ea6d0ecfde1dabddcd5684144641d188c77850de464bb4bf037f071ca11028
The version is the SHA-256 of the item your harness downloads; every file in it names its own checksum.
Something wrong with this item, its rights or its safety? Report it on the support page, or from your harness after a download.

